文档首页/自动获取日历日程/简介
# 简介

在安排工作日历日程的场景中，一般希望通过自动化的方式获取用户的日程安排，然后再基于用户的日程安排开发第三方功能或者系统。本教程基于Lark开放能力，实现自动获取指定身份（应用/用户）下的日历日程信息。可以快速实现如下基本功能：

- 存量日历/日程数据的获取。

- 增量日历/日程数据的获取。

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

你可以基于以上基本功能，用于实现包括且不限于以下场景：

- 获取Lark日历日程信息，并同步到 Exchange 或 Google 等第三方系统。

- 监听并获取指定日历日程的变更信息。

- 基于Lark日历数据开发第三方系统。

## 操作流程

本文涉及的操作流程如下图所示：

![image.png](//sf16-sg.larksuitecdn.com/obj/open-platform-opendoc-sg/18a2995b8b4c54bd597707825afcd268_BrdSL41qWu.png?height=930&lazyload=true&maxWidth=750&width=918)

## 使用到的 API 列表

获取存量的日历和日程数据，需要直接调用获取日历和日程数据的接口，拉取全量数据；获取增量日历和日程数据，需要监听日历和日程资源的事件，收到事件通知后，再拉增量数据。

### 获取日历和日程数据 API

**[方法 (API)](https://open.larksuite.com/document/ukTMukTMukTM/uITNz4iM1MjLyUzM)** | 权限要求（满足任一） | **[访问凭证](https://open.larksuite.com/document/ukTMukTMukTM/uMTNz4yM1MjLzUzM)**（选择其一）
---|---|---
[获取日历列表](https://open.larksuite.com/document/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar/list)<br>`GET` /open-apis/calendar/v4/calendars<br>>获取当前身份下的日历列表 | 获取日历、日程及忙闲信息<br>更新日历及日程信息 | `tenant_access_token`<br>`user_access_token`
[订阅日历变更事件](https://open.larksuite.com/document/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar/subscription)<br>`POST` /open-apis/calendar/v4/calendars/subscription<br>>与当前身份的日历资源建立事件订阅关系 | 获取日历、日程及忙闲信息<br>更新日历及日程信息 | `user_access_token`
[获取日程列表](https://open.larksuite.com/document/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar-event/list)<br>`GET` /open-apis/calendar/v4/calendars/:calendar_id/events<br>> 获取日历下的日程列表 | 获取日历、日程及忙闲信息<br>更新日历及日程信息 | `tenant_access_token`<br>`user_access_token`
[订阅日程变更事件](https://open.larksuite.com/document/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar-event/subscription)<br>`POST` /open-apis/calendar/v4/calendars/:calendar_id/events/subscription<br>>以用户身份订阅指定日历下的日程变更事件 | 获取日历、日程及忙闲信息<br>更新日历及日程信息 | `user_access_token`

### 监听日历和日程事件

**[事件 (Event)](https://open.larksuite.com/document/ukTMukTMukTM/uUTNz4SN1MjL1UzM)** | 触发时机 | 权限要求（满足任一） | 事件类型
---|---|---|---
[日历变更](https://open.larksuite.com/document/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar/events/changed) | 当订阅用户的日历列表有日历变动时 | 获取日历、日程及忙闲信息<br>更新日历及日程信息 | calendar.calendar.changed_v4
[日程变更](https://open.larksuite.com/document/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar-event/events/changed) | 当被订阅的用户日历下有日程变更时 | 获取日历、日程及忙闲信息<br>更新日历及日程信息 | calendar.calendar.event.changed_v4

