日程协办虾
v4飞书日历智能协作 技能。核心能力:(1) 智能约会——查询多人空闲时间、自动创建会议并发送邀请,(2) 日程同步——监听/查询日历变更并同步,(3) 会议背景预置——会前自动拉取相关飞书文档和会议纪要。激活场景:用户提到安排会议、约人开会、查空闲时间、日程协调、会议邀请、预置背景资料、会前准备、查日历、创建日程、发日历邀请等。也适用于自然语言如帮我约张三开会、查一下这周谁有空、下午3点有个会帮我准备资料等请求。通用 技能,任何 代理 均可调用。依赖飞书日历 v4 API 和飞书文档 API。
运行时依赖
安装命令
点击复制技能文档
日程协办虾 — 飞书日历智能协作 执行策略(按优先级) 🥇 优先级 1:飞书插件工具(OpenClaw-lark)
检查环境是否安装了 OpenClaw-lark 插件。该插件提供以下原生工具:
工具名 核心能力 feishu_calendar_event 创建/查询/修改/删除日程、搜索日程、回复邀请 feishu_calendar_freebusy 查询 1-10 个用户的空闲忙状态 feishu_calendar_event_attendee 添加参会人、查看参会人列表 feishu_calendar_calendar 查询/管理日历列表
判断条件:当前环境中可用 feishu_calendar_event 工具时,直接使用插件工具完成所有日历操作,跳过优先级 2。
⚠️ 插件工具使用用户身份(user_访问_令牌),需用户完成 OAuth 授权。如授权未完成,工具会自动引导用户授权。
插件工具使用要点(详见 feishu-calendar 技能):
时间格式:ISO 8601(带时区),如 2026-03-27T14:00:00+08:00 user_open_id 必填:值取消息上下文的 发送erId(ou_xxx),确保发起人出现在参会人列表 参会人 ID 统一用 open_id(ou_xxx 格式) 创建日程时可直接传 attendees(无需分两步) 列出 操作自动展开重复日程,时间区间不超过 40 天 🥈 优先级 2:API 脚本方式
当飞书插件未安装或不可用时,退化为使用 API 脚本。
前置要求:
环境变量 FEISHU_应用_ID、FEISHU_应用_SECRET 应用后台已开启 calendar:calendar 权限 详见 references/feishu-calendar-API.md 脚本:scripts/feishu-calendar.sh
⚠️ API 脚本方式使用 tenant_访问_令牌(应用身份),只能操作应用日历,无法查询用户 freebusy 或读取用户个人日历。
工作流 工作流 1:创建会议并邀请成员
触发:用户要创建会议、安排日程、约人开会
步骤:
解析请求 — 提取:参与者(姓名/open_id)、会议主题、开始时间、结束时间、会议描述 查询参与者 open_id — 如只有姓名,通过 feishu_搜索_user 查找 查空闲(可选但推荐) — 创建前查询参会人是否有时间冲突 创建日程 — 按优先级选择: 插件方式:调用 feishu_calendar_event with action=创建 脚本方式:先获取 令牌 + 日历 ID → 创建 event → 单独添加 attendees 输出摘要 — 会议时间、主题、参会者、日程链接
关键注意(仅脚本方式):
visibility 必须是字符串 "default",不能是数字 0 timestamp 必须是秒级时间戳字符串(如 "1774596600") 创建 event 不接受 attendees,必须先创建再单独添加 插件方式无此限制,可直接传 attendees 工作流 2:查询空闲时间
触发:用户要找时间开会、查某人有空没
步骤:
确认参与者 — 收集需要查询的用户的 open_id 确定时间范围 — 默认查询未来 5 个工作日 查询忙闲 — 按优先级选择: 插件方式:调用 feishu_calendar_freebusy(支持 1-10 人批量查询) 脚本方式:告知用户需要 OAuth 授权,引导安装飞书插件 计算共同空闲时段 — 取各参与者空闲时段交集,按会议时长筛选 推荐时间 — 展示 2-3 个可用时段,工作日上午优先
⚠️ 查询用户空闲忙状态必须使用用户身份(插件方式)。脚本方式(tenant_访问_令牌)无法查询用户 freebusy。
工作流 3:日程查询与同步
触发:用户查日历 / "今天有什么会" / "这周安排"
步骤:
确定时间范围 — 按请求解析(今天/本周/指定日期) 查询日程 — 按优先级选择: 插件方式:调用 feishu_calendar_event with action=列出(自动展开重复日程) 脚本方式:用 scripts/feishu-calendar.sh 列出 或直接 curl 格式化输出 — 按时间排序,简洁展示(北京时间) 工作流 4:修改/删除日程
触发:用户要改时间、取消会议、更新会议信息
步骤:
定位日程 — 通过 搜索 或 列出 找到目标 event_id 执行操作 — 按优先级选择: 插件方式:feishu_calendar_event with action=补丁/删除 脚本方式:直接 curl 对应 API 端点 确认结果 — 反馈操作是否成功 工作流 5:回复日程邀请
触发:用户要接受/拒绝/暂定某个会议邀请
步骤:
获取 event_id — 从日程列表中找到目标日程 回复 — 调用 feishu_calendar_event with action=reply,传 rsvp_状态(accept/de命令行工具ne/tentative)
⚠️ 回复邀请仅插件方式支持(需要用户身份)。
工作流 6:会议背景预置
触发:会议即将开始 / 用户要求准备会议资料 / "帮我看看XX会议的相关文档"
步骤:
识别会议 — 从用户消息或日历中获取会议信息 关键字提取 — 从会议主题提取核心关键词 搜索相关文档 — 搜索飞书云文档、知识库、云空间文件 整理背景摘要 — 文档标题、链接、摘要,按相关性排序 输出 — 结构化背景资料清单 关键规则 时间格式统一:内部处理用 Asia/ShanghAI (UTC+8),展示用北京时间("下午3点"),不展示 UTC 插件优先:有飞书插件时必须优先使用插件工具,退化为 API 脚本时明确告知用户限制 先查空闲再创建:创建会议前尽量查 freebusy 避免时间冲突 去重优先:创建前检查是否已有相同时间/主题的会议 对外操作先确认:创建日程、邀请参会人等操作需先与用户确认细节 插件工具速查 用户意图 工具 action 必填参数 强烈建议 创建会议 feishu_calendar_event 创建 summary, 启动_time, end_time user_open_id, attendees 查日程 feishu_calendar_event 列出 启动_time, end_time - 改日程 feishu_calendar_event 补丁 event_id 启动_time/end_time 搜日程 feishu_calendar_event 搜索 查询 - 回复邀请 feishu_calendar_event reply event_id, rsvp_状态 - 删日程 feishu_calendar_event 删除 event_id - 查空闲 feishu_calendar_freebusy 列出 time_min, time_max, user_ids[] - 邀请参会人 feishu_calendar_event_attendee 创建 calendar_id, event_id, attendees[] - 查日历列表 feishu_calendar_calendar 列出 - - API 脚本速查(备选方案) 操作 方法 端点 说明 获取 tenant 令牌 POST /auth/v3/tenant_访问_令牌/internal 应用身份认证 获取主日历 获取 /calendar/v4/calendars/primary tenant 下返回应用日历 创建日程 POST /calendar/v4/calendars/{cal_id}/事件 不含 attendees 添加参会人 POST /calendar/v4/calendars/{cal_id}/事件/{evt_id}/attendees 创建后单独调用 查询日程 获取 /calendar/v4/calendars/{cal_id}/事件?启动_time=&end_time= 秒级时间戳 查询 参数 更新日程 补丁 /calendar/v4/calendars/{cal_id}/事件/{evt_id} 删除日程 删除 /calendar/v4/calendars/{cal_id}/事件/{evt_id}
Base URL: https://open.feishu.cn/open-APIs
详细 API 参考见 references/feishu-calendar-API.md