# 如何将其他系统的日程同步到飞书日历上？
日程是每个用户在处理工作时都非常关注的内容，它可以清晰展现每天的工作安排、同事之间根据彼此的日程，帮助更好地组织会议、进行协作。<br>

企业中经常存在多个系统都配备日程功能的情况，例如：招聘系统的招聘日程、会议室系统的会议日程、Outlook 邮箱的邮箱日程等等。然而，在多个系统中分散存放日程，会导致员工无法有效掌握自己的全部日程安排，有可能在同一时间、不同系统中预约多个会议，造成日程冲突，耽误工作。<br>

飞书日历旨在帮助你**构建企业的统一日程入口，通过日历的产品功能和开放能力将其他系统的日程同步到飞书日历中**。本文将带你了解，如何将其他系统的日程同步到飞书日历上，助你统一管理。
Outlook 以及 Google 日历同步功能可直接在飞书日历中配置，详见：[Outlook 日历同步](https://www.feishu.cn/hc/zh-CN/articles/360049067745)及[Google 日历同步](https://www.feishu.cn/hc/zh-cn/articles/360045085934-%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98-%E6%80%8E%E4%B9%88%E5%AF%BC%E5%85%A5%E5%85%B6%E4%BB%96%E6%97%A5%E5%8E%86-#source=search)

## 适用场景
招聘系统的招聘日程、会议室系统的会议日程、人力系统的休假日程等内部系统日程同步需求。

![image.png](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/d0a98e89161a7ff0eac334aca224192d_9lB3OEoIU5.png?lazyload=true&width=1640&height=1070)

## 基本概念
通俗地讲，日历相当于我们办公桌上的台历，可以看到每天所有的活动；而日程，就相当于台历上写着的一个个预约活动。

### 日历的类型

日历分为以下类型，包括全员日历、公共日历、会议室日历、订阅日历：

日历类型 | 说明
---|---
**全员日历** | 全员日历是由管理员所创建的、所有成员自动订阅的日历。<br>适用于共享“放假安排”、“公开讲座”等面向全员的日程信息。管理员在管理后台创建全员日历后，该日历就会自动同步到团队成员的个人日历中。
**公共日历** | 公共日历是可以让所有成员都搜到并订阅的日历。<br>订阅后，成员们可以查看该日历中的所有日程详情。成员可创建多个公共日历，方便团队共享不同主题、事件的相关信息。
**会议室日历** | 会议室日历中会显示会议室的预定情况，方便会议组织者提前查看和安排。
**订阅日历** | 你可以通过订阅日历来了解其他成员的日程安排、项目关键时间节点、会议室状态等多方面信息。<br>- 订阅其他成员的个人日历： 方便查看对方忙闲状态，快速邀约沟通时间。<br>- 订阅公共日历：比如公开的项目日历等，方便了解相关进展和关键时间点等。<br>- 订阅会议室日历：方便查看会议室的预定情况。

想了解更多关于全员日历和公共日历，请参见：[1分钟了解公共日历和全员日历（视频）](https://www.feishu.cn/hc/zh-CN/articles/360049067403)

### 日程的公开范围
用户可以在预定日程时定义日程的公开范围：

公开范围 | 说明
---|---
**默认的公开范围** | 订阅该日历的用户，如果有权查看该日历中其他日程的详情，那么就能看到此日程的详情
**公开** | 订阅该日历的用户，都可以查看相应日程的详情
**私密** | 除非是日程的所有者或编辑者，否则订阅该日历的用户，无法看到日程详情

技术上来讲，**日历与日程呈现如下的多对多关系：**
- 一个日历上可以存在多个日程
- 同一个日程可以对应出现在多个日历上（用户日历可以简单理解为在飞书看到的日历面板）

因此，获取用户的日历不是必须的，想要需要确定用户日历在相应时间段是否空闲，可以使用[查询用户忙闲](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/freebusy/list)接口确认。

1. [查询用户忙闲](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/freebusy/list)：基于此接口查询用户在相应特定时间点的忙闲情况（只有闲时才可约）；
2. [创建日程](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar-event/create)：基于此接口创建日程，需注意的是此环节以应用身份进行日程同步时，仅创建日程还没有管理日程的参与方，因此不会出现在用户的日历上；
3. [增加日程参与者及会议室](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar-event-attendee/create)：基于此接口添加日程参与者与会议室，但需要说明，添加时需要根据不同的对象设置不同参数，参考[类型说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar-event-attendee/introduction)：
	* 会议室：会议室作为日程的资源，需要传入会议室 ID；
	* 单个参与者：支持通过人员==user_id==、==open_id==、==union_id==添加日程参与者；
	* 群组参与者：支持通过群组chat_id将整个群组人员添加为日程参与者；
4.  **若已开启“第三方会议室同步”的会议室**，会议室预定结果会由客户的会议室管理系统决定，因此需要增加一步，调用[回复会议室日程实例](https://open.feishu.cn/document/ukTMukTMukTM/uYzN4UjL2cDO14iN3gTN)的接口，确认此会议室预定成功；
5. **记录日程 ID**：将已预约的日程 ID 记录在表单中，以备后续可能存在的调整或审计；
6. [更新日程时间](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar-event/patch) ：若需要针对已有日程进行更新，需要利用已有的日程 ID；
7. [删除日程](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar-event/delete)：若日程不再进行，则调用此接口删除；

#### 管理预约日程
1. [获取日程列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar-event/list)：可以基于日历 ID 获取该应用日历上的日程情况，从而进行分系统的日程管理；
2. 修改日程参与人：若日程参与人需要调整，则需要根据[创建日程参与人](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar-event-attendee/create)或[删除日程参与人](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar-event-attendee/batch_delete)，调用对应接口修改，需注意此接口也只能修改由应用创建的日程并需要利用已有的日程 ID。

### 3. 订阅日程回复：跟进用户对日程的回复
在实际使用过程中，发起日程预定的系统需要获得用户对于日程预定的回复，从而进行下一步的流程操作。飞书开放平台提供了[日历事件](https://open.feishu.cn/document/ukTMukTMukTM/uEzNxYjLxcTM24SM3EjN)，通过订阅事件，获得用户的接受或拒绝状态。<br>

例如，招聘系统预约候选人面试日程时，针对面试官拒绝的日程，需要重新安排时间组织面试或通知 HR 进行处理。

## 常见问题 warning
使用本方案中如有任何疑问，欢迎[联系客服](https://applink.feishu.cn/client/helpdesk/open?id=6626260912531570952&extra=%7B%22channel%22%3A14%2C%22created_at%22%3A1614493146%2C%22scenario_id%22%3A6885151765134622721%2C%22signature%22%3A%22ca94c408b966dc1de2083e5bbcd418294c146e98%22%7D)，或通过右上角赞踩功能，留下你的宝贵意见，帮助我们优化进步
### 如果创建的日程需要同步更多信息怎么办？
可以在预定日程时，将信息写入到日程描述中，从而让用户获取这些信息。

### 如果创建的日程比较隐私会不会被其他人看到？
在预定日程时，将日程设置为私密日程，其他同事就无法看到具体内容了。

