开始前先读 ../lark-shared/SKILL.md(认证、权限处理)。
CRITICAL — 凡涉及预约日程/会议或查询/搜索会议室,第一步 MUST 读 references/lark-calendar-schedule-meeting.md。禁止跳过此步直接调用 API 或 Shortcut!
日程操作默认使用 --as user(查看和管理当前用户的日程)。--as bot 只能访问 bot 自己的(空)日历,会拿到空结果——不要用 bot 身份查用户日程。
# BAD — bot 身份查用户日程,返回空列表
lark-cli calendar +agenda --as bot
# GOOD — user 身份查日程
lark-cli calendar +agenda --as user
| Shortcut | 说明 |
|---|---|
+agenda |
查看日程安排(默认今天) |
+create |
创建日程并邀请参会人(ISO 8601 时间) |
+update |
更新既有日程字段,或独立增量添加/移除参会人和会议室 |
+freebusy |
查询用户主日历的忙闲信息和 RSVP 状态 |
+room-find |
针对一个或多个明确的时间块查找可用会议室(无明确时间时禁止直接调用,需先走 +suggestion) |
+rsvp |
回复日程(接受/拒绝/待定) |
+suggestion |
根据非明确时间或一段时间范围,推荐多个可用时间块方案 |
| 场景 | 前置要求 |
|---|---|
| 预约日程/会议、查会议室 | 先读 lark-calendar-schedule-meeting.md |
| 编辑已有日程 | 先定位目标日程 event_id;若是重复性日程,必须定位到具体实例的 event_id(禁止使用原重复日程 ID) |
| 删除/修改后验证 | 等待 2 秒再查询(API 最终一致性),不要告知用户你等待了 |
| 调用任何 Shortcut | 先读其对应 reference 文档 |
event_id,禁止使用原重复日程的 event_id。14:00~15:00),时间范围是泛指(如"今天下午")。+room-find 必须基于确定时间块,不能基于模糊范围。用户日常说的"帮我约个日历""查一下今天的日历",实际意图是针对**日程(Event)**的创建或查询,而非操作日历(Calendar)容器本身。自动将口语化的"日历"意图映射为"日程"操作。
| 用户意图 | 路由到 |
|---|---|
| 查询过去的会议("昨天的会议""上周的会") | ../lark-vc/SKILL.md(会议数据含即时会议,仅查日程会遗漏) |
| 查询日历/日程或未来时间的会议 | 本 skill |
| 预约/改约日程、添加/移除参会人、添加/更换会议室、调整时间 | 先判断新建 vs 编辑,再进入 schedule-meeting 工作流 |
处理"预约/改约日程、添加/移除参会人、添加/更换会议室、调整时间"时,必须先判断新建 vs 编辑:
这个日程、这场会)并表达修改动作(添加、移除、改到、换会议室、调整时间)。默认走编辑流,绝不能按新建处理。+room-find 的时间输入必须是确定时间块,不能是时间区间搜索。+suggestion 获取可用时间块,再将时间块交给 +room-find。严禁猜测时间盲目调用。lark-cli calendar <resource> <method> [flags]
create — 创建共享日历delete — 删除共享日历get — 查询日历信息list — 查询日历列表patch — 更新日历信息primary — 查询用户主日历search — 搜索日历batch_delete — 删除日程参与人create — 添加日程参与人list — 获取日程参与人列表create — 创建日程delete — 删除日程get — 获取日程instance_view — 查询日程视图patch — 更新日程search_event — 搜索日程(仅返回 日程ID/主题/时间,详情需走 events get)share_info — 获取日程分享链接list — 查询主日历日程忙闲信息注意(强制性):