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