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 // 根据MyEvent进行模糊查询,如果存在类似标题为MyEvent1类型的日程,也可查询出来 1326 const filter = calendarManager.EventFilter.filterByTitle('MyEvent'); 1327 calendar.getEvents(filter).then((data: calendarManager.Event[]) => { 1328 console.info(`Succeeded in getting events, data -> ${JSON.stringify(data)}`); 1329 }).catch((err: BusinessError) => { 1330 console.error(`Failed to get events. Code: ${err.code}, message: ${err.message}`); 1331 }); 1332 } 1333}); 1334``` 1335 1336### getConfig 1337 1338getConfig(): CalendarConfig 1339 1340获取日历配置信息。 1341 1342**系统能力**: SystemCapability.Applications.CalendarData 1343 1344**返回值**: 1345 1346| 类型 | 说明 | 1347| --------------------------------- | -------------- | 1348| [CalendarConfig](#calendarconfig) | 日历配置信息。 | 1349 1350**示例**: 1351 1352```typescript 1353import { calendarMgr } from '../entryability/EntryAbility'; 1354import { BusinessError } from '@kit.BasicServicesKit'; 1355 1356let calendar : calendarManager.Calendar | undefined = undefined; 1357calendarMgr?.getCalendar((err: BusinessError, data:calendarManager.Calendar) => { 1358 if (err) { 1359 console.error(`Failed to get calendar. Code: ${err.code}, message: ${err.message}`); 1360 } else { 1361 console.info(`Succeeded in getting calendar, data -> ${JSON.stringify(data)}`); 1362 calendar = data; 1363 const config = calendar.getConfig(); 1364 console.info("Succeeded in getting config"); 1365 } 1366}); 1367``` 1368 1369### setConfig 1370 1371setConfig(config: CalendarConfig, callback: AsyncCallback\<void>): void 1372 1373设置日历配置信息,使用callback异步回调。 1374 1375**系统能力**: SystemCapability.Applications.CalendarData 1376 1377**参数**: 1378 1379| 参数名 | 类型 | 必填 | 说明 | 1380| -------- | --------------------------------- | ---- | -------------- | 1381| config | [CalendarConfig](#calendarconfig) | 是 | 日历配置信息。 | 1382| callback | AsyncCallback\<void> | 是 | 回调函数。 | 1383 1384**示例**: 1385 1386```typescript 1387import { BusinessError } from '@kit.BasicServicesKit'; 1388import { calendarMgr } from '../entryability/EntryAbility'; 1389 1390let calendar : calendarManager.Calendar | undefined = undefined; 1391const config: calendarManager.CalendarConfig = { 1392 enableReminder: true, 1393 color: '#aabbcc' 1394}; 1395calendarMgr?.getCalendar((err: BusinessError, data:calendarManager.Calendar) => { 1396 if (err) { 1397 console.error(`Failed to get calendar. Code: ${err.code}, message: ${err.message}`); 1398 } else { 1399 console.info(`Succeeded in getting calendar, data -> ${JSON.stringify(data)}`); 1400 calendar = data; 1401 calendar.setConfig(config, (err: BusinessError) => { 1402 if (err) { 1403 console.error(`Failed to set config. Code: ${err.code}, message: ${err.message}`); 1404 } else { 1405 console.info(`Succeeded in setting config, config -> ${JSON.stringify(config)}`); 1406 } 1407 }); 1408 } 1409}); 1410``` 1411 1412### setConfig 1413 1414setConfig(config: CalendarConfig): Promise\<void> 1415 1416设置日历配置信息,使用Promise异步回调。 1417 1418**系统能力**: SystemCapability.Applications.CalendarData 1419 1420**参数**: 1421 1422| 参数名 | 类型 | 必填 | 说明 | 1423| ------ | --------------------------------- | ---- | -------------- | 1424| config | [CalendarConfig](#calendarconfig) | 是 | 日历配置信息。 | 1425 1426**返回值**: 1427 1428| 类型 | 说明 | 1429| -------------- | ------------------------- | 1430| Promise\<void> | 无返回结果的Promise对象。 | 1431 1432**示例**: 1433 1434```typescript 1435import { BusinessError } from '@kit.BasicServicesKit'; 1436import { calendarMgr } from '../entryability/EntryAbility'; 1437 1438let calendar : calendarManager.Calendar | undefined = undefined; 1439const config: calendarManager.CalendarConfig = { 1440 enableReminder: true, 1441 color: '#aabbcc' 1442}; 1443calendarMgr?.getCalendar((err: BusinessError, data:calendarManager.Calendar) => { 1444 if (err) { 1445 console.error(`Failed to get calendar. Code: ${err.code}, message: ${err.message}`); 1446 } else { 1447 console.info(`Succeeded in getting calendar, data -> ${JSON.stringify(data)}`); 1448 calendar = data; 1449 calendar.setConfig(config).then(() => { 1450 console.info(`Succeeded in setting config, data->${JSON.stringify(config)}`); 1451 }).catch((err: BusinessError) => { 1452 console.error(`Failed to set config. Code: ${err.code}, message: ${err.message}`); 1453 }); 1454 } 1455}); 1456``` 1457 1458### getAccount 1459 1460getAccount(): CalendarAccount 1461 1462获取日历账户信息。 1463 1464**系统能力**: SystemCapability.Applications.CalendarData 1465 1466**返回值**: 1467 1468| 类型 | 说明 | 1469| ----------------------------------- | -------------- | 1470| [CalendarAccount](#calendaraccount) | 日历账户信息。 | 1471 1472**示例**: 1473 1474```typescript 1475import { calendarMgr } from '../entryability/EntryAbility'; 1476import { BusinessError } from '@kit.BasicServicesKit'; 1477 1478let calendar : calendarManager.Calendar | undefined = undefined; 1479calendarMgr?.getCalendar((err: BusinessError, data:calendarManager.Calendar) => { 1480 if (err) { 1481 console.error(`Failed to get calendar. Code: ${err.code}, message: ${err.message}`); 1482 } else { 1483 console.info(`Succeeded in getting calendar, data -> ${JSON.stringify(data)}`); 1484 calendar = data; 1485 const account = calendar.getAccount(); 1486 console.info(`succeeded in getting account, account -> ${JSON.stringify(account)}`); 1487 } 1488}); 1489``` 1490 1491## CalendarAccount 1492 1493日历账户信息。 1494 1495**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1496 1497**系统能力**:SystemCapability.Applications.CalendarData 1498 1499| 名称 | 类型 | 只读 | 可选 | 说明 | 1500| ----------- | ----------------------------- | ---- |----|----------------------------------| 1501| name | string | 是 | 否 | 账户名称(面向开发者)。 | 1502| type | [CalendarType](#calendartype) | 否 | 否 | 账户类型。 | 1503| displayName | string | 否 | 是 | 账户显示在日历应用上的名称(面向用户)。不填时,默认为空字符串。 | 1504 1505## CalendarConfig 1506 1507日历配置信息。 1508 1509**系统能力**:SystemCapability.Applications.CalendarData 1510 1511| 名称 | 类型 | 只读 | 可选 | 说明 | 1512| -------------- |--------|-------|----| ------------------------------------------------------------ | 1513| enableReminder | boolean | 否 | 是 | 是否打开Calendar下所有Event提醒能力。当取值为true时,该Calendar下所有Event具备提醒能力;当取值为false时,不具备提醒能力,默认具备提醒能力。 | 1514| color | number \| string | 否 | 是 | 设置Calendar颜色。不填时,默认值为'#0A59F7'。 | 1515 1516## Event 1517 1518日程对象,包含日程标题、开始时间、结束时间等信息。 1519 1520**系统能力**:SystemCapability.Applications.CalendarData 1521 1522| 名称 | 类型 | 只读 | 可选 | 说明 | 1523| -------------- | --------------------------------- | ---- |----|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| 1524| id | number | 否 | 是 | 日程id。当调用[addEvent()](#addevent)、[addEvents()](#addevents)创建日程时,不填写此参数。 <br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 1525| type | [EventType](#eventtype) | 否 | 否 | 日程类型。 <br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 1526| title | string | 否 | 是 | 日程标题。不填时,默认为空字符串。 <br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 1527| location | [Location](#location) | 否 | 是 | 日程地点。不填时,默认为null。 <br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 1528| startTime | number | 否 | 否 | 日程开始时间,需要13位时间戳。 <br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 1529| endTime | number | 否 | 否 | 日程结束时间,需要13位时间戳。 <br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 1530| isAllDay | boolean | 否 | 是 | 是否为全天日程。当取值为true时,说明为全天日程;当取值为false时,说明不是全天日程,默认为非全天日程。 <br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 1531| attendee | [Attendee](#attendee)[] | 否 | 是 | 会议日程参与者。不填时,默认为null。 <br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 1532| timeZone | string | 否 | 是 | 日程时区。不填时,默认为当前所在时区,当需要创建与当前不一样的时区时,可填入对应的时区。可通过[getTimeZone()](../apis-basic-services-kit/js-apis-date-time.md#systemdatetimegettimezone)获取当前系统时区。 <br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 1533| reminderTime | number[] | 否 | 是 | 日程提醒时间,单位为分钟。填写x分钟,即距开始时间提前x分钟提醒,不填时,默认为不提醒。为负值时表示延期多长时间提醒。 <br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 1534| recurrenceRule | [RecurrenceRule](#recurrencerule) | 否 | 是 | 日程重复规则。不填时,默认为不重复。 <br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 1535| description | string | 否 | 是 | 日程描述。不填时,默认为空字符串。 <br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 1536| service | [EventService](#eventservice) | 否 | 是 | 日程服务。不填时,默认没有一键服务。 <br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 1537| identifier<sup>12+</sup> | string | 否 | 是 | 写入方可指定日程唯一标识。不填时,默认为null。 <br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 1538| isLunar<sup>12+</sup> | boolean | 否 | 是 | 是否为农历日程。当取值为true时,说明为农历日程;当取值为false时,说明不是农历日程,默认为非农历日程。 <br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 1539 1540## CalendarType 1541 1542账户类型枚举。 1543 1544**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1545 1546**系统能力**:SystemCapability.Applications.CalendarData 1547 1548| 名称 | 值 | 说明 | 1549| ---------- | ------------ | -------------------- | 1550| LOCAL | 'local' | 本地账户。 | 1551| EMAIL | 'email' | 邮箱账户。 | 1552| BIRTHDAY | 'birthday' | 生日账户。 | 1553| CALDAV | 'caldav' | 支持CalDAV协议账户。 | 1554| SUBSCRIBED | 'subscribed' | 订阅账户。 | 1555 1556## Location 1557 1558日程地点。 1559 1560**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1561 1562**系统能力**:SystemCapability.Applications.CalendarData 1563 1564| 名称 | 类型 | 只读 | 可选 | 说明 | 1565| --------- | ------ | ---- |----| ------------------------ | 1566| location | string | 否 | 是 | 地点位置。默认为空字符串。 | 1567| longitude | number | 否 | 是 | 地点经度。默认为0。 | 1568| latitude | number | 否 | 是 | 地点纬度。默认为0。 | 1569 1570## EventFilter 1571 1572日程过滤器,查询日程时进行筛选过滤,获取符合条件的日程。 1573 1574通过[filterById()](#filterbyid)、[filterByTime()](#filterbytime)、[filterByTitle()](#filterbytitle)任一方法获取日程过滤器,传入[getEvents()](#getevents)过滤。 1575 1576### filterById 1577 1578static filterById(ids: number[]): EventFilter 1579 1580根据日程id过滤日程。 1581 1582**系统能力**: SystemCapability.Applications.CalendarData 1583 1584**参数**: 1585 1586| 参数名 | 类型 | 必填 | 说明 | 1587| ------ | -------- | ---- | ------------ | 1588| ids | number[] | 是 | 日程id数组。 | 1589 1590**返回值**: 1591 1592| 类型 | 说明 | 1593| --------------------------- | -------------------- | 1594| [EventFilter](#eventfilter) | 返回日程过滤器对象。 | 1595 1596**示例**: 1597 1598```typescript 1599import { BusinessError } from '@kit.BasicServicesKit'; 1600import { calendarMgr } from '../entryability/EntryAbility'; 1601 1602let calendar : calendarManager.Calendar | undefined = undefined; 1603let id1: number = 0; 1604let id2: number = 0; 1605const date = new Date(); 1606const event1: calendarManager.Event = { 1607 type: calendarManager.EventType.NORMAL, 1608 startTime: date.getTime(), 1609 endTime: date.getTime() + 60 * 60 * 1000 1610}; 1611const event2: calendarManager.Event = { 1612 type: calendarManager.EventType.IMPORTANT, 1613 startTime: date.getTime(), 1614 endTime: date.getTime() + 60 * 60 * 1000 1615}; 1616calendarMgr?.getCalendar(async (err: BusinessError, data:calendarManager.Calendar) => { 1617 if (err) { 1618 console.error(`Failed to get calendar. Code: ${err.code}, message: ${err.message}`); 1619 } else { 1620 console.info(`Succeeded in getting calendar, data -> ${JSON.stringify(data)}`); 1621 calendar = data; 1622 await calendar.addEvent(event1).then((data: number) => { 1623 console.info(`Succeeded in adding event, id -> ${data}`); 1624 id1 = data; 1625 }).catch((err: BusinessError) => { 1626 console.error(`Failed to add event. Code: ${err.code}, message: ${err.message}`); 1627 }); 1628 await calendar.addEvent(event2).then((data: number) => { 1629 console.info(`Succeeded in adding event, id -> ${data}`); 1630 id2 = data; 1631 }).catch((err: BusinessError) => { 1632 console.error(`Failed to add event. Code: ${err.code}, message: ${err.message}`); 1633 }); 1634 const filter = calendarManager.EventFilter.filterById([id1, id2]); 1635 calendar.getEvents(filter).then((data: calendarManager.Event[]) => { 1636 console.info(`Succeeded in getting events filter by id, data -> ${JSON.stringify(data)}`); 1637 }).catch((err: BusinessError) => { 1638 console.error(`Failed to filter by id. Code: ${err.code}, message: ${err.message}`); 1639 }); 1640 } 1641}); 1642``` 1643 1644### filterByTime 1645 1646static filterByTime(start: number, end: number): EventFilter 1647 1648根据日程时间过滤日程。 1649 1650**系统能力**: SystemCapability.Applications.CalendarData 1651 1652**参数**: 1653 1654| 参数名 | 类型 | 必填 | 说明 | 1655| ------ | ------ | ---- | ---------- | 1656| start | number | 是 | 开始时间。 | 1657| end | number | 是 | 结束时间。 | 1658 1659**返回值**: 1660 1661| 类型 | 说明 | 1662| --------------------------- | -------------------- | 1663| [EventFilter](#eventfilter) | 返回日程过滤器对象。 | 1664 1665**示例**: 1666 1667```typescript 1668import { BusinessError } from '@kit.BasicServicesKit'; 1669import { calendarMgr } from '../entryability/EntryAbility'; 1670 1671let calendar : calendarManager.Calendar | undefined = undefined; 1672const event1: calendarManager.Event = { 1673 type: calendarManager.EventType.NORMAL, 1674 startTime: 1686931200000, 1675 endTime: 1687017600000 1676}; 1677const event2: calendarManager.Event = { 1678 type: calendarManager.EventType.IMPORTANT, 1679 startTime: 1686931200000, 1680 endTime: 1687017600000 1681}; 1682calendarMgr?.getCalendar(async (err: BusinessError, data:calendarManager.Calendar) => { 1683 if (err) { 1684 console.error(`Failed to get calendar. Code: ${err.code}, message: ${err.message}`); 1685 } else { 1686 console.info(`Succeeded in getting calendar, data -> ${JSON.stringify(data)}`); 1687 calendar = data; 1688 await calendar.addEvent(event1).then((data: number) => { 1689 console.info(`Succeeded in adding event, id -> ${data}`); 1690 }).catch((err: BusinessError) => { 1691 console.error(`Failed to add event. Code: ${err.code}, message: ${err.message}`); 1692 }); 1693 await calendar.addEvent(event2).then((data: number) => { 1694 console.info(`Succeeded in adding event, id -> ${data}`); 1695 }).catch((err: BusinessError) => { 1696 console.error(`Failed to add event. Code: ${err.code}, message: ${err.message}`); 1697 }); 1698 const filter = calendarManager.EventFilter.filterByTime(1686931200000, 1687017600000); 1699 calendar.getEvents(filter).then((data: calendarManager.Event[]) => { 1700 console.info(`Succeeded in getting events filter by time, data -> ${JSON.stringify(data)}`); 1701 }).catch((err: BusinessError) => { 1702 console.error(`Failed to filter by time. Code: ${err.code}, message: ${err.message}`); 1703 }); 1704 } 1705}); 1706``` 1707 1708### filterByTitle 1709 1710static filterByTitle(title: string): EventFilter 1711 1712根据日程标题过滤日程,该条件为模糊匹配。 1713 1714**系统能力**: SystemCapability.Applications.CalendarData 1715 1716**参数**: 1717 1718| 参数名 | 类型 | 必填 | 说明 | 1719| ------ | ------ | ---- | ---------- | 1720| title | string | 是 | 日程标题。 | 1721 1722**返回值**: 1723 1724| 类型 | 说明 | 1725| --------------------------- | -------------------- | 1726| [EventFilter](#eventfilter) | 返回日程过滤器对象。 | 1727 1728**示例**: 1729 1730```typescript 1731import { BusinessError } from '@kit.BasicServicesKit'; 1732import { calendarMgr } from '../entryability/EntryAbility'; 1733 1734let calendar : calendarManager.Calendar | undefined = undefined; 1735const event: calendarManager.Event = { 1736 title: 'MyEvent', 1737 type: calendarManager.EventType.NORMAL, 1738 startTime: 1686931200000, 1739 endTime: 1687017600000 1740}; 1741calendarMgr?.getCalendar(async (err: BusinessError, data:calendarManager.Calendar) => { 1742 if (err) { 1743 console.error(`Failed to get calendar. Code: ${err.code}, message: ${err.message}`); 1744 } else { 1745 console.info(`Succeeded in getting calendar, data -> ${JSON.stringify(data)}`); 1746 calendar = data; 1747 await calendar.addEvent(event).then((data: number) => { 1748 console.info(`Succeeded in adding event, id -> ${data}`); 1749 }).catch((err: BusinessError) => { 1750 console.error(`Failed to add event. Code: ${err.code}, message: ${err.message}`); 1751 }); 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' | 会议参与者。 |