# 创建日程

调用该接口以当前身份（应用或用户）在指定日历上创建一个日程。

**注意事项**：- 当前身份由 Header Authorization 的 Token 类型决定。tenant_access_token 指应用身份，user_access_token 指用户身份。
- 如果使用应用身份调用该接口，则需要确保应用开启了[机器人能力](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-enable-bot-ability)。
- 当前身份必须对日历有 writer 或 owner 权限，并且日历的类型只能为 primary 或 shared。你可以调用[查询日历信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar/get)接口，获取日历类型以及当前身份对该日历的访问权限。
- 该接口仅用于创建日程，如需为日程添加参与人或预约会议室，则需调用[添加日程参与人](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar-event-attendee/create)接口。

## 请求

基本 | &nbsp;
---|---
HTTP URL | https://open.feishu.cn/open-apis/calendar/v4/calendars/:calendar_id/events
HTTP Method | POST
接口频率限制 | [1000 次/分钟、50 次/秒](https://open.feishu.cn/document/ukTMukTMukTM/uUzN04SN3QjL1cDN)
支持的应用类型 | Custom App、Store App
权限要求<br>**调用该 API 所需的权限。开启其中任意一项权限即可调用**<br>开启任一权限即可 | 更新日历及日程信息(calendar:calendar)<br>创建日程(calendar:calendar.event:create)
字段权限要求 | **注意事项**：该接口返回体中存在下列敏感字段，仅当开启对应的权限后才会返回；如果无需获取这些字段，则不建议申请<br>获取用户 user ID(contact:user.employee_id:readonly)

### 请求头

名称 | 类型 | 必填 | 描述
---|---|---|---
Authorization | string | 是 | `tenant_access_token`<br>或<br>`user_access_token`<br>**值格式**："Bearer `access_token`"<br>**示例值**："Bearer u-7f1bcd13fc57d46bac21793a18e560"<br>[了解更多：如何选择与获取 access token](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-choose-which-type-of-token-to-use)
Content-Type | string | 是 | **固定值**："application/json; charset=utf-8"

#### 扩展请求头

名称 | 类型 | 必填 | 描述
---|---|---|---
Locale | string | 否 | 请求的语言类型。目前支持的语言类型：<br>- zh_cn：中文<br>- en_us：英文<br>- ja_jp：日文<br>**默认值**: zh_cn

### 路径参数

名称 | 类型 | 描述
---|---|---
calendar_id | string | 日历 ID。<br>创建共享日历时会返回日历 ID。你也可以调用以下接口获取某一日历的 ID。<br>- [查询主日历信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar/primary)<br>- [查询日历列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar/list)<br>- [搜索日历](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar/search)<br>**示例值**："feishu.cn_xxxxxxxxxx@group.calendar.feishu.cn"

### 查询参数

名称 | 类型 | 必填 | 描述
---|---|---|---
idempotency_key | string | 否 | 创建日程的幂等 key，该 key 在应用和日历维度下唯一，用于避免重复创建资源。建议按照示例值的格式进行取值。<br>**示例值**：25fdf41b-8c80-2ce1-e94c-de8b5e7aa7e6<br>**数据校验规则**：<br>- 长度范围：`32` ～ `128` 字符
user_id_type | string | 否 | 用户 ID 类型<br>**示例值**：open_id<br>**可选值有**：<br>- open_id：标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多：如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)<br>- union_id：标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的，在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID，应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多：如何获取 Union ID？](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)<br>- user_id：标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内，一个用户的 User ID 在所有应用（包括商店应用）中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多：如何获取 User ID？](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)<br>**默认值**：`open_id`<br>**当值为 `user_id`，字段权限要求**：<br>获取用户 user ID(contact:user.employee_id:readonly)

### 请求体

名称 | 类型 | 必填 | 描述
---|---|---|---
summary | string | 否 | 日程标题。<br>**注意**：为确保数据安全，系统会自动检测日程标题内容，当包含 **晋升、绩效、述职、调薪、调级、复议、申诉、校准、答辩** 中任一关键词时，该日程不会生成会议纪要。<br>**示例值**："日程标题"<br>**数据校验规则**：<br>- 最大长度：`1000` 字符
description | string | 否 | 日程描述。支持解析Html标签。<br>**注意**：可以通过Html标签来实现部分富文本格式，但是客户端生成的富文本格式并不是通过Html标签实现，如果通过客户端生成富文本描述后，再通过API更新描述，会导致客户端原来的富文本格式丢失。<br>**示例值**："日程描述"<br>**数据校验规则**：<br>- 最大长度：`40960` 字符
need_notification | boolean | 否 | 更新日程时，是否给日程参与人发送 Bot 通知。<br>**可选值有**：<br>- true：发送通知<br>- false：不发送通知<br>**默认值**：true<br>**示例值**：false
start_time | time_info | 是 | 日程开始时间。
date | string | 否 | 开始时间，仅全天日程使用该字段，[RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339) 格式，例如，2018-09-01。<br>**注意**：该参数不能与 `timestamp` 同时指定。<br>**示例值**："2018-09-01"
timestamp | string | 否 | 秒级时间戳，用于设置具体的开始时间。例如，1602504000 表示 2020/10/12 20:00:00（UTC +8 时区）。<br>**注意**：该参数不能与 `date` 同时指定。<br>**示例值**："1602504000"
timezone | string | 否 | 时区。使用 IANA Time Zone Database 标准，例如 Asia/Shanghai。<br>- 全天日程时区固定为UTC +0<br>- 非全天日程时区默认为 Asia/Shanghai<br>**示例值**："Asia/Shanghai"
end_time | time_info | 是 | 日程结束时间。
date | string | 否 | 结束时间，仅全天日程使用该字段，[RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339) 格式，例如，2018-09-01。<br>**注意**：该参数不能与 `timestamp` 同时指定。<br>**示例值**："2018-09-01"
timestamp | string | 否 | 秒级时间戳，用于设置具体的结束时间。例如，1602504000 表示 2020/10/12 20:00:00（UTC +8 时区）。<br>**注意**：该参数不能与 `date` 同时指定。<br>**示例值**："1602504000"
timezone | string | 否 | 时区。使用 IANA Time Zone Database 标准，例如 Asia/Shanghai。<br>- 全天日程时区固定为UTC +0<br>- 非全天日程时区默认为 Asia/Shanghai<br>**示例值**："Asia/Shanghai"
vchat | vchat | 否 | 视频会议信息。
vc_type | string | 否 | 视频会议类型。如果无需视频会议，则必须传入 `no_meeting`。<br>**默认值**：空，表示在首次添加日程参与人时，会自动生成飞书视频会议 URL。<br>**示例值**："third_party"<br>**可选值有**：<br>- vc：飞书视频会议。取该类型时，vchat 内的其他字段均无效。<br>- third_party：第三方链接视频会议。取该类型时，仅生效 vchat 内的 icon_type、description、meeting_url 字段。<br>- no_meeting：无视频会议。取该类型时，vchat 内的其他字段均无效。<br>- lark_live：飞书直播。该值用于客户端，不支持通过 API 调用，只读。<br>- unknown：未知类型。该值用于客户端做兼容使用，不支持通过 API 调用，只读。
icon_type | string | 否 | 第三方视频会议的 icon 类型。<br>**默认值**：default<br>**示例值**："vc"<br>**可选值有**：<br>- vc：飞书视频会议 icon。<br>- live：直播视频会议 icon。<br>- default：默认 icon。
description | string | 否 | 第三方视频会议文案。<br>**默认值**：空，为空展示默认文案。<br>**示例值**："发起视频会议"<br>**数据校验规则**：<br>- 长度范围：`0` ～ `500` 字符
meeting_url | string | 否 | 视频会议 URL。<br>**示例值**："https://example.com"<br>**数据校验规则**：<br>- 长度范围：`1` ～ `2000` 字符
meeting_settings | meeting_settings | 否 | 飞书视频会议（VC）的会前设置，需满足以下全部条件：<br>- 当 `vc_type` 为 `vc` 时生效。<br>- 需要有日程的编辑权限。
owner_id | string | 否 | 设置会议 owner 的用户 ID，ID 类型需和 user_id<br>_type 保持一致。<br>该参数需满足以下全部条件才会生效：<br>-  应用身份（tenant_access_token）请求，且在应用日历上操作日程。<br>- 首次将日程设置为 VC 会议时，才能设置owner。<br>- owner 不能为非用户身份。<br>- owner 不能为外部租户用户身份。<br>**示例值**："ou_7d8a6e6df7621556ce0d21922b676706ccs"
join_meeting_permission | string | 否 | 设置入会范围。<br>**默认值**：anyone_can_join<br>**示例值**："only_organization_employees"<br>**可选值有**：<br>- anyone_can_join：所有人可以加入会议<br>- only_organization_employees：仅企业内的用户可以加入会议<br>- only_event_attendees：仅日程参与者可以加入会议
assign_hosts | string\[\] | 否 | 通过用户 ID 指定主持人，ID 类型需和 user_id<br>_type 保持一致。<br>**注意**：<br>- 仅日程组织者可以指定主持人。<br>- 主持人不能是非用户身份。<br>- 主持人不能是外部租户用户身份。<br>- 在应用日历上操作日程时，不允许指定主持人。<br>**示例值**：["ou_7d8a6e6df7621556ce0d21922b676706ccs"]<br>**数据校验规则**：<br>- 最大长度：`10`
auto_record | boolean | 否 | 是否开启自动录制。<br>**可选值有**：<br>- true：开启<br>- false（默认值）：不开启<br>**示例值**：false
open_lobby | boolean | 否 | 是否开启等候室。<br>**可选值有**：<br>- true（默认值）：开启<br>- false：不开启<br>**示例值**：true
allow_attendees_start | boolean | 否 | 是否允许日程参与者发起会议。<br>**可选值有**：<br>- true（默认值）：允许<br>- false：不允许<br>**注意**：应用日历上操作日程时，该字段必须为 true，否则没有人能发起会议。<br>**示例值**：true
visibility | string | 否 | 日程公开范围，新建日程默认为 `default`。<br>**注意**：该参数仅在新建日程时，对所有参与人生效。如果后续更新日程修改了该参数值，则仅对当前身份生效。<br>**示例值**："default"<br>**可选值有**：<br>- default：默认权限，即跟随日历权限，默认仅向他人显示是否忙碌<br>- public：公开，显示日程详情<br>- private：私密，仅自己可见详情
attendee_ability | string | 否 | 参与人权限。<br>**默认值**：none<br>**示例值**："can_see_others"<br>**可选值有**：<br>- none：无法编辑日程、无法邀请其他参与人、无法查看参与人列表<br>- can_see_others：无法编辑日程、无法邀请其他参与人、可以查看参与人列表<br>- can_invite_others：无法编辑日程、可以邀请其他参与人、可以查看参与人列表<br>- can_modify_event：可以编辑日程、可以邀请其他参与人、可以查看参与人列表
free_busy_status | string | 否 | 日程占用的忙闲状态，新建日程默认为 `busy`。<br>**注意**：该参数仅在新建日程时，对所有参与人生效。如果后续更新日程时修改了该参数值，则仅对当前身份生效。<br>**示例值**："busy"<br>**可选值有**：<br>- busy：忙碌<br>- free：空闲
location | event_location | 否 | 日程地点，不传值则默认为空。
name | string | 否 | 地点名称。<br>**示例值**："地点名称"<br>**数据校验规则**：<br>- 长度范围：`1` ～ `512` 字符
address | string | 否 | 地点地址。<br>**示例值**："地点地址"<br>**数据校验规则**：<br>- 长度范围：`1` ～ `255` 字符
latitude | number(float) | 否 | 地点坐标纬度信息。<br>- 对于国内的地点，采用 GCJ-02 标准。<br>- 对于海外的地点，采用 WGS84 标准。<br>**示例值**：1.100000023841858
longitude | number(float) | 否 | 地点坐标经度信息。<br>- 对于国内的地点，采用 GCJ-02 标准。<br>- 对于海外的地点，采用 WGS84 标准。<br>**示例值**：2.200000047683716
color | int | 否 | 日程颜色，取值通过颜色 RGB 值的 int32 表示。<br>**注意**：<br>- 该参数仅对当前身份生效。<br>- 客户端展示时会映射到色板上最接近的一种颜色。<br>- 取值为 0 或 -1 时，默认跟随日历颜色。<br>**示例值**：-1
reminders | reminder\[\] | 否 | 日程提醒列表。不传值则默认为空。
minutes | int | 否 | 日程提醒时间的偏移量。<br>- 正数时表示在日程开始前 X 分钟提醒。<br>- 负数时表示在日程开始后 X 分钟提醒。<br>**注意**：新建或更新日程时传入该字段，仅对当前身份生效，不会对日程的其他参与人生效。<br>**示例值**：5<br>**数据校验规则**：<br>- 取值范围：`-20160` ～ `20160`
recurrence | string | 否 | 重复日程的重复性规则，规则设置方式参考[rfc5545](https://datatracker.ietf.org/doc/html/rfc5545#section-3.3.10)。<br>**默认值**：空，表示当前日程不是重复日程。<br>**注意**：<br>- COUNT 和 <br>UNTIL 不支持同时出现。<br>- 预定会议室重复日程长度不得超过两年。<br>**示例值**："FREQ=DAILY;INTERVAL=1"<br>**数据校验规则**：<br>- 最大长度：`2000` 字符
schemas | schema\[\] | 否 | 日程自定义信息，控制日程详情页的 UI 展示。不传值则默认为空。
ui_name | string | 否 | UI 名称。<br>**可选值有**： <br>- ForwardIcon：日程转发按钮 <br>- MeetingChatIcon：会议群聊按钮 <br>- MeetingMinutesIcon：会议纪要按钮 <br>- MeetingVideo：视频会议区域 <br>- RSVP：接受、拒绝、待定区域 <br>- Attendee：参与者区域 <br>- OrganizerOrCreator：组织者或创建者区域<br>**示例值**："ForwardIcon"
ui_status | string | 否 | UI 项的状态。目前只支持选择 `hide`。<br>**示例值**："hide"<br>**可选值有**：<br>- hide：隐藏显示<br>- readonly：只读<br>- editable：可编辑<br>- unknown：未知 UI 项自定义状态。该参数仅用于读取时兼容，不支持作为请求参数值传入
app_link | string | 否 | 按钮点击后跳转的链接。<br>**注意**：兼容性参数，只读，因此暂不支持传入该请求参数。<br>**示例值**："https://applink.feishu.cn/client/calendar/event/detail?calendarId=xxxxxx&key=xxxxxx&originalTime=xxxxxx&startTime=xxxxxx"<br>**数据校验规则**：<br>- 最大长度：`2000` 字符
attachments | attachment\[\] | 否 | 日程附件。
file_token | string | 否 | 附件 Token。调用[上传素材](https://open.larkoffice.com/document/server-docs/docs/drive-v1/media/upload_all)接口，获取附件的 file_token。在调用上传素材接口时需要注意：<br>- `parent_type` 需传入固定值 `calendar`。<br>- `parent_node` 需传入与当前接口一致的日历 ID。<br>**附件校验规则**：附件总大小不超过 25 MB。<br>**示例值**："xAAAAA"
event_check_in | event_check_in | 否 | 日程签到设置，为空则不进行日程签到设置。
enable_check_in | boolean | 是 | 是否启用日程签到。<br>**示例值**：true
check_in_start_time | check_in_time | 否 | 日程签到开始时间。<br>**注意**：签到开始时间不能大于或者等于签到结束时间。
time_type | string | 是 | 偏移量(分钟)相对于的日程时间节点类型。<br>**示例值**："before_event_start"<br>**可选值有**：<br>- before_event_start：日程开始前<br>- after_event_start：日程开始后<br>- after_event_end：日程结束后
duration | int | 是 | 相对于日程开始或者结束的偏移量(分钟)。<br>- 目前取值只能为列表[0, 5, 15, 30, 60]之一，0表示立即开始。<br>- 当time_type为before_event_start，duration不能取0<br>**示例值**：15<br>**数据校验规则**：<br>- 取值范围：`0` ～ `60`
check_in_end_time | check_in_time | 否 | 日程签到结束时间。<br>**注意**：签到开始时间不能大于或者等于签到结束时间。
time_type | string | 是 | 偏移量(分钟)相对于的日程时间节点类型。<br>**示例值**："after_event_end"<br>**可选值有**：<br>- before_event_start：日程开始前<br>- after_event_start：日程开始后<br>- after_event_end：日程结束后
duration | int | 是 | 相对于日程开始或者结束的偏移量(分钟)。<br>- 目前取值只能为列表[0, 5, 15, 30, 60]之一，0表示立即开始。<br>- 当time_type为before_event_start，duration不能取0<br>**示例值**：0<br>**数据校验规则**：<br>- 取值范围：`0` ～ `60`
need_notify_attendees | boolean | 否 | 签到开始时是否自动发送签到通知给参与者<br>**示例值**：false<br>**默认值**：`false`

### 请求体示例
```json
{
    "summary": "日程标题",
    "description": "日程描述",
    "need_notification": false,
    "start_time": {
        "date": "2018-09-01",
        "timestamp": "1602504000",
        "timezone": "Asia/Shanghai"
    },
    "end_time": {
        "date": "2018-09-01",
        "timestamp": "1602504000",
        "timezone": "Asia/Shanghai"
    },
    "vchat": {
        "vc_type": "third_party",
        "icon_type": "vc",
        "description": "发起视频会议",
        "meeting_url": "https://example.com",
        "meeting_settings": {
            "owner_id": "ou_7d8a6e6df7621556ce0d21922b676706ccs",
            "join_meeting_permission": "only_organization_employees",
            "assign_hosts": [
                "ou_7d8a6e6df7621556ce0d21922b676706ccs"
            ],
            "auto_record": false,
            "open_lobby": true,
            "allow_attendees_start": true
        }
    },
    "visibility": "default",
    "attendee_ability": "can_see_others",
    "free_busy_status": "busy",
    "location": {
        "name": "地点名称",
        "address": "地点地址",
        "latitude": 1.100000023841858,
        "longitude": 2.200000047683716
    },
    "color": -1,
    "reminders": [
        {
            "minutes": 5
        }
    ],
    "recurrence": "FREQ=DAILY;INTERVAL=1",
    "schemas": [
        {
            "ui_name": "ForwardIcon",
            "ui_status": "hide",
            "app_link": "https://applink.feishu.cn/client/calendar/event/detail?calendarId=xxxxxx&key=xxxxxx&originalTime=xxxxxx&startTime=xxxxxx"
        }
    ],
    "attachments": [
        {
            "file_token": "xAAAAA"
        }
    ],
    "event_check_in": {
        "enable_check_in": true,
        "check_in_start_time": {
            "time_type": "before_event_start",
            "duration": 15
        },
        "check_in_end_time": {
            "time_type": "after_event_end",
            "duration": 0
        },
        "need_notify_attendees": false
    }
}
```

## 响应

### 响应体

名称 | 类型 | 描述
---|---|---
code | int | 错误码，非 0 表示失败
msg | string | 错误描述
data | \- | \-
event | calendar.event | 新创建的日程实体信息。
event_id | string | 日程 ID。后续可通过该 ID 查询、更新或删除日程信息。更多信息参见[日程 ID 说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar-event/introduction)。
organizer_calendar_id | string | 该日程组织者的日历 ID。关于日历 ID 的说明可参见[日历 ID 说明](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar/introduction)。
summary | string | 日程标题。
description | string | 日程描述。
start_time | time_info | 日程开始时间。
date | string | 开始时间，仅全天日程使用该字段，[RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339) 格式，例如，2018-09-01。
timestamp | string | 秒级时间戳，指日程具体的开始时间。例如，1602504000 表示 2020/10/12 20:00:00（UTC +8 时区）。
timezone | string | 时区。使用 IANA Time Zone Database 标准。
end_time | time_info | 日程结束时间。
date | string | 结束时间，仅全天日程使用该字段，[RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339) 格式，例如，2018-09-01。
timestamp | string | 秒级时间戳，指日程具体的结束时间。例如，1602504000 表示 2020/10/12 20:00:00（UTC +8 时区）。
timezone | string | 时区。使用 IANA Time Zone Database 标准。
vchat | vchat | 视频会议信息。
vc_type | string | 视频会议类型，可以为空，表示在首次添加日程参与人时，会自动生成飞书视频会议 URL。<br>**可选值有**：<br>- vc：飞书视频会议。<br>- third_party：第三方链接视频会议。<br>- no_meeting：无视频会议。<br>- lark_live：飞书直播，只读参数。<br>- unknown：未知类型，用于兼容的只读参数。
icon_type | string | 第三方视频会议 icon 类型，可以为空，表示展示默认 icon。<br>**可选值有**：<br>- vc：飞书视频会议 icon。<br>- live：直播视频会议 icon。<br>- default：默认 icon。
description | string | 第三方视频会议文案。
meeting_url | string | 视频会议 URL。
meeting_settings | meeting_settings | 飞书视频会议（VC）的会前设置。
owner_id | string | 会议 owner 的用户 ID 信息。
join_meeting_permission | string | 设置入会范围。<br>**可选值有**：<br>- anyone_can_join：所有人可以加入会议<br>- only_organization_employees：仅企业内的用户可以加入会议<br>- only_event_attendees：仅日程参与者可以加入会议
password | string | 设置会议密码，仅支持 4-9 位数字
assign_hosts | string\[\] | 主持人的用户 ID 信息。
auto_record | boolean | 是否开启自动录制。
open_lobby | boolean | 是否开启等候室。
allow_attendees_start | boolean | 是否允许日程参与者发起会议。
visibility | string | 日程公开范围。新建的日程默认为 `default`，且仅在新建日程时，对所有参与人生效。如果后续更新日程时修改该参数值，则仅对当前身份生效。<br>**可选值有**：<br>- default：默认权限，跟随日历权限，即默认仅向他人显示是否忙碌<br>- public：公开，显示日程详情<br>- private：私密，仅自己可见详情
attendee_ability | string | 参与人权限。<br>**可选值有**：<br>- none：无法编辑日程、无法邀请其他参与人、无法查看参与人列表<br>- can_see_others：无法编辑日程、无法邀请其他参与人、可以查看参与人列表<br>- can_invite_others：无法编辑日程、可以邀请其他参与人、可以查看参与人列表<br>- can_modify_event：可以编辑日程、可以邀请其他参与人、可以查看参与人列表
free_busy_status | string | 日程占用的忙闲状态。新建日程默认为 `busy`，且仅新建日程时，对所有参与人生效。如果后续更新日程时修改了该参数值，则仅对当前身份生效。<br>**可选值有**：<br>- busy：忙碌<br>- free：空闲
location | event_location | 日程地点。
name | string | 地点名称。
address | string | 地点地址。
latitude | number(float) | 地点坐标纬度信息。<br>- 对于国内的地点，采用 GCJ-02 标准<br>- 对于海外的地点，采用 WGS84 标准
longitude | number(float) | 地点坐标经度信息。<br>- 对于国内的地点，采用 GCJ-02 标准<br>- 对于海外的地点，采用 WGS84 标准
color | int | 日程颜色，由颜色 RGB 值的 int32 表示。<br>**说明**：<br>- 仅对当前身份生效。<br>- 取值为 0 或 -1 时，表示默认跟随日历颜色。<br>- 客户端展示时会映射到色板上最接近的一种颜色。
reminders | reminder\[\] | 日程提醒列表。
minutes | int | 日程提醒时间的偏移量。该参数仅对当前身份生效。<br>- 正数时表示在日程开始前 X 分钟提醒。<br>- 负数时表示在日程开始后 X 分钟提醒。
recurrence | string | 重复日程的重复性规则，规则格式可参见 [rfc5545](https://datatracker.ietf.org/doc/html/rfc5545#section-3.3.10)。
status | string | 日程状态。<br>**可选值有**：<br>- tentative：未回应<br>- confirmed：已确认<br>- cancelled：日程已取消
is_exception | boolean | 日程是否是一个重复日程的例外日程。了解例外日程，可参见[例外日程](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar-event/introduction#71c5ec78)。
recurring_event_id | string | 例外日程对应的原重复日程的 event_id。
create_time | string | 日程的创建时间（秒级时间戳）。
schemas | schema\[\] | 日程自定义信息，控制日程详情页的 UI 展示。
ui_name | string | UI 名称。可能值： <br>- ForwardIcon：日程转发按钮 <br>- MeetingChatIcon：会议群聊按钮 <br>- MeetingMinutesIcon：会议纪要按钮 <br>- MeetingVideo：视频会议区域 <br>- RSVP：接受、拒绝、待定区域 <br>- Attendee: 参与者区域 <br>- OrganizerOrCreator：组织者或创建者区域
ui_status | string | UI项自定义状态。<br>**可选值有**：<br>- hide：隐藏显示<br>- readonly：只读<br>- editable：可编辑<br>- unknown：未知 UI 项自定义状态，仅用于读取时兼容
app_link | string | 按钮点击后跳转的链接。
event_organizer | event_organizer | 日程组织者信息。
user_id | string | 日程组织者 user ID。
display_name | string | 日程组织者姓名。
app_link | string | 日程的 app_link，用于跳转到具体的某个日程。
attachments | attachment\[\] | 日程附件
file_token | string | 附件token
file_size | string | 附件大小
is_deleted | boolean | 是否删除附件
name | string | 附件名称
event_check_in | event_check_in | 日程签到设置。
enable_check_in | boolean | 是否启用日程签到。
check_in_start_time | check_in_time | 日程签到开始时间。
time_type | string | 偏移量(分钟)相对于的日程时间节点类型。<br>**可选值有**：<br>- before_event_start：日程开始前<br>- after_event_start：日程开始后<br>- after_event_end：日程结束后
duration | int | 相对于日程开始或者结束的偏移量(分钟)。
check_in_end_time | check_in_time | 日程签到结束时间。
time_type | string | 偏移量(分钟)相对于的日程时间节点类型。<br>**可选值有**：<br>- before_event_start：日程开始前<br>- after_event_start：日程开始后<br>- after_event_end：日程结束后
duration | int | 相对于日程开始或者结束的偏移量(分钟)。
need_notify_attendees | boolean | 签到开始时是否自动发送签到通知给参与者

### 响应体示例
```json
{
    "code": 0,
    "msg": "success",
    "data": {
        "event": {
            "event_id": "00592a0e-7edf-4678-bc9d-1b77383ef08e_0",
            "organizer_calendar_id": "feishu.cn_xxxxxxxxxx@group.calendar.feishu.cn",
            "summary": "日程标题",
            "description": "日程描述",
            "start_time": {
                "date": "2018-09-01",
                "timestamp": "1602504000",
                "timezone": "Asia/Shanghai"
            },
            "end_time": {
                "date": "2018-09-01",
                "timestamp": "1602504000",
                "timezone": "Asia/Shanghai"
            },
            "vchat": {
                "vc_type": "third_party",
                "icon_type": "vc",
                "description": "发起视频会议",
                "meeting_url": "https://example.com",
                "meeting_settings": {
                    "owner_id": "ou_7d8a6e6df7621556ce0d21922b676706ccs",
                    "join_meeting_permission": "only_organization_employees",
                    "password": "971024",
                    "assign_hosts": [
                        "ou_7d8a6e6df7621556ce0d21922b676706ccs"
                    ],
                    "auto_record": false,
                    "open_lobby": true,
                    "allow_attendees_start": true
                }
            },
            "visibility": "default",
            "attendee_ability": "can_see_others",
            "free_busy_status": "busy",
            "location": {
                "name": "地点名称",
                "address": "地点地址",
                "latitude": 1.100000023841858,
                "longitude": 2.200000047683716
            },
            "color": -1,
            "reminders": [
                {
                    "minutes": 5
                }
            ],
            "recurrence": "FREQ=DAILY;INTERVAL=1",
            "status": "confirmed",
            "is_exception": false,
            "recurring_event_id": "1cd45aaa-fa70-4195-80b7-c93b2e208f45",
            "create_time": "1602504000",
            "schemas": [
                {
                    "ui_name": "ForwardIcon",
                    "ui_status": "hide",
                    "app_link": "https://applink.feishu.cn/client/calendar/event/detail?calendarId=xxxxxx&key=xxxxxx&originalTime=xxxxxx&startTime=xxxxxx"
                }
            ],
            "event_organizer": {
                "user_id": "ou_xxxxxx",
                "display_name": "李健"
            },
            "app_link": "https://applink.larkoffice.com/client/calendar/event/detail?calendarId=7039673579105026066&key=aeac9c56-aeb1-4179-a21b-02f278f59048&originalTime=0&startTime=1700496000",
            "attachments": [
                {
                    "file_token": "xAAAAA",
                    "file_size": "2345",
                    "is_deleted": false,
                    "name": "附件.jpeg"
                }
            ],
            "event_check_in": {
                "enable_check_in": true,
                "check_in_start_time": {
                    "time_type": "before_event_start",
                    "duration": 15
                },
                "check_in_end_time": {
                    "time_type": "after_event_end",
                    "duration": 0
                },
                "need_notify_attendees": false
            }
        }
    }
}
```

### 错误码

HTTP状态码 | 错误码 | 描述 | 排查建议
---|---|---|---
400 | 190002 | invalid parameters in request | 无效的请求参数。排查建议如下：<br>- 确认请求参数的字段名称、传参类型正确。<br>- 确认已经申请了相应资源的权限。<br>- 确认相应资源未被删除。
500 | 190003 | internal service error | 内部服务错误，请咨询[技术支持](https://applink.feishu.cn/TLJpeNdW)。
429 | 190004 | method rate limited | 方法频率限制。建议稍后再试，并适当减小请求 QPS。
429 | 190005 | app rate limited | 应用频率限制。建议稍后再试，并适当减小请求 QPS。
403 | 190006 | wrong unit for app tenant | 请求错误，检查应用 App ID 和 App Secret 是否正确。如仍无法解决请咨询[技术支持](https://applink.feishu.cn/TLJpeNdW)。
404 | 190007 | app bot_id not found | 应用的 bot_id 没有找到。你需要确保应用开启了[机器人能力](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-enable-bot-ability)。如仍未解决请咨询[技术支持](https://applink.feishu.cn/TLJpeNdW)。
429 | 190010 | current operation rate limited | 当前操作被限流，原因一般为公用资源并发抢占失败。你可以适当降低当前操作频率，然后重试。
403 | 190011 | tenant encrypt key has been deleted | 加解密状态的自主密钥被删除，被该秘钥加密的数据不可用。
403 | 190012 | tenant decrypt key has been deleted | 仅解密状态的自主密钥被删除，被该秘钥加密的数据不可用。
400 | 190013 | content being saved is at risk | 当前保存的内容被风险控制，请检查传入的内容是否合法。
400 | 190014 | invalid request parameters. check details for more info. | 无效的请求参数。请从details字段查看详细原因。
404 | 191000 | calendar not found | 日历没有找到。你需要检查并改为正确的日历 ID。
400 | 191001 | invalid calendar_id | calendar_id 无效。你需要检查并改为正确的日历 ID。
403 | 191002 | no calendar access_role | 当前身份没有日历的访问权限。如需查询某一日历信息，则需要确保当前身份拥有该日历的访问权限。
403 | 191003 | calendar is deleted | 日历已经被删除。你需要检查并改为正确的日历 ID。
403 | 191004 | invalid calendar type | 日历类型错误。你可以调用[查询日历信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar/get)接口获取日历类型信息，然后确保日历类型适用于当前接口。
400 | 193000 | invalid event_id | event_id 无效。你需要检查并改为正确的日程 ID。
404 | 193001 | event not found | 日程未找到。你需要确保传入了正确的日程 ID。
403 | 193002 | no permission to operate event | 无权限操作。你需要确保有日历以及日程的编辑权限。
403 | 193003 | event is deleted | 日程已经被删除。你需要检查并改为正确的日程 ID。
400 | 193101 | organizer is bot, can not set assign_hosts, and allow_attendees_start must be true | 组织者是 Bot，无法指定主持人，并且必须设置参与者可以发起会议（allow_attendees_start 取值为 true）。你需要检查并设置正确的组织者相关参数值。
400 | 193102 | only organizer(not bot) can set assign_hosts | 只有日程组织者可以指定主持人，且组织者不能是应用日历。你需要参考 assign_hosts 参数描述设置正确的参数值。
404 | 195100 | user is dismiss or not exist in the tenant | 当前身份或指定用户已经离职，或者不在该租户内。请检查并改为正确的身份来调用接口。
400 | 195112 | invalid password | 会议密码无效。会议密码仅支持 4 ~ 9 位的数字。
400 | 195113 | only organizer can set password | 仅日程组织者可以设置会议密码。
400 | 193105 | invalid attachment file token | file_token 无效。你需要参考接口文档的 file_token 参数描述，传入正确的参数值。
400 | 193106 | the total size of attachment exceed limit | 附件大小超过 25 MB。通过 file_token 参数传入的附件大小不能超过25 MB。
400 | 193107 | no permission to access attachment file token | 无权访问附件 Token。请检查传入的 file_token 是否正确。

更多错误码信息，参见[通用错误码](https://open.feishu.cn/document/ukTMukTMukTM/ugjM14COyUjL4ITN)。

