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&lt;number&gt; | 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' | 会议参与者。 |