文档首页/自动获取日历日程/步骤四：获取日程信息
# 步骤四：获取日程信息

在本步骤中，你将使用[步骤二](https://open.larksuite.com/document/home/calendar-event-sync/subscribe-to-events)中获取到的 user_access_token 和 calendar_id，获取日程信息。

## 获取存量日程信息

使用[获取日程列表](https://open.larksuite.com/document/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar-event/list)接口获取存量日程。

1. 打开 [API调试台](https://open.larksuite.com/api-explorer)，在左侧 API 列表中，选择 **日历** > **日程管理** > **获取日程列表**。

2. 完成参数配置。

1. 确保请求头已配置了 **tenant_access_token** 或者 **user_access_token**。

2. 路径参数 **calendar_id** 填写已保存的主日历 ID。

3. 填写查询参数。

- **start_time** 和 **end_time** 是用于获取某一时间段内的日程信息，不适用于数据同步，所以本示例调试时，**start_time** 和 **end_time** 均不传值。

- 根据实际需要，可选填写 **anchor_time**，该参数用来加速存量日程的获取过程。通过 **anchor_time** 指定一个时间点，存量日程只获取该时间点之后的日程信息。格式为时间戳（示例值“1682870400”表示查询“2023-05-01 00:00:00”之后的日程信息）。

例如：当前用户有 4 年的日程信息，由于 4 年内产生的日程数据量较为庞大，将 4 年的存量日程都获取到耗时较久，且很久之前的过期日程再次使用到的概率不大。此时，就可以指定 **anchor_time**（可为 1 年前的时间点），只获取最近 1 年的存量日程，来加速存量日程的获取过程。

- 首次调用时，无需填写 **page_token** 和 **sync_token**。

![](//sf16-sg.larksuitecdn.com/obj/open-platform-opendoc-sg/5435c9e1cde9ce54c55a3e2111e543b8_aPFkmqJjHJ.png?height=1344&lazyload=true&maxWidth=600&width=2876)

- 如果列表数据较多，一页没有完全展示，则可以再次调用该接口，根据实际情况，传入上一次调用时，在响应数据中获取到的 **page_token** （如果没有返回则无需填写）和 **sync_token。**

**page_token** 用于分页拉取存量数据，**sync_token** 用于增量同步变更数据，目前仅传 **anchor_time** 时会返回 **page_token**。

![](//sf16-sg.larksuitecdn.com/obj/open-platform-opendoc-sg/49181307b78dab5515759efbad316cd8_bTLMJN34TJ.png?height=1314&lazyload=true&maxWidth=600&width=2882)

<br>

3. 在页面右上角，点击 **开始调用**。

调用成功的回显信息如下图所示，你可以多次调用该接口以查看完整的日历列表数据，直至 **has_more** 为 **false**，**sync_token** 返回值不为空时，表示完成了存量日程列表的获取。
在最后一次调用时，你需要保存返回的 **sync_token** 值，后续用于获取增量数据。

![](//sf16-sg.larksuitecdn.com/obj/open-platform-opendoc-sg/e5341ef2664bee849d28a52db0552c51_fBROTH5xfA.png?height=1388&lazyload=true&maxWidth=600&width=2882)

## 获取增量日程信息

1. 通过Lark客户端，或者调用[创建日程](https://open.larksuite.com/document/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar-event/create)接口，在当前登录用户的主日历中增加一个日程。

- 方式一：Lark客户端增加日程

在客户端的 **日历** 功能页面，点击 **创建日程**，手动增加一个日程。

![](//sf16-sg.larksuitecdn.com/obj/open-platform-opendoc-sg/e80f735665fb55432138dd0ef433957e_mjoX2clIgf.png?height=1614&lazyload=true&maxWidth=600&width=2878)

- 方式二：调用 API 接口增加日程

打开 [API调试台](https://open.larksuite.com/api-explorer)，在左侧 API 列表中，选择 **日历** > **日程管理** > **创建日程**。完成以下参数配置，并点击 **开始调试** 完成增加日程的操作。

- 请求头需要切换为 **user_access_token**

- 路径参数 **calendar_id** 填写已保存的主日历 ID

- 保持 **请求头**、**请求体** 的默认配置

![](//sf16-sg.larksuitecdn.com/obj/open-platform-opendoc-sg/d8c26076fe6f1cf75fc1a9d3f324c8e4_CrWWUY8eB2.png?height=1396&lazyload=true&maxWidth=600&width=2838)

2. 由于在步骤一中已为应用配置了日历日程的事件订阅，因此测试应用的回调地址会收到日程变更的事件回调通知。

![](//sf16-sg.larksuitecdn.com/obj/open-platform-opendoc-sg/652b2af3ef2e03acf7c920b72758edae_AvJodoWn2S.png?height=1292&lazyload=true&maxWidth=600&width=2646)

3. 使用[获取日程列表](https://open.larksuite.com/document/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar-event/list)接口，获取增量日程数据。

1. 打开 [API调试台](https://open.larksuite.com/api-explorer)，在左侧 API 列表中，选择 **日历** > **日程管理** > **获取日程列表**。

2. 完成参数配置，并点击 **开始调试**。

- 路径参数 **calendar_id** 填写已保存的主日历 ID。

- 在 **查询参数** 页签内，填写上一次获取存量日程时返回的 **sync_token** 参数值。

![](//sf16-sg.larksuitecdn.com/obj/open-platform-opendoc-sg/18148e9d1ccacdd72c6d5a59435099d6_GuomYTdrXa.png?height=1174&lazyload=true&maxWidth=600&width=2882)

调用成功的回显信息如下图所示，将会获取增量日程数据。

![](//sf16-sg.larksuitecdn.com/obj/open-platform-opendoc-sg/8f74edcb582537843d7ba2299f657397_uw9d9SmW7U.png?height=1424&lazyload=true&maxWidth=600&width=2882)
后续再收到日程变更通知，可重复该增量数据的获取操作，以获取完整的日程信息。