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