1# @ohos.calendarManager (日程管理能力) 2 3本模块提供日历与日程管理能力,包括日历和日程的创建、删除、修改、查询等。 4 5- 日历管理器[CalendarManager](#calendarmanager)用于管理日历[Calendar](#calendar)。 6 7- 日历[Calendar](#calendar)主要包含账户信息[CalendarAccount](#calendaraccount)和配置信息[CalendarConfig](#calendarconfig)。日历Calendar与日程Event属于从属关系,需要先创建日历Calendar对象,然后再通过日历Calendar创建日程Event对象,一个Calendar可以有多个Event,一个Event只属于一个Calendar。日历管理器是对日历的管理,日程过滤器是对日程的管理。 8 9> **说明:** 10> 11> 本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 12 13 14## 导入模块 15 16```typescript 17import { calendarManager } from '@kit.CalendarKit' 18``` 19 20## calendarManager.getCalendarManager 21 22getCalendarManager(context : Context): CalendarManager 23 24根据上下文获取CalendarManager对象,用于管理日历。 25 26**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 27 28**系统能力**: SystemCapability.Applications.CalendarData 29 30**模型约束**:此接口仅可在Stage模型下使用。 31 32**参数**: 33 34| 参数名 | 类型 | 必填 | 说明 | 35| -------- | --------------------------- | ---- |----------------------------------------------------------------------------------------------------------------| 36| context | Context | 是 | 应用上下文Context,Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-uiAbilityContext.md)。 | 37 38**返回值**: 39 40| 类型 | 说明 | 41| ------------------------------ | ------------------------------------- | 42| CalendarManager | 返回创建的CalendarManager对象。 | 43 44**示例**: 45 46```typescript 47// 获取上下文mContext 48// 获取日历管理器calendarMgr 49// 该文件为系统生成,目录:entry/src/main/ets/entryability/EntryAbility.ets 50import { 51 abilityAccessCtrl, 52 AbilityConstant, common, PermissionRequestResult, Permissions, UIAbility, Want } from '@kit.AbilityKit'; 53import { BusinessError } from '@kit.BasicServicesKit'; 54import { calendarManager } from '@kit.CalendarKit'; 55import { window } from '@kit.ArkUI'; 56 57export let calendarMgr: calendarManager.CalendarManager | null = null; 58export let mContext: common.UIAbilityContext | null = null; 59export default class EntryAbility extends UIAbility { 60 onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { 61 console.info("Ability onCreate"); 62 } 63 64 onDestroy(): void { 65 console.info("Ability onDestroy"); 66 } 67 68 onWindowStageCreate(windowStage: window.WindowStage): void { 69 // Main window is created, set main page for this ability 70 console.info("Ability onWindowStageCreate"); 71 72 windowStage.loadContent('pages/Index', (err, data) => { 73 if (err.code) { 74 console.error(`Failed to load the content. Code: ${err.code}, message: ${err.message}`); 75 return; 76 } 77 console.info(`Succeeded in loading the content. Data: ${JSON.stringify(data)}`); 78 }); 79 mContext = this.context; 80 const permissions: Permissions[] = ['ohos.permission.READ_CALENDAR', 'ohos.permission.WRITE_CALENDAR']; 81 let atManager = abilityAccessCtrl.createAtManager(); 82 atManager.requestPermissionsFromUser(mContext, permissions).then((result: PermissionRequestResult) => { 83 console.log(`get Permission success, result: ${JSON.stringify(result)}`); 84 calendarMgr = calendarManager.getCalendarManager(mContext); 85 }).catch((error: BusinessError) => { 86 console.error(`get Permission error, error. Code: ${error.code}, message: ${error.message}`); 87 }) 88 } 89 90 onWindowStageDestroy(): void { 91 // Main window is destroyed, release UI related resources 92 console.info("Ability onWindowStageDestroy"); 93 } 94 95 onForeground(): void { 96 // Ability has brought to foreground 97 console.info("Ability onForeground"); 98 } 99 100 onBackground(): void { 101 // Ability has back to background 102 console.info("Ability onBackground"); 103 } 104} 105``` 106 107## CalendarManager 108 109下列API示例中需先通过[getCalendarManager()](#calendarmanagergetcalendarmanager)方法获取CalendarManager对象,再通过此对象调用对应方法,进行Calendar的创建、删除、修改、查询等操作。 110 111 112### createCalendar 113 114createCalendar(calendarAccount: CalendarAccount, callback: AsyncCallback\<Calendar>): void 115 116根据日历账户信息,创建一个Calendar对象,使用callback异步回调。 117 118**需要权限**: ohos.permission.WRITE_CALENDAR 119 120**系统能力**: SystemCapability.Applications.CalendarData 121 122**参数**: 123 124| 参数名 | 类型 | 必填 | 说明 | 125| --------------- | ------------------------------------- | ---- | ---------------------------------- | 126| calendarAccount | [CalendarAccount](#calendaraccount) | 是 | 日历账户信息。 | 127| callback | AsyncCallback\<[Calendar](#calendar)> | 是 | 回调函数,返回创建的Calendar对象。 | 128 129**错误码:** 130 131以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)。 132 133| 错误码ID | 错误信息 | 134| -------- | ------------------------------ | 135| 201 | Permission denied. | 136| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 137| 801 | Capability not supported. | 138 139**示例**: 140 141```typescript 142import { BusinessError } from '@kit.BasicServicesKit'; 143import { calendarMgr } from '../entryability/EntryAbility'; 144 145let calendar: calendarManager.Calendar | undefined = undefined; 146const calendarAccount: calendarManager.CalendarAccount = { 147 name: 'CreateMyCalendarByCallBack', 148 type: calendarManager.CalendarType.LOCAL 149}; 150try { 151 calendarMgr?.createCalendar(calendarAccount, (err: BusinessError, data: calendarManager.Calendar) => { 152 if (err) { 153 console.error(`Failed to create calendar. Code: ${err.code}, message: ${err.message}`); 154 } else { 155 console.info(`Succeeded in creating calendar, data -> ${JSON.stringify(data)}`); 156 calendar = data; 157 } 158 }); 159} catch (error) { 160 console.error(`Failed to create calendar. Code: ${error.code}, message: ${error.message}`); 161} 162``` 163 164### createCalendar 165 166createCalendar(calendarAccount: CalendarAccount): Promise\<Calendar> 167 168根据日历账户信息,创建一个Calendar对象,使用Promise异步回调。 169 170**需要权限**: ohos.permission.WRITE_CALENDAR 171 172**系统能力**: SystemCapability.Applications.CalendarData 173 174**参数**: 175 176| 参数名 | 类型 | 必填 | 说明 | 177| --------------- | ----------------------------------- | ---- | -------------- | 178| calendarAccount | [CalendarAccount](#calendaraccount) | 是 | 日历账户信息。 | 179 180**返回值**: 181 182| 类型 | 说明 | 183| ------------------------------ | ------------------------------------- | 184| Promise<[Calendar](#calendar)> | Promise对象,返回创建的Calendar对象。 | 185 186**错误码:** 187 188以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)。 189 190| 错误码ID | 错误信息 | 191| -------- | ------------------------------ | 192| 201 | Permission denied. | 193| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 194| 801 | Capability not supported. | 195 196**示例**: 197 198```typescript 199import { BusinessError } from '@kit.BasicServicesKit'; 200import { calendarMgr } from '../entryability/EntryAbility'; 201 202let calendar : calendarManager.Calendar | undefined = undefined; 203const calendarAccount: calendarManager.CalendarAccount = { 204 name: 'CreateMyCalendarByPromise', 205 type: calendarManager.CalendarType.LOCAL, 206 displayName : 'MyApplication' 207}; 208calendarMgr?.createCalendar(calendarAccount).then((data: calendarManager.Calendar) => { 209 console.info(`Succeeded in creating calendar data->${JSON.stringify(data)}`); 210 calendar = data; 211}).catch((error : BusinessError) => { 212 console.error(`Failed to create calendar. Code: ${error.code}, message: ${error.message}`); 213}); 214``` 215 216### deleteCalendar 217 218deleteCalendar(calendar: Calendar, callback: AsyncCallback\<void>): void 219 220删除指定Calendar对象,使用callback异步回调。 221 222**需要权限**: ohos.permission.WRITE_CALENDAR 223 224**系统能力**: SystemCapability.Applications.CalendarData 225 226**参数**: 227 228| 参数名 | 类型 | 必填 | 说明 | 229| -------- | --------------------- | ---- | -------------- | 230| calendar | [Calendar](#calendar) | 是 | 即将删除的Calendar对象。 | 231| callback | AsyncCallback\<void> | 是 | 无返回结果的AsyncCallback对象。 | 232 233**错误码:** 234 235以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)。 236 237| 错误码ID | 错误信息 | 238| -------- | ------------------------------ | 239| 201 | Permission denied. | 240| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 241| 801 | Capability not supported. | 242 243**示例**: 244 245```typescript 246import { BusinessError } from '@kit.BasicServicesKit'; 247import { calendarMgr } from '../entryability/EntryAbility'; 248 249const calendarAccount: calendarManager.CalendarAccount = { 250 name: 'DeleteMyCalendarByCallBack', 251 type: calendarManager.CalendarType.LOCAL 252}; 253calendarMgr?.createCalendar(calendarAccount).then((data: calendarManager.Calendar) => { 254 console.info(`Succeeded in creating calendar, data -> ${JSON.stringify(data)}`); 255 calendarMgr?.getCalendar(calendarAccount, (err: BusinessError, data: calendarManager.Calendar) => { 256 if (err) { 257 console.error(`Failed to get calendar. Code: ${err.code}, message: ${err.message}`); 258 } else { 259 console.info(`Succeeded in getting calendar, data -> ${JSON.stringify(data)}`); 260 calendarMgr?.deleteCalendar(data, (err1: BusinessError) => { 261 if (err1) { 262 console.error(`Failed to delete calendar. Code: ${err1.code}, message: ${err1.message}`); 263 } else { 264 console.info("Succeeded in deleting calendar"); 265 } 266 }); 267 } 268 }); 269}).catch((error: BusinessError) => { 270 console.error(`Failed to create calendar. Code: ${error.code}, message: ${error.message}`); 271}) 272``` 273 274### deleteCalendar 275 276deleteCalendar(calendar: Calendar): Promise\<void> 277 278删除指定Calendar对象,使用Promise异步回调。 279 280**需要权限**: ohos.permission.WRITE_CALENDAR 281 282**系统能力**: SystemCapability.Applications.CalendarData 283 284**参数**: 285 286| 参数名 | 类型 | 必填 | 说明 | 287| -------- | --------------------- | ---- | -------------- | 288| calendar | [Calendar](#calendar) | 是 | 即将删除的Calendar对象。 | 289 290**返回值**: 291 292| 类型 | 说明 | 293| -------------- | ------------------------- | 294| Promise\<void> | 无返回结果的Promise对象。 | 295 296**错误码:** 297 298以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)。 299 300| 错误码ID | 错误信息 | 301| -------- | ------------------------------ | 302| 201 | Permission denied. | 303| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 304| 801 | Capability not supported. | 305 306**示例**: 307 308```typescript 309import { BusinessError } from '@kit.BasicServicesKit'; 310import { calendarMgr } from '../entryability/EntryAbility'; 311 312const calendarAccount: calendarManager.CalendarAccount = { 313 name: 'DeleteMyCalendarByPromise', 314 type: calendarManager.CalendarType.LOCAL 315}; 316calendarMgr?.createCalendar(calendarAccount).then((data: calendarManager.Calendar) => { 317 console.info(`Succeeded in creating calendar, data -> ${JSON.stringify(data)}`); 318 calendarMgr?.getCalendar(calendarAccount).then((data: calendarManager.Calendar) => { 319 console.info(`Succeeded in getting calendar, data -> ${JSON.stringify(data)}`); 320 calendarMgr?.deleteCalendar(data).then(() => { 321 console.info("Succeeded in deleting calendar"); 322 }).catch((err: BusinessError) => { 323 console.error(`Failed to delete calendar. Code: ${err.code}, message: ${err.message}`); 324 }); 325 }).catch((err: BusinessError) => { 326 console.error(`Failed to get calendar. Code: ${err.code}, message: ${err.message}`); 327 }); 328}).catch((error: BusinessError) => { 329 console.error(`Failed to create calendar. Code: ${error.code}, message: ${error.message}`); 330}) 331``` 332 333### getCalendar 334 335getCalendar(callback: AsyncCallback\<Calendar>): void 336 337获取默认Calendar对象,默认Calendar是日历存储首次运行时创建的,若创建Event时不关注其Calendar归属,则无须通过[createCalendar()](#createcalendar)创建Calendar,直接使用默认Calendar,使用callback异步回调。 338 339**需要权限**:ohos.permission.READ_CALENDAR 340 341**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 342 343**系统能力**: SystemCapability.Applications.CalendarData 344 345**参数**: 346 347| 参数名 | 类型 | 必填 | 说明 | 348| -------- | ------------------------------------ | ---- | ------------------------------------ | 349| callback | AsyncCallback<[Calendar](#calendar)> | 是 | 回调函数,返回查询到的Calendar对象。 | 350 351**错误码:** 352 353以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)。 354 355| 错误码ID | 错误信息 | 356| -------- | ------------------------------ | 357| 201 | Permission denied. | 358| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 359| 801 | Capability not supported. | 360 361**示例**: 362 363```typescript 364import { BusinessError } from '@kit.BasicServicesKit'; 365import { calendarMgr } from '../entryability/EntryAbility'; 366 367let calendar : calendarManager.Calendar | undefined = undefined; 368calendarMgr?.getCalendar((err: BusinessError, data:calendarManager.Calendar) => { 369 if (err) { 370 console.error(`Failed to get calendar. Code: ${err.code}, message: ${err.message}`); 371 } else { 372 console.info(`Succeeded in getting calendar, data -> ${JSON.stringify(data)}`); 373 calendar = data; 374 } 375}); 376``` 377 378### getCalendar 379 380getCalendar(calendarAccount: CalendarAccount, callback: AsyncCallback\<Calendar>): void 381 382获取指定Calendar对象,使用callback异步回调。 383 384**需要权限**: ohos.permission.READ_CALENDAR 385 386**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 387 388**系统能力**: SystemCapability.Applications.CalendarData 389 390**参数**: 391 392| 参数名 | 类型 | 必填 | 说明 | 393| --------------- | ------------------------------------ | ---- | ------------------------------------ | 394| calendarAccount | [CalendarAccount](#calendaraccount) | 是 | 日历账户信息。 | 395| callback | AsyncCallback<[Calendar](#calendar)> | 是 | 回调函数,返回查询到的Calendar对象。 | 396 397**错误码:** 398 399以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)。 400 401| 错误码ID | 错误信息 | 402| -------- | ------------------------------ | 403| 201 | Permission denied. | 404| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 405| 801 | Capability not supported. | 406 407**示例**: 408 409```typescript 410import { BusinessError } from '@kit.BasicServicesKit'; 411import { calendarMgr } from '../entryability/EntryAbility'; 412 413let calendar : calendarManager.Calendar | undefined = undefined; 414const calendarAccount: calendarManager.CalendarAccount = { 415 name: 'MyCalendar', 416 type: calendarManager.CalendarType.LOCAL 417}; 418calendarMgr?.createCalendar(calendarAccount).then((data: calendarManager.Calendar) => { 419 console.info(`Succeeded in creating calendar, data -> ${JSON.stringify(data)}`); 420 calendarMgr?.getCalendar(calendarAccount, (err: BusinessError, data: calendarManager.Calendar) => { 421 if (err) { 422 console.error(`Failed to get calendar. Code: ${err.code}, message: ${err.message}`); 423 } else { 424 console.info(`Succeeded in getting calendar data -> ${JSON.stringify(data)}`); 425 calendar = data; 426 } 427 }); 428}).catch((error: BusinessError) => { 429 console.error(`Failed to create calendar. Code: ${error.code}, message: ${error.message}`); 430}) 431``` 432 433### getCalendar 434 435getCalendar(calendarAccount?: CalendarAccount): Promise\<Calendar> 436 437获取默认Calendar对象或者指定Calendar对象,使用Promise异步回调。 438 439**需要权限**: ohos.permission.READ_CALENDAR 440 441**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 442 443**系统能力**: SystemCapability.Applications.CalendarData 444 445**参数**: 446 447| 参数名 | 类型 | 必填 | 说明 | 448| --------------- | ----------------------------------- | ---- | ------------------------------------------------------------ | 449| calendarAccount | [CalendarAccount](#calendaraccount) | 否 | 日历账户信息,用来获取指定Calendar对象,不填时,表示获取默认Calendar对象。 | 450 451**返回值**: 452 453| 类型 | 说明 | 454| ------------------------------ | --------------------------------------- | 455| Promise<[Calendar](#calendar)> | Promise对象,返回查询到的Calendar对象。 | 456 457**错误码:** 458 459以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)。 460 461| 错误码ID | 错误信息 | 462| -------- | ------------------------------ | 463| 201 | Permission denied. | 464| 401 | Parameter error. Possible causes: Incorrect parameter types. | 465| 801 | Capability not supported. | 466 467**示例**: 468 469```typescript 470import { BusinessError } from '@kit.BasicServicesKit'; 471import { calendarMgr } from '../entryability/EntryAbility'; 472 473let calendar : calendarManager.Calendar | undefined = undefined; 474calendarMgr?.getCalendar().then((data: calendarManager.Calendar) => { 475 console.info(`Succeeded in getting calendar, data -> ${JSON.stringify(data)}`); 476 calendar = data; 477}).catch((err: BusinessError) => { 478 console.error(`Failed to get calendar. Code: ${err.code}, message: ${err.message}`); 479}); 480``` 481 482### getAllCalendars 483 484getAllCalendars(callback: AsyncCallback\<Calendar[]>): void 485 486获取当前应用所有创建的Calendar对象以及默认Calendar对象,使用callback异步回调。 487 488**需要权限**:ohos.permission.READ_CALENDAR 489 490**系统能力**: SystemCapability.Applications.CalendarData 491 492**参数**: 493 494| 参数名 | 类型 | 必填 | 说明 | 495| -------- | -------------------------------------- | ---- | ----------------------------------------- | 496| callback | AsyncCallback<[Calendar](#calendar)[]> | 是 | 回调函数, 返回查询到的Calendar对象数组。 | 497 498**错误码:** 499 500以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)。 501 502| 错误码ID | 错误信息 | 503| -------- | ------------------------------ | 504| 201 | Permission denied. | 505| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 506| 801 | Capability not supported. | 507 508**示例**: 509 510```typescript 511import { BusinessError } from '@kit.BasicServicesKit'; 512import { calendarMgr } from '../entryability/EntryAbility'; 513 514calendarMgr?.getAllCalendars((err: BusinessError, data: calendarManager.Calendar[]) => { 515 if (err) { 516 console.error(`Failed to get all calendars. Code: ${err.code}, message: ${err.message}`); 517 } else { 518 console.info(`Succeeded in getting all calendars, data -> ${JSON.stringify(data)}`); 519 data.forEach((calendar) => { 520 const account = calendar.getAccount(); 521 console.info(`account -> ${JSON.stringify(account)}`); 522 }) 523 } 524}); 525``` 526 527### getAllCalendars 528 529getAllCalendars(): Promise\<Calendar[]> 530 531获取当前应用所有创建的Calendar对象以及默认Calendar对象,使用Promise异步回调。 532 533**需要权限**: ohos.permission.READ_CALENDAR 534 535**系统能力**: SystemCapability.Applications.CalendarData 536 537**返回值**: 538 539| 类型 | 说明 | 540| -------------------------------- | ------------------------------------------- | 541| Promise<[Calendar](#calendar)[]> | Promise对象,返回查询到的Calendar对象数组。 | 542 543**错误码:** 544 545以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)。 546 547| 错误码ID | 错误信息 | 548| -------- | ------------------------------ | 549| 201 | Permission denied. | 550| 401 | Parameter error. Possible causes: Incorrect parameter types. | 551| 801 | Capability not supported. | 552 553**示例**: 554 555```typescript 556import { BusinessError } from '@kit.BasicServicesKit'; 557import { calendarMgr } from '../entryability/EntryAbility'; 558 559calendarMgr?.getAllCalendars().then((data: calendarManager.Calendar[]) => { 560 console.info(`Succeeded in getting all calendars, data -> ${JSON.stringify(data)}`); 561 data.forEach((calendar) => { 562 const account = calendar.getAccount(); 563 console.info(`account -> ${JSON.stringify(account)}`); 564 }) 565}).catch((err: BusinessError) => { 566 console.error(`Failed to get all calendars. Code: ${err.code}, message: ${err.message}`); 567}); 568``` 569 570### editEvent<sup>12+</sup> 571 572editEvent(event: Event): Promise\<number> 573 574创建单个日程,入参Event不填日程id,调用该接口会跳转到日程创建页面,使用Promise异步回调。使用该接口创建的日程,三方应用无法查询和修改,只能通过系统日历进行查询和修改。 575 576**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 577 578**系统能力**: SystemCapability.Applications.CalendarData 579 580**参数**: 581 582| 参数名 | 类型 | 必填 | 说明 | 583| ------ | --------------- | ---- | ----------- | 584| event | [Event](#event) | 是 | Event对象。 | 585 586**返回值**: 587 588| 类型 | 说明 | 589| -------------- |-----------------------------------------------------------------------------| 590| Promise<number> | Promise对象,返回日程的id,日程id是日程的唯一标识符,是数据库的自增主键,小于0代表日程创建失败,大于0代表日程创建成功,没有等于0的情况。 | 591 592**示例**: 593 594```typescript 595import { BusinessError } from '@kit.BasicServicesKit'; 596import { calendarMgr } from '../entryability/EntryAbility'; 597 598const date = new Date(); 599const event: calendarManager.Event = { 600 title: 'title', 601 type: calendarManager.EventType.NORMAL, 602 startTime: date.getTime(), 603 endTime: date.getTime() + 60 * 60 * 1000 604}; 605calendarMgr?.editEvent(event).then((eventId: number): void => { 606 console.info(`create Event id = ${eventId}`); 607}).catch((err: BusinessError) => { 608 console.error(`Failed to create Event. Code: ${err.code}, message: ${err.message}`); 609}); 610``` 611 612## Calendar 613 614下列API示例中需先通过[createCalendar()](#createcalendar)、[getCalendar()](#getcalendar)中任一方法获取Calendar对象,再通过此对象调用对应方法,对该Calendar下的日程进行创建、删除、修改、查询等操作。 615 616### 属性 617 618**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 619 620**系统能力**:SystemCapability.Applications.CalendarData 621 622| 名称 | 类型 | 只读 | 可选 | 说明 | 623| ---- | ------ | ---- |----|--------------------------------------------------------------------------| 624| id | number | 是 | 否 | 日历账户id,日历账户id是日历账户的唯一标识符,是数据库的自增主键,小于0代表日历账户创建失败,大于0代表日历账户创建成功,没有等于0的情况。 | 625 626### addEvent 627 628addEvent(event: Event, callback: AsyncCallback\<number>): void 629 630创建日程,入参Event不填日程id,使用callback异步回调。 631 632**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 633 634**系统能力**: SystemCapability.Applications.CalendarData 635 636**参数**: 637 638| 参数名 | 类型 | 必填 | 说明 | 639| -------- | ---------------------- | ---- |-----------------------------------------------------------------------| 640| event | [Event](#event) | 是 | Event对象。 | 641| callback | AsyncCallback\<number> | 是 | 回调函数,返回日程id,日程id是日程的唯一标识符,是数据库的自增主键,小于0代表日程创建失败,大于0代表日程创建成功,没有等于0的情况。 | 642 643**示例**: 644 645```typescript 646import { BusinessError } from '@kit.BasicServicesKit'; 647import { calendarMgr } from '../entryability/EntryAbility'; 648 649let calendar : calendarManager.Calendar | undefined = undefined; 650const date = new Date(); 651const event: calendarManager.Event = { 652 type: calendarManager.EventType.NORMAL, 653 startTime: date.getTime(), 654 endTime: date.getTime() + 60 * 60 * 1000 655}; 656calendarMgr?.getCalendar().then((data: calendarManager.Calendar) => { 657 console.info(`Succeeded in getting calendar, data -> ${JSON.stringify(data)}`); 658 calendar = data; 659 calendar.addEvent(event, (err: BusinessError, data: number): void => { 660 if (err) { 661 console.error(`Failed to addEvent. Code: ${err.code}, message: ${err.message}`); 662 } else { 663 console.info(`Succeeded in adding event, id -> ${data}`); 664 } 665 }); 666}).catch((err: BusinessError) => { 667 console.error(`Failed to get calendar. Code: ${err.code}, message: ${err.message}`); 668}); 669``` 670 671### addEvent 672 673addEvent(event: Event): Promise\<number> 674 675创建日程,入参Event不填日程id,使用Promise异步回调。 676 677**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 678 679**系统能力**: SystemCapability.Applications.CalendarData 680 681**参数**: 682 683| 参数名 | 类型 | 必填 | 说明 | 684| ------ | --------------- | ---- | ----------- | 685| event | [Event](#event) | 是 | Event对象。 | 686 687**返回值**: 688 689| 类型 | 说明 | 690| ---------------- | --------------------------- | 691| Promise\<number> | Promise对象,返回日程的id。 | 692 693**示例**: 694 695```typescript 696import { BusinessError } from '@kit.BasicServicesKit'; 697import { calendarMgr } from '../entryability/EntryAbility'; 698 699let calendar : calendarManager.Calendar | undefined = undefined; 700const date = new Date(); 701const event: calendarManager.Event = { 702 type: calendarManager.EventType.NORMAL, 703 startTime: date.getTime(), 704 endTime: date.getTime() + 60 * 60 * 1000 705}; 706calendarMgr?.getCalendar((err: BusinessError, data:calendarManager.Calendar) => { 707 if (err) { 708 console.error(`Failed to get calendar. Code: ${err.code}, message: ${err.message}`); 709 } else { 710 console.info(`Succeeded in getting calendar, data -> ${JSON.stringify(data)}`); 711 calendar = data; 712 calendar.addEvent(event).then((data: number) => { 713 console.info(`Succeeded in adding event, id -> ${data}`); 714 }).catch((err: BusinessError) => { 715 console.error(`Failed to addEvent. Code: ${err.code}, message: ${err.message}`); 716 }); 717 } 718}); 719``` 720 721### addEvents 722 723addEvents(events: Event[], callback: AsyncCallback\<void>): void 724 725批量创建日程,入参Event不填日程id,使用callback异步回调。 726 727**系统能力**: SystemCapability.Applications.CalendarData 728 729**参数**: 730 731| 参数名 | 类型 | 必填 | 说明 | 732| -------- | -------------------- | ---- | --------------- | 733| events | [Event](#event)[] | 是 | Event对象数组。 | 734| callback | AsyncCallback\<void> | 是 | 回调函数。 | 735 736**示例**: 737 738```typescript 739import { BusinessError } from '@kit.BasicServicesKit'; 740import { calendarMgr } from '../entryability/EntryAbility'; 741 742let calendar : calendarManager.Calendar | undefined = undefined; 743const date = new Date(); 744const events: calendarManager.Event[] = [ 745 { 746 type: calendarManager.EventType.NORMAL, 747 startTime: date.getTime(), 748 endTime: date.getTime() + 60 * 60 * 1000 749 }, 750 { 751 type: calendarManager.EventType.NORMAL, 752 startTime: date.getTime(), 753 endTime: date.getTime() + 60 * 60 * 1000 754 } 755]; 756calendarMgr?.getCalendar((err: BusinessError, data:calendarManager.Calendar) => { 757 if (err) { 758 console.error(`Failed to get calendar. Code: ${err.code}, message: ${err.message}`); 759 } else { 760 console.info(`Succeeded in getting calendar, data -> ${JSON.stringify(data)}`); 761 calendar = data; 762 calendar.addEvents(events, (err: BusinessError) => { 763 if (err) { 764 console.error(`Failed to add events. Code: ${err.code}, message: ${err.message}`); 765 } else { 766 console.info("Succeeded in adding events"); 767 } 768 }); 769 } 770}); 771``` 772 773### addEvents 774 775addEvents(events: Event[]): Promise\<void> 776 777批量创建日程,入参Event不填日程id,使用Promise异步回调。 778 779**系统能力**: SystemCapability.Applications.CalendarData 780 781**参数**: 782 783| 参数名 | 类型 | 必填 | 说明 | 784| ------ | ----------------- | ---- | --------------- | 785| events | [Event](#event)[] | 是 | Event对象数组。 | 786 787**返回值**: 788 789| 类型 | 说明 | 790| -------------- | ------------------------- | 791| Promise\<void> | 无返回结果的Promise对象。 | 792 793**示例**: 794 795```typescript 796import { BusinessError } from '@kit.BasicServicesKit'; 797import { calendarMgr } from '../entryability/EntryAbility'; 798 799let calendar : calendarManager.Calendar | undefined = undefined; 800const date = new Date(); 801const events: calendarManager.Event[] = [ 802 { 803 type: calendarManager.EventType.NORMAL, 804 startTime: date.getTime(), 805 endTime: date.getTime() + 60 * 60 * 1000 806 }, 807 { 808 type: calendarManager.EventType.NORMAL, 809 startTime: date.getTime(), 810 endTime: date.getTime() + 60 * 60 * 1000 811 } 812]; 813calendarMgr?.getCalendar((err: BusinessError, data:calendarManager.Calendar) => { 814 if (err) { 815 console.error(`Failed to get calendar. Code: ${err.code}, message: ${err.message}`); 816 } else { 817 console.info(`Succeeded in getting calendar, data -> ${JSON.stringify(data)}`); 818 calendar = data; 819 calendar.addEvents(events).then(() => { 820 console.info("Succeeded in adding events"); 821 }).catch((err: BusinessError) => { 822 console.error(`Failed to add event. Code: ${err.code}, message: ${err.message}`); 823 }); 824 } 825}); 826``` 827 828### deleteEvent 829 830deleteEvent(id: number, callback: AsyncCallback\<void>): void 831 832删除指定id的日程,使用callback异步回调。 833 834**系统能力**: SystemCapability.Applications.CalendarData 835 836**参数**: 837 838| 参数名 | 类型 | 必填 | 说明 | 839| -------- | -------------------- | ---- |----------------------------------------| 840| id | number | 是 | 日程id,传入的日程id为正整数,表示已创建日程的id,是日程的唯一标识符。 | 841| callback | AsyncCallback\<void> | 是 | 回调函数。 | 842 843**示例**: 844 845```typescript 846import { BusinessError } from '@kit.BasicServicesKit'; 847import { calendarMgr } from '../entryability/EntryAbility'; 848 849let calendar : calendarManager.Calendar | undefined = undefined; 850let id: number = 0; 851const date = new Date(); 852const event: calendarManager.Event = { 853 type: calendarManager.EventType.NORMAL, 854 startTime: date.getTime(), 855 endTime: date.getTime() + 60 * 60 * 1000 856}; 857calendarMgr?.getCalendar(async (err: BusinessError, data:calendarManager.Calendar) => { 858 if (err) { 859 console.error(`Failed to get calendar. Code: ${err.code}, message: ${err.message}`); 860 } else { 861 console.info(`Succeeded in getting calendar, data -> ${JSON.stringify(data)}`); 862 calendar = data; 863 calendar.addEvent(event).then((data: number) => { 864 console.info(`Succeeded in adding event, id -> ${data}`); 865 id = data; 866 calendar?.deleteEvent(id, (err: BusinessError) => { 867 if (err) { 868 console.error(`Failed to delete event. Code: ${err.code}, message: ${err.message}`); 869 } else { 870 console.info(`Succeeded in deleting event, err -> ${JSON.stringify(err)}`); 871 } 872 }); 873 }).catch((err: BusinessError) => { 874 console.error(`Failed to add event. Code: ${err.code}, message: ${err.message}`); 875 }); 876 } 877}); 878``` 879 880### deleteEvent 881 882deleteEvent(id: number): Promise\<void> 883 884删除指定id的日程,使用Promise异步回调。 885 886**系统能力**: SystemCapability.Applications.CalendarData 887 888**参数**: 889 890| 参数名 | 类型 | 必填 | 说明 | 891| ------ | ------ | ---- | -------- | 892| id | number | 是 | 日程id。 | 893 894**返回值**: 895 896| 类型 | 说明 | 897| -------------- | ------------------------- | 898| Promise\<void> | 无返回结果的Promise对象。 | 899 900**示例**: 901 902```typescript 903import { BusinessError } from '@kit.BasicServicesKit'; 904import { calendarMgr } from '../entryability/EntryAbility'; 905 906let calendar : calendarManager.Calendar | undefined = undefined; 907let id: number = 0; 908const date = new Date(); 909const event: calendarManager.Event = { 910 type: calendarManager.EventType.NORMAL, 911 startTime: date.getTime(), 912 endTime: date.getTime() + 60 * 60 * 1000 913}; 914calendarMgr?.getCalendar(async (err: BusinessError, data:calendarManager.Calendar) => { 915 if (err) { 916 console.error(`Failed to get calendar. Code: ${err.code}, message: ${err.message}`); 917 } else { 918 console.info(`Succeeded in getting calendar data->${JSON.stringify(data)}`); 919 calendar = data; 920 await calendar.addEvent(event).then((data: number) => { 921 console.info(`Succeeded in adding event, id -> ${data}`); 922 id = data; 923 }).catch((err: BusinessError) => { 924 console.error(`Failed to add event. Code: ${err.code}, message: ${err.message}`); 925 }); 926 calendar.deleteEvent(id).then(() => { 927 console.info("Succeeded in deleting event"); 928 }).catch((err: BusinessError) => { 929 console.error(`Failed to delete event. Code: ${err.code}, message: ${err.message}`); 930 }); 931 } 932}); 933``` 934 935### deleteEvents 936 937deleteEvents(ids: number[], callback: AsyncCallback\<void>): void 938 939根据日程id,批量删除日程,使用callback异步回调。 940 941**系统能力**: SystemCapability.Applications.CalendarData 942 943**参数**: 944 945| 参数名 | 类型 | 必填 | 说明 | 946| -------- | -------------------- | ---- | ------------ | 947| ids | number[] | 是 | 日程id数组。 | 948| callback | AsyncCallback\<void> | 是 | 回调函数。 | 949 950**示例**: 951 952```typescript 953import { BusinessError } from '@kit.BasicServicesKit'; 954import { calendarMgr } from '../entryability/EntryAbility'; 955 956let calendar : calendarManager.Calendar | undefined = undefined; 957let id1: number = 0; 958let id2: number = 0; 959const date = new Date(); 960const event1: calendarManager.Event = { 961 type: calendarManager.EventType.NORMAL, 962 startTime: date.getTime(), 963 endTime: date.getTime() + 60 * 60 * 1000 964}; 965const event2: calendarManager.Event = { 966 type: calendarManager.EventType.IMPORTANT, 967 startTime: date.getTime(), 968 endTime: date.getTime() + 60 * 60 * 1000 969}; 970calendarMgr?.getCalendar(async (err: BusinessError, data:calendarManager.Calendar) => { 971 if (err) { 972 console.error(`Failed to get calendar. Code: ${err.code}, message: ${err.message}`); 973 } else { 974 console.info(`Succeeded in getting calendar, data -> ${JSON.stringify(data)}`); 975 calendar = data; 976 await calendar.addEvent(event1).then((data: number) => { 977 console.info(`Succeeded in adding event, id -> ${data}`); 978 id1 = data; 979 }).catch((err: BusinessError) => { 980 console.error(`Failed to add event. Code: ${err.code}, message: ${err.message}`); 981 }); 982 await calendar.addEvent(event2).then((data: number) => { 983 console.info(`Succeeded in adding event, id -> ${data}`); 984 id2 = data; 985 }).catch((err: BusinessError) => { 986 console.error(`Failed to add event. Code: ${err.code}, message: ${err.message}`); 987 }); 988 calendar.deleteEvents([id1, id2], (err: BusinessError) => { 989 if (err) { 990 console.error(`Failed to delete events. Code: ${err.code}, message: ${err.message}`); 991 } else { 992 console.info("Succeeded in deleting events"); 993 } 994 }); 995 } 996}); 997``` 998 999### deleteEvents 1000 1001deleteEvents(ids: number[]): Promise\<void> 1002 1003根据日程id,批量删除日程,使用Promise异步回调。 1004 1005**系统能力**: SystemCapability.Applications.CalendarData 1006 1007**参数**: 1008 1009| 参数名 | 类型 | 必填 | 说明 | 1010| ------ | -------- | ---- | ------------ | 1011| ids | number[] | 是 | 日程id数组。 | 1012 1013**返回值**: 1014 1015| 类型 | 说明 | 1016| -------------- | ------------------------- | 1017| Promise\<void> | 无返回结果的Promise对象。 | 1018 1019**示例**: 1020 1021```typescript 1022import { BusinessError } from '@kit.BasicServicesKit'; 1023import { calendarMgr } from '../entryability/EntryAbility'; 1024 1025let calendar : calendarManager.Calendar | undefined = undefined; 1026let id1: number = 0; 1027let id2: number = 0; 1028const date = new Date(); 1029const event1: calendarManager.Event = { 1030 type: calendarManager.EventType.NORMAL, 1031 startTime: date.getTime(), 1032 endTime: date.getTime() + 60 * 60 * 1000 1033}; 1034const event2: calendarManager.Event = { 1035 type: calendarManager.EventType.IMPORTANT, 1036 startTime: date.getTime(), 1037 endTime: date.getTime() + 60 * 60 * 1000 1038}; 1039calendarMgr?.getCalendar(async (err: BusinessError, data:calendarManager.Calendar) => { 1040 if (err) { 1041 console.error(`Failed to get calendar. Code: ${err.code}, message: ${err.message}`); 1042 } else { 1043 console.info(`Succeeded in getting calendar, data -> ${JSON.stringify(data)}`); 1044 calendar = data; 1045 await calendar.addEvent(event1).then((data: number) => { 1046 console.info(`Succeeded in adding event, id -> ${data}`); 1047 id1 = data; 1048 }).catch((err: BusinessError) => { 1049 console.error(`Failed to add event. Code: ${err.code}, message: ${err.message}`); 1050 }); 1051 await calendar.addEvent(event2).then((data: number) => { 1052 console.info(`Succeeded in adding event, id -> ${data}`); 1053 id2 = data; 1054 }).catch((err: BusinessError) => { 1055 console.error(`Failed to add event. Code: ${err.code}, message: ${err.message}`); 1056 }); 1057 calendar.deleteEvents([id1, id2]).then(() => { 1058 console.info("Succeeded in deleting events"); 1059 }).catch((err: BusinessError) => { 1060 console.error(`Failed to delete events. Code: ${err.code}, message: ${err.message}`); 1061 }); 1062 } 1063}); 1064``` 1065 1066### updateEvent 1067 1068updateEvent(event: Event, callback: AsyncCallback\<void>): void 1069 1070更新日程,使用callback异步回调。 1071 1072**系统能力**: SystemCapability.Applications.CalendarData 1073 1074**参数**: 1075 1076| 参数名 | 类型 | 必填 | 说明 | 1077| -------- | -------------------- | ---- | ----------- | 1078| event | [Event](#event) | 是 | Event对象。 | 1079| callback | AsyncCallback\<void> | 是 | 回调函数。 | 1080 1081**示例**: 1082 1083```typescript 1084import { BusinessError } from '@kit.BasicServicesKit'; 1085import { calendarMgr } from '../entryability/EntryAbility'; 1086 1087let calendar : calendarManager.Calendar | undefined = undefined; 1088const date = new Date(); 1089const oriEvent: calendarManager.Event = { 1090 title: 'update', 1091 type: calendarManager.EventType.NORMAL, 1092 description: 'updateEventTest', 1093 startTime: date.getTime(), 1094 endTime: date.getTime() + 60 * 60 * 1000 1095}; 1096calendarMgr?.getCalendar(async (err: BusinessError, data:calendarManager.Calendar) => { 1097 if (err) { 1098 console.error(`Failed to get calendar. Code: ${err.code}, message: ${err.message}`); 1099 } else { 1100 console.info(`Succeeded in getting calendar, data -> ${JSON.stringify(data)}`); 1101 calendar = data; 1102 await calendar.addEvent(oriEvent).then((data: number) => { 1103 console.info(`Succeeded in adding event, id -> ${data}`); 1104 oriEvent.id = data; 1105 oriEvent.title = 'newUpdate'; 1106 }).catch((err: BusinessError) => { 1107 console.error(`Failed to add event. Code: ${err.code}, message: ${err.message}`); 1108 }); 1109 calendar.updateEvent(oriEvent, (err: BusinessError) => { 1110 if (err) { 1111 console.error(`Failed to update event. Code: ${err.code}, message: ${err.message}`); 1112 } else { 1113 console.info("Succeeded in updating event"); 1114 } 1115 }); 1116 } 1117}); 1118``` 1119 1120### updateEvent 1121 1122updateEvent(event: Event): Promise\<void> 1123 1124更新日程,使用Promise异步回调。 1125 1126**系统能力**: SystemCapability.Applications.CalendarData 1127 1128**参数**: 1129 1130| 参数名 | 类型 | 必填 | 说明 | 1131| ------ | --------------- | ---- | ----------- | 1132| event | [Event](#event) | 是 | Event对象。 | 1133 1134**返回值**: 1135 1136| 类型 | 说明 | 1137| -------------- | ------------------------- | 1138| Promise\<void> | 无返回结果的Promise对象。 | 1139 1140**示例**: 1141 1142```typescript 1143import { BusinessError } from '@kit.BasicServicesKit'; 1144import { calendarMgr } from '../entryability/EntryAbility'; 1145 1146let calendar : calendarManager.Calendar | undefined = undefined; 1147const date = new Date(); 1148const oriEvent: calendarManager.Event = { 1149 title: 'update', 1150 type: calendarManager.EventType.NORMAL, 1151 description: 'updateEventTest', 1152 startTime: date.getTime(), 1153 endTime: date.getTime() + 60 * 60 * 1000 1154}; 1155calendarMgr?.getCalendar(async (err: BusinessError, data:calendarManager.Calendar) => { 1156 if (err) { 1157 console.error(`Failed to get calendar. Code: ${err.code}, message: ${err.message}`); 1158 } else { 1159 console.info(`Succeeded in getting calendar, data -> ${JSON.stringify(data)}`); 1160 calendar = data; 1161 await calendar.addEvent(oriEvent).then((data: number) => { 1162 console.info(`Succeeded in adding event, id -> ${data}`); 1163 oriEvent.id = data; 1164 oriEvent.title = 'newUpdate'; 1165 }).catch((err: BusinessError) => { 1166 console.error(`Failed to add event. Code: ${err.code}, message: ${err.message}`); 1167 }); 1168 calendar.updateEvent(oriEvent).then(() => { 1169 console.info(`Succeeded in updating event`); 1170 }).catch((err: BusinessError) => { 1171 console.error(`Failed to update event. Code: ${err.code}, message: ${err.message}`); 1172 }); 1173 } 1174}); 1175``` 1176 1177### getEvents 1178 1179getEvents(callback: AsyncCallback\<Event[]>): void 1180 1181查询当前日历下所有日程,使用callback异步回调。 1182 1183**系统能力**: SystemCapability.Applications.CalendarData 1184 1185**参数**: 1186 1187| 参数名 | 类型 | 必填 | 说明 | 1188| -------- | -------------------------------- | ---- | --------------------------------- | 1189| callback | AsyncCallback<[Event](#event)[]> | 是 | 回调函数,返回的是Event对象数组。 | 1190 1191**示例**: 1192 1193```typescript 1194import { BusinessError } from '@kit.BasicServicesKit'; 1195import { calendarMgr } from '../entryability/EntryAbility'; 1196 1197let calendar : calendarManager.Calendar | undefined = undefined; 1198calendarMgr?.getCalendar((err: BusinessError, data:calendarManager.Calendar) => { 1199 if (err) { 1200 console.error(`Failed to get calendar. Code: ${err.code}, message: ${err.message}`); 1201 } else { 1202 console.info(`Succeeded in getting calendar data -> ${JSON.stringify(data)}`); 1203 calendar = data; 1204 calendar.getEvents((err: BusinessError, data: calendarManager.Event[]) => { 1205 if (err) { 1206 console.error(`Failed to get events. Code: ${err.code}, message: ${err.message}`); 1207 } else { 1208 console.info(`Succeeded in getting events, data -> ${JSON.stringify(data)}`); 1209 } 1210 }); 1211 } 1212}); 1213``` 1214 1215### getEvents 1216 1217getEvents(eventFilter: EventFilter, eventKey: (keyof Event)[], callback: AsyncCallback\<Event[]>):void 1218 1219获取Calendar下符合查询条件的Event,使用callback异步回调。 1220 1221**系统能力**: SystemCapability.Applications.CalendarData 1222 1223**参数**: 1224 1225| 参数名 | 类型 | 必填 | 说明 | 1226| ----------- | -------------------------------- | ---- | --------------------------------- | 1227| eventFilter | [EventFilter](#eventfilter) | 是 | 查询条件。 | 1228| eventKey | (keyof [Event](#event))[] | 是 | 查询字段。 | 1229| callback | AsyncCallback<[Event](#event)[]> | 是 | 回调函数,返回的是Event对象数组。 | 1230 1231**示例**: 1232 1233```typescript 1234import { BusinessError } from '@kit.BasicServicesKit'; 1235import { calendarMgr } from '../entryability/EntryAbility'; 1236 1237let calendar : calendarManager.Calendar | undefined = undefined; 1238let id1: number = 0; 1239let id2: number = 0; 1240const date = new Date(); 1241const event1: calendarManager.Event = { 1242 type: calendarManager.EventType.NORMAL, 1243 startTime: date.getTime(), 1244 endTime: date.getTime() + 60 * 60 * 1000 1245}; 1246const event2: calendarManager.Event = { 1247 type: calendarManager.EventType.IMPORTANT, 1248 startTime: date.getTime(), 1249 endTime: date.getTime() + 60 * 60 * 1000 1250}; 1251calendarMgr?.getCalendar(async (err: BusinessError, data:calendarManager.Calendar) => { 1252 if (err) { 1253 console.error(`Failed to get calendar. Code: ${err.code}, message: ${err.message}`); 1254 } else { 1255 console.info(`Succeeded in getting calendar, data -> ${JSON.stringify(data)}`); 1256 calendar = data; 1257 await calendar.addEvent(event1).then((data: number) => { 1258 console.info(`Succeeded in adding event, id -> ${data}`); 1259 }).catch((err: BusinessError) => { 1260 console.error(`Failed to add event. Code: ${err.code}, message: ${err.message}`); 1261 }); 1262 await calendar.addEvent(event2).then((data: number) => { 1263 console.info(`Succeeded in adding event, id -> ${data}`); 1264 }).catch((err: BusinessError) => { 1265 console.error(`Failed to add event. Code: ${err.code}, message: ${err.message}`); 1266 }); 1267 const filter = calendarManager.EventFilter.filterById([id1, id2]); 1268 calendar.getEvents(filter, ['title', 'type', 'startTime', 'endTime'], (err: BusinessError, data: calendarManager.Event[]) => { 1269 if (err) { 1270 console.error(`Failed to get events. Code: ${err.code}, message: ${err.message}`); 1271 } else { 1272 console.info(`Succeeded in getting events, data -> ${JSON.stringify(data)}`); 1273 } 1274 }); 1275 } 1276}); 1277``` 1278 1279### getEvents 1280 1281getEvents(eventFilter?: EventFilter, eventKey?: (keyof Event)[]): Promise\<Event[]> 1282 1283获取Calendar下符合查询条件的Event,使用Promise异步回调。 1284 1285**系统能力**: SystemCapability.Applications.CalendarData 1286 1287**参数**: 1288 1289| 参数名 | 类型 | 必填 | 说明 | 1290| ----------- | --------------------------- | ---- | ---------- | 1291| eventFilter | [EventFilter](#eventfilter) | 否 | 查询条件。 | 1292| eventKey | (keyof [Event](#event))[] | 否 | 查询字段。 | 1293 1294**返回值**: 1295 1296| 类型 | 说明 | 1297| -------------------------- | ----------------------------------- | 1298| Promise<[Event](#event)[]> | Promise对象,返回的是Event对象数组。 | 1299 1300**示例**: 1301 1302```typescript 1303import { BusinessError } from '@kit.BasicServicesKit'; 1304import { calendarMgr } from '../entryability/EntryAbility'; 1305 1306let calendar : calendarManager.Calendar | undefined = undefined; 1307const date = new Date(); 1308const event: calendarManager.Event = { 1309 title: 'MyEvent', 1310 type: calendarManager.EventType.IMPORTANT, 1311 startTime: date.getTime(), 1312 endTime: date.getTime() + 60 * 60 * 1000 1313}; 1314calendarMgr?.getCalendar(async (err: BusinessError, data:calendarManager.Calendar) => { 1315 if (err) { 1316 console.error(`Failed to get calendar. Code: ${err.code}, message: ${err.message}`); 1317 } else { 1318 console.info(`Succeeded in getting calendar, data -> ${JSON.stringify(data)}`); 1319 calendar = data; 1320 await calendar.addEvent(event).then((data: number) => { 1321 console.info(`Succeeded in adding event, id -> ${data}`); 1322 }).catch((err: BusinessError) => { 1323 console.error(`Failed to add event. Code: ${err.code}, message: ${err.message}`); 1324 }); 1325 const filter = calendarManager.EventFilter.filterByTitle('MyEvent'); 1326 calendar.getEvents(filter).then((data: calendarManager.Event[]) => { 1327 console.info(`Succeeded in getting events, data -> ${JSON.stringify(data)}`); 1328 }).catch((err: BusinessError) => { 1329 console.error(`Failed to get events. Code: ${err.code}, message: ${err.message}`); 1330 }); 1331 } 1332}); 1333``` 1334 1335### getConfig 1336 1337getConfig(): CalendarConfig 1338 1339获取日历配置信息。 1340 1341**系统能力**: SystemCapability.Applications.CalendarData 1342 1343**返回值**: 1344 1345| 类型 | 说明 | 1346| --------------------------------- | -------------- | 1347| [CalendarConfig](#calendarconfig) | 日历配置信息。 | 1348 1349**示例**: 1350 1351```typescript 1352import { calendarMgr } from '../entryability/EntryAbility'; 1353import { BusinessError } from '@kit.BasicServicesKit'; 1354 1355let calendar : calendarManager.Calendar | undefined = undefined; 1356calendarMgr?.getCalendar((err: BusinessError, data:calendarManager.Calendar) => { 1357 if (err) { 1358 console.error(`Failed to get calendar. Code: ${err.code}, message: ${err.message}`); 1359 } else { 1360 console.info(`Succeeded in getting calendar, data -> ${JSON.stringify(data)}`); 1361 calendar = data; 1362 const config = calendar.getConfig(); 1363 console.info("Succeeded in getting config"); 1364 } 1365}); 1366``` 1367 1368### setConfig 1369 1370setConfig(config: CalendarConfig, callback: AsyncCallback\<void>): void 1371 1372设置日历配置信息,使用callback异步回调。 1373 1374**系统能力**: SystemCapability.Applications.CalendarData 1375 1376**参数**: 1377 1378| 参数名 | 类型 | 必填 | 说明 | 1379| -------- | --------------------------------- | ---- | -------------- | 1380| config | [CalendarConfig](#calendarconfig) | 是 | 日历配置信息。 | 1381| callback | AsyncCallback\<void> | 是 | 回调函数。 | 1382 1383**示例**: 1384 1385```typescript 1386import { BusinessError } from '@kit.BasicServicesKit'; 1387import { calendarMgr } from '../entryability/EntryAbility'; 1388 1389let calendar : calendarManager.Calendar | undefined = undefined; 1390const config: calendarManager.CalendarConfig = { 1391 enableReminder: true, 1392 color: '#aabbcc' 1393}; 1394calendarMgr?.getCalendar((err: BusinessError, data:calendarManager.Calendar) => { 1395 if (err) { 1396 console.error(`Failed to get calendar. Code: ${err.code}, message: ${err.message}`); 1397 } else { 1398 console.info(`Succeeded in getting calendar, data -> ${JSON.stringify(data)}`); 1399 calendar = data; 1400 calendar.setConfig(config, (err: BusinessError) => { 1401 if (err) { 1402 console.error(`Failed to set config. Code: ${err.code}, message: ${err.message}`); 1403 } else { 1404 console.info(`Succeeded in setting config, config -> ${JSON.stringify(config)}`); 1405 } 1406 }); 1407 } 1408}); 1409``` 1410 1411### setConfig 1412 1413setConfig(config: CalendarConfig): Promise\<void> 1414 1415设置日历配置信息,使用Promise异步回调。 1416 1417**系统能力**: SystemCapability.Applications.CalendarData 1418 1419**参数**: 1420 1421| 参数名 | 类型 | 必填 | 说明 | 1422| ------ | --------------------------------- | ---- | -------------- | 1423| config | [CalendarConfig](#calendarconfig) | 是 | 日历配置信息。 | 1424 1425**返回值**: 1426 1427| 类型 | 说明 | 1428| -------------- | ------------------------- | 1429| Promise\<void> | 无返回结果的Promise对象。 | 1430 1431**示例**: 1432 1433```typescript 1434import { BusinessError } from '@kit.BasicServicesKit'; 1435import { calendarMgr } from '../entryability/EntryAbility'; 1436 1437let calendar : calendarManager.Calendar | undefined = undefined; 1438const config: calendarManager.CalendarConfig = { 1439 enableReminder: true, 1440 color: '#aabbcc' 1441}; 1442calendarMgr?.getCalendar((err: BusinessError, data:calendarManager.Calendar) => { 1443 if (err) { 1444 console.error(`Failed to get calendar. Code: ${err.code}, message: ${err.message}`); 1445 } else { 1446 console.info(`Succeeded in getting calendar, data -> ${JSON.stringify(data)}`); 1447 calendar = data; 1448 calendar.setConfig(config).then(() => { 1449 console.info(`Succeeded in setting config, data->${JSON.stringify(config)}`); 1450 }).catch((err: BusinessError) => { 1451 console.error(`Failed to set config. Code: ${err.code}, message: ${err.message}`); 1452 }); 1453 } 1454}); 1455``` 1456 1457### getAccount 1458 1459getAccount(): CalendarAccount 1460 1461获取日历账户信息。 1462 1463**系统能力**: SystemCapability.Applications.CalendarData 1464 1465**返回值**: 1466 1467| 类型 | 说明 | 1468| ----------------------------------- | -------------- | 1469| [CalendarAccount](#calendaraccount) | 日历账户信息。 | 1470 1471**示例**: 1472 1473```typescript 1474import { calendarMgr } from '../entryability/EntryAbility'; 1475import { BusinessError } from '@kit.BasicServicesKit'; 1476 1477let calendar : calendarManager.Calendar | undefined = undefined; 1478calendarMgr?.getCalendar((err: BusinessError, data:calendarManager.Calendar) => { 1479 if (err) { 1480 console.error(`Failed to get calendar. Code: ${err.code}, message: ${err.message}`); 1481 } else { 1482 console.info(`Succeeded in getting calendar, data -> ${JSON.stringify(data)}`); 1483 calendar = data; 1484 const account = calendar.getAccount(); 1485 console.info(`succeeded in getting account, account -> ${JSON.stringify(account)}`); 1486 } 1487}); 1488``` 1489 1490## CalendarAccount 1491 1492日历账户信息。 1493 1494**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1495 1496**系统能力**:SystemCapability.Applications.CalendarData 1497 1498| 名称 | 类型 | 只读 | 可选 | 说明 | 1499| ----------- | ----------------------------- | ---- |----|----------------------------------| 1500| name | string | 是 | 否 | 账户名称(面向开发者)。 | 1501| type | [CalendarType](#calendartype) | 否 | 否 | 账户类型。 | 1502| displayName | string | 否 | 是 | 账户显示在日历应用上的名称(面向用户)。不填时,默认为空字符串。 | 1503 1504## CalendarConfig 1505 1506日历配置信息。 1507 1508**系统能力**:SystemCapability.Applications.CalendarData 1509 1510| 名称 | 类型 | 只读 | 可选 | 说明 | 1511| -------------- |--------|-------|----| ------------------------------------------------------------ | 1512| enableReminder | boolean | 否 | 是 | 是否打开Calendar下所有Event提醒能力。当取值为true时,该Calendar下所有Event具备提醒能力;当取值为false时,不具备提醒能力,默认具备提醒能力。 | 1513| color | number \| string | 否 | 是 | 设置Calendar颜色。不填时,默认值为'#0A59F7'。 | 1514 1515## Event 1516 1517日程对象,包含日程标题、开始时间、结束时间等信息。 1518 1519**系统能力**:SystemCapability.Applications.CalendarData 1520 1521| 名称 | 类型 | 只读 | 可选 | 说明 | 1522| -------------- | --------------------------------- | ---- |----|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| 1523| id | number | 否 | 是 | 日程id。当调用[addEvent()](#addevent)、[addEvents()](#addevents)创建日程时,不填写此参数。 <br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 1524| type | [EventType](#eventtype) | 否 | 否 | 日程类型。 <br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 1525| title | string | 否 | 是 | 日程标题。不填时,默认为空字符串。 <br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 1526| location | [Location](#location) | 否 | 是 | 日程地点。不填时,默认为null。 <br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 1527| startTime | number | 否 | 否 | 日程开始时间,需要13位时间戳。 <br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 1528| endTime | number | 否 | 否 | 日程结束时间,需要13位时间戳。 <br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 1529| isAllDay | boolean | 否 | 是 | 是否为全天日程。当取值为true时,说明为全天日程;当取值为false时,说明不是全天日程,默认为非全天日程。 <br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 1530| attendee | [Attendee](#attendee)[] | 否 | 是 | 会议日程参与者。不填时,默认为null。 <br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 1531| timeZone | string | 否 | 是 | 日程时区。不填时,默认为当前所在时区,当需要创建与当前不一样的时区时,可填入对应的时区。可通过[getTimeZone()](../apis-basic-services-kit/js-apis-date-time.md#systemdatetimegettimezone)获取当前系统时区。 <br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 1532| reminderTime | number[] | 否 | 是 | 日程提醒时间,单位为分钟。填写x分钟,即距开始时间提前x分钟提醒,不填时,默认为不提醒。为负值时表示延期多长时间提醒。 <br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 1533| recurrenceRule | [RecurrenceRule](#recurrencerule) | 否 | 是 | 日程重复规则。不填时,默认为不重复。 <br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 1534| description | string | 否 | 是 | 日程描述。不填时,默认为空字符串。 <br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 1535| service | [EventService](#eventservice) | 否 | 是 | 日程服务。不填时,默认没有一键服务。 <br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 1536| identifier<sup>12+</sup> | string | 否 | 是 | 写入方可指定日程唯一标识。不填时,默认为null。 <br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 1537| isLunar<sup>12+</sup> | boolean | 否 | 是 | 是否为农历日程。当取值为true时,说明为农历日程;当取值为false时,说明不是农历日程,默认为非农历日程。 <br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 1538 1539## CalendarType 1540 1541账户类型枚举。 1542 1543**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1544 1545**系统能力**:SystemCapability.Applications.CalendarData 1546 1547| 名称 | 值 | 说明 | 1548| ---------- | ------------ | -------------------- | 1549| LOCAL | 'local' | 本地账户。 | 1550| EMAIL | 'email' | 邮箱账户。 | 1551| BIRTHDAY | 'birthday' | 生日账户。 | 1552| CALDAV | 'caldav' | 支持CalDAV协议账户。 | 1553| SUBSCRIBED | 'subscribed' | 订阅账户。 | 1554 1555## Location 1556 1557日程地点。 1558 1559**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1560 1561**系统能力**:SystemCapability.Applications.CalendarData 1562 1563| 名称 | 类型 | 只读 | 可选 | 说明 | 1564| --------- | ------ | ---- |----| ------------------------ | 1565| location | string | 否 | 是 | 地点位置。默认为空字符串。 | 1566| longitude | number | 否 | 是 | 地点经度。默认为0。 | 1567| latitude | number | 否 | 是 | 地点纬度。默认为0。 | 1568 1569## EventFilter 1570 1571日程过滤器,查询日程时进行筛选过滤,获取符合条件的日程。 1572 1573通过[filterById()](#filterbyid)、[filterByTime()](#filterbytime)、[filterByTitle()](#filterbytitle)任一方法获取日程过滤器,传入[getEvents()](#getevents)过滤。 1574 1575### filterById 1576 1577static filterById(ids: number[]): EventFilter 1578 1579根据日程id过滤日程。 1580 1581**系统能力**: SystemCapability.Applications.CalendarData 1582 1583**参数**: 1584 1585| 参数名 | 类型 | 必填 | 说明 | 1586| ------ | -------- | ---- | ------------ | 1587| ids | number[] | 是 | 日程id数组。 | 1588 1589**返回值**: 1590 1591| 类型 | 说明 | 1592| --------------------------- | -------------------- | 1593| [EventFilter](#eventfilter) | 返回日程过滤器对象。 | 1594 1595**示例**: 1596 1597```typescript 1598import { BusinessError } from '@kit.BasicServicesKit'; 1599import { calendarMgr } from '../entryability/EntryAbility'; 1600 1601let calendar : calendarManager.Calendar | undefined = undefined; 1602let id1: number = 0; 1603let id2: number = 0; 1604const date = new Date(); 1605const event1: calendarManager.Event = { 1606 type: calendarManager.EventType.NORMAL, 1607 startTime: date.getTime(), 1608 endTime: date.getTime() + 60 * 60 * 1000 1609}; 1610const event2: calendarManager.Event = { 1611 type: calendarManager.EventType.IMPORTANT, 1612 startTime: date.getTime(), 1613 endTime: date.getTime() + 60 * 60 * 1000 1614}; 1615calendarMgr?.getCalendar(async (err: BusinessError, data:calendarManager.Calendar) => { 1616 if (err) { 1617 console.error(`Failed to get calendar. Code: ${err.code}, message: ${err.message}`); 1618 } else { 1619 console.info(`Succeeded in getting calendar, data -> ${JSON.stringify(data)}`); 1620 calendar = data; 1621 await calendar.addEvent(event1).then((data: number) => { 1622 console.info(`Succeeded in adding event, id -> ${data}`); 1623 id1 = data; 1624 }).catch((err: BusinessError) => { 1625 console.error(`Failed to add event. Code: ${err.code}, message: ${err.message}`); 1626 }); 1627 await calendar.addEvent(event2).then((data: number) => { 1628 console.info(`Succeeded in adding event, id -> ${data}`); 1629 id2 = data; 1630 }).catch((err: BusinessError) => { 1631 console.error(`Failed to add event. Code: ${err.code}, message: ${err.message}`); 1632 }); 1633 const filter = calendarManager.EventFilter.filterById([id1, id2]); 1634 calendar.getEvents(filter).then((data: calendarManager.Event[]) => { 1635 console.info(`Succeeded in getting events filter by id, data -> ${JSON.stringify(data)}`); 1636 }).catch((err: BusinessError) => { 1637 console.error(`Failed to filter by id. Code: ${err.code}, message: ${err.message}`); 1638 }); 1639 } 1640}); 1641``` 1642 1643### filterByTime 1644 1645static filterByTime(start: number, end: number): EventFilter 1646 1647根据日程时间过滤日程。 1648 1649**系统能力**: SystemCapability.Applications.CalendarData 1650 1651**参数**: 1652 1653| 参数名 | 类型 | 必填 | 说明 | 1654| ------ | ------ | ---- | ---------- | 1655| start | number | 是 | 开始时间。 | 1656| end | number | 是 | 结束时间。 | 1657 1658**返回值**: 1659 1660| 类型 | 说明 | 1661| --------------------------- | -------------------- | 1662| [EventFilter](#eventfilter) | 返回日程过滤器对象。 | 1663 1664**示例**: 1665 1666```typescript 1667import { BusinessError } from '@kit.BasicServicesKit'; 1668import { calendarMgr } from '../entryability/EntryAbility'; 1669 1670let calendar : calendarManager.Calendar | undefined = undefined; 1671const event1: calendarManager.Event = { 1672 type: calendarManager.EventType.NORMAL, 1673 startTime: 1686931200000, 1674 endTime: 1687017600000 1675}; 1676const event2: calendarManager.Event = { 1677 type: calendarManager.EventType.IMPORTANT, 1678 startTime: 1686931200000, 1679 endTime: 1687017600000 1680}; 1681calendarMgr?.getCalendar(async (err: BusinessError, data:calendarManager.Calendar) => { 1682 if (err) { 1683 console.error(`Failed to get calendar. Code: ${err.code}, message: ${err.message}`); 1684 } else { 1685 console.info(`Succeeded in getting calendar, data -> ${JSON.stringify(data)}`); 1686 calendar = data; 1687 await calendar.addEvent(event1).then((data: number) => { 1688 console.info(`Succeeded in adding event, id -> ${data}`); 1689 }).catch((err: BusinessError) => { 1690 console.error(`Failed to add event. Code: ${err.code}, message: ${err.message}`); 1691 }); 1692 await calendar.addEvent(event2).then((data: number) => { 1693 console.info(`Succeeded in adding event, id -> ${data}`); 1694 }).catch((err: BusinessError) => { 1695 console.error(`Failed to add event. Code: ${err.code}, message: ${err.message}`); 1696 }); 1697 const filter = calendarManager.EventFilter.filterByTime(1686931200000, 1687017600000); 1698 calendar.getEvents(filter).then((data: calendarManager.Event[]) => { 1699 console.info(`Succeeded in getting events filter by time, data -> ${JSON.stringify(data)}`); 1700 }).catch((err: BusinessError) => { 1701 console.error(`Failed to filter by time. Code: ${err.code}, message: ${err.message}`); 1702 }); 1703 } 1704}); 1705``` 1706 1707### filterByTitle 1708 1709static filterByTitle(title: string): EventFilter 1710 1711根据日程标题过滤日程,该条件为模糊匹配。 1712 1713**系统能力**: SystemCapability.Applications.CalendarData 1714 1715**参数**: 1716 1717| 参数名 | 类型 | 必填 | 说明 | 1718| ------ | ------ | ---- | ---------- | 1719| title | string | 是 | 日程标题。 | 1720 1721**返回值**: 1722 1723| 类型 | 说明 | 1724| --------------------------- | -------------------- | 1725| [EventFilter](#eventfilter) | 返回日程过滤器对象。 | 1726 1727**示例**: 1728 1729```typescript 1730import { BusinessError } from '@kit.BasicServicesKit'; 1731import { calendarMgr } from '../entryability/EntryAbility'; 1732 1733let calendar : calendarManager.Calendar | undefined = undefined; 1734const event: calendarManager.Event = { 1735 title: 'MyEvent', 1736 type: calendarManager.EventType.NORMAL, 1737 startTime: 1686931200000, 1738 endTime: 1687017600000 1739}; 1740calendarMgr?.getCalendar(async (err: BusinessError, data:calendarManager.Calendar) => { 1741 if (err) { 1742 console.error(`Failed to get calendar. Code: ${err.code}, message: ${err.message}`); 1743 } else { 1744 console.info(`Succeeded in getting calendar, data -> ${JSON.stringify(data)}`); 1745 calendar = data; 1746 await calendar.addEvent(event).then((data: number) => { 1747 console.info(`Succeeded in adding event, id -> ${data}`); 1748 }).catch((err: BusinessError) => { 1749 console.error(`Failed to add event. Code: ${err.code}, message: ${err.message}`); 1750 }); 1751 // 根据MyEvent进行模糊查询,如果存在类似标题为MyEvent1类型的日程,也可查询出来 1752 const filter = calendarManager.EventFilter.filterByTitle('MyEvent'); 1753 calendar.getEvents(filter).then((data: calendarManager.Event[]) => { 1754 console.info(`Succeeded in getting events filter by title, data -> ${JSON.stringify(data)}`); 1755 }).catch((err: BusinessError) => { 1756 console.error(`Failed to filter by title. Code: ${err.code}, message: ${err.message}`); 1757 }); 1758 } 1759}); 1760``` 1761 1762## EventType 1763 1764日程类型枚举。 1765 1766**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1767 1768**系统能力**:SystemCapability.Applications.CalendarData 1769 1770| 名称 | 值 | 说明 | 1771| --------- | ---- |-------------------------| 1772| NORMAL | 0 | 普通日程,例如会议,闹钟等日常提醒的日程。 | 1773| IMPORTANT | 1 | 重要日程,例如结婚纪念日等具有重要意义的日期,不推荐三方开发者使用,重要日程类型不支持一键服务跳转功能及无法自定义提醒时间。 | 1774 1775## RecurrenceRule 1776 1777日程重复规则。 1778 1779**系统能力**:SystemCapability.Applications.CalendarData 1780 1781| 名称 | 类型 | 只读 | 可选 | 说明 | 1782| ------------------- | ------------------------------------------- | ---- |----|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| 1783| recurrenceFrequency | [RecurrenceFrequency](#recurrencefrequency) | 否 | 否 | 日程重复规则类型。 <br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 1784| expire | number | 否 | 是 | 重复周期截止日。不填时,默认为0。 <br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 1785| count<sup>12+</sup> | number | 否 | 是 | 重复日程的重复次数,取值为非负整数,不填时默认为0,表示不会限定重复次数,会一直重复,取值为负时,效果等同于取值为0。当count与expire同时存在时以count为准。 <br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 1786| interval<sup>12+</sup> | number | 否 | 是 | 重复日程的重复间隔,取值为非负整数,不填时默认为0,表示日程按照重复规则一直重复,没有间隔。取值为负时,效果等同于取值为0。当interval与expire同时存在时以expire为准。 <br/>此属性与recurrenceFrequency重复规则相关,不同的重复规则下,表示的重复间隔不同,以interval取2为例,分为以下几种情况:<br/>每天重复时:表示日程每隔两天重复一次。<br/>每周重复时:表示日程每隔两周重复一次。<br/>每月重复时:表示日程每隔两月重复一次。<br/>每年重复时:表示日程每隔两年重复一次。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 1787| excludedDates<sup>12+</sup> | number[] | 否 | 是 | 重复日程的排除日期,参数取值为时间戳格式,不填时,默认为空,表示没有排除的日期,0或负数为无效值,与空值效果相同。 <br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 1788| daysOfWeek<sup>12+</sup> | number[] | 否 | 是 | 按照一周第几天重复。不填时,默认为空,表示没有一周第几天重复的规则。范围为1到7,对应周一到周日,其他值为无效值,与空值效果相同。 <br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 1789| daysOfMonth<sup>12+</sup> | number[] | 否 | 是 | 按照一个月第几天重复。不填时,默认为空,表示没有一个月第几天重复的规则。范围为1到31,1到31对应1到31号,其他值为无效值,与空值效果相同。若当月没有31号,31也为无效值。 <br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 1790| daysOfYear<sup>12+</sup> | number[] | 否 | 是 | 按照一年第几天重复。不填时,默认为空,表示没有一年第几天重复的规则。范围为1到366,1到366表示一年的1到366天,其他值为无效值,与空值效果相同。若当年没有366天,366也为无效值。 <br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 1791| weeksOfMonth<sup>12+</sup> | number[] | 否 | 是 | 按照一个月第几周重复。不填时,默认为空,表示没有一个月第几周重复的规则。范围为1到5,1到5为每月的第1到第5周,其他值为无效值,与空值效果相同。若当月没有第五周,5也为无效值。 <br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 1792| weeksOfYear<sup>12+</sup> | number[] | 否 | 是 | 按照一年中第几周重复。不填时,默认为空,表示没有一年第几周重复的规则。范围为1到53,1到53为每年的第1到第53周,其他值为无效值,与空值效果相同。 <br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 1793| monthsOfYear<sup>12+</sup> | number[] | 否 | 是 | 按照一年中第几个月重复。不填时,默认为空,表示没有一年第几个月重复的规则。范围为1到12,1到12为每年的1到12月,其他值为无效值,与空值效果相同。 <br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 1794## RecurrenceFrequency 1795 1796日程重复规则类型枚举。 1797 1798**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1799 1800**系统能力**:SystemCapability.Applications.CalendarData 1801 1802| 名称 | 值 | 说明 | 1803| ------- | ---- | ---------- | 1804| YEARLY | 0 | 每年重复。 | 1805| MONTHLY | 1 | 每月重复。 | 1806| WEEKLY | 2 | 每周重复。 | 1807| DAILY | 3 | 每天重复。 | 1808 1809## Attendee 1810 1811会议日程参与者。 1812 1813**系统能力**:SystemCapability.Applications.CalendarData 1814 1815| 名称 | 类型 | 只读 | 可选 | 说明 | 1816| ----- | ------ | ---- |----|--------------------------------------------------------------------| 1817| name | string | 否 | 否 | 会议日程参与者的姓名。 <br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 1818| email | string | 否 | 否 | 会议日程参与者的邮箱。 <br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 1819| role<sup>12+</sup> | [AttendeeRole](#attendeerole12) | 否 | 是 | 会议日程参与者的角色。 <br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 1820 1821## EventService 1822 1823日程服务。 1824 1825**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1826 1827**系统能力**:SystemCapability.Applications.CalendarData 1828 1829| 名称 | 类型 | 只读 | 可选 | 说明 | 1830| ----------- | --------------------------- | ---- |----| ------------------------------------- | 1831| type | [ServiceType](#servicetype) | 否 | 否 | 服务类型。 | 1832| uri | string | 否 | 否 | 服务的uri,格式为Deeplink类型。可以跳转到三方应用相应界面。 | 1833| description | string | 否 | 是 | 服务辅助描述。不填时,默认为空字符串。 | 1834 1835## ServiceType 1836 1837日程服务类型枚举。 1838 1839**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1840 1841**系统能力**:SystemCapability.Applications.CalendarData 1842 1843| 名称 | 值 | 说明 | 1844| --------------- | ---------------- | ------------ | 1845| MEETING | 'Meeting' | 一键入会。 | 1846| WATCHING | 'Watching' | 一键追剧。 | 1847| REPAYMENT | 'Repayment' | 一键还款。 | 1848| LIVE | 'Live' | 一键直播。 | 1849| SHOPPING | 'Shopping' | 一键购物。 | 1850| TRIP | 'Trip' | 一键查看。 | 1851| CLASS | 'Class' | 一键上课。 | 1852| SPORTS_EVENTS | 'SportsEvents' | 一键看赛事。 | 1853| SPORTS_EXERCISE | 'SportsExercise' | 一键运动。 | 1854 1855## AttendeeRole<sup>12+</sup> 1856 1857会议日程参与者角色类型枚举。 1858 1859**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 1860 1861**系统能力**:SystemCapability.Applications.CalendarData 1862 1863| 名称 | 值 | 说明 | 1864|--------------|---------------|--------| 1865| ORGANIZER<sup>12+</sup> | 'organizer' | 会议组织者。 | 1866| PARTICIPANT<sup>12+</sup> | 'participant' | 会议参与者。 |