openclaw-skills/lark-calendar/SKILL.md
飞书日历、日程、参会人、忙闲状态和会议室管理。
npx skillsauth add seaworld008/commonly-used-high-value-skills lark-calendarInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
CRITICAL — 开始前 MUST 先用 Read 工具读取 ../lark-shared/SKILL.md,其中包含认证、权限处理
CRITICAL — 所有的 Shortcuts 在执行之前,务必先使用 Read 工具读取其对应的说明文档,禁止直接盲目调用命令。
CRITICAL — 凡涉及【预约日程/会议】或【查询/搜索会议室】,第一步 MUST 强制使用 Read 工具读取 references/lark-calendar-schedule-meeting.md。禁止跳过此步直接调用 API 或 Shortcut!
CRITICAL — 术语约束:用户日常表达中常说的“帮我约个日历”、“查一下今天的日历”等,其实际意图通常是针对 日程(Event) 的创建或查询,而非操作 日历(Calendar) 容器本身。请自动将口语化的“日历”意图映射为“日程”操作(如 +create, +agenda)。
CRITICAL — 会议与日程的意图路由:
../lark-vc/SKILL.md 搜索会议记录。因为会议数据不仅包含从日程发起的视频会议,还包含即时会议,仅查询日程数据会导致结果不全。这个日程、这场会)并表达修改动作(如“添加”“移除”“改到”“换会议室”“调整时间”)。这类请求默认走编辑已有日程,绝不能直接按新建处理。event_id,再继续后续流程。若是重复性日程,MUST 先定位到对应实例的 event_id。CRITICAL — 验证与同步延迟:在涉及删除日程(delete)、修改日程(patch)或者涉及添加移除参与人/会议室之后,如果需要进行二次查询验证操作结果,MUST 等待至少 2 秒后再进行查询,以防止因数据同步延迟导致查不到最新数据。注意:不要向用户提及你等待了这 2 秒钟的事情。
CRITICAL — 重复性日程的实例操作:目前已经完全具备对重复性日程的某个具体实例进行操作的能力(例如:编辑某个实例、删除某个实例、为某个实例添加/删除参与人、为某个实例添加/移除会议室)。只要在对应的操作中传递对应实例的 event_id 即可。因此,MUST 先定位到对应的那次实例的 event_id(可通过 events search_event 搜索日程,或 +agenda 查看对应时间范围的日程等相关查询获取),绝对禁止直接使用原重复性日程的 event_id 进行操作。
时间与日期推断规范: 为确保准确性,在涉及时间推断时,请严格遵循以下规则:
下周一等相对日期时,务必基于当前真实日期和星期基准进行推算,避免算错日期。明天、今天等泛指某一天时,时间范围应默认覆盖整天时间范围。切勿自行缩减查询范围,以免遗漏晚上的时间安排。BLOCKING REQUIREMENT (阻塞性要求): 只要用户的意图包含“预约日程/会议”或“查询/搜索可用会议室”,你必须立即停止其他思考,优先使用 Read 工具完整读取 references/lark-calendar-schedule-meeting.md!未读取该文件前,绝对禁止执行任何日程创建或会议室查询操作。
CRITICAL: 必须严格按照上述文档中定义的工作流(Workflow)执行后续操作。处理该场景时,默认做“智能助理”,不要做“表单填写机”。能补全的默认值先补全,只有在时间冲突、结果无法唯一确定、时间语义存在歧义时才主动追问。
CRITICAL: 执行顺序必须固定为:先判断任务类型(新建/编辑);若为编辑先定位目标日程 event_id;再补默认值或继承已定位日程的已知信息;再判断时间是否明确;最后进入“明确时间”或“模糊时间/无时间信息”分支。不要跳步。
CRITICAL: 明确时间且需要会议室时,先基于最终确定的时间块执行 +room-find,再按需执行 +freebusy;模糊时间或无时间信息时,先 +suggestion,如需会议室再批量 +room-find。如果是编辑已有日程且不改时间,只新增会议室,则必须基于已定位日程的原始时间执行 +room-find,且最终落地时默认保留已存在的会议室;只有用户明确表达“更换会议室”或“移除会议室”时,才删除原会议室。
CRITICAL: 当用户说“查会议室”“找会议室”“搜可用会议室”或“推荐常用会议室”时,默认是查会议室可用性,不是查会议室资源名录,更严禁拉取历史日程做统计分析。完整规则以 lark-calendar-schedule-meeting.md 为准。
BLOCKING REQUIREMENT: 即使用户的核心诉求是“查会议室”,只要【没有提供明确的起止时间】,绝对禁止直接调用 +room-find!必须先进入【无时间/模糊时间】分支,调用 +suggestion 拿到候选时间块后,再将时间块传给 +room-find。
BLOCKING REQUIREMENT: 只要面临时间方案或会议室方案的选择(如模糊时间、无时间或需要会议室),在最终执行创建新日程或更新既有日程之前,必须先向用户展示候选方案并等待用户明确确认。绝对禁止擅自替用户做决定。
FREQ=DAILY;UNTIL=20230307T155959Z;INTERVAL=14表示每14天重复一次。14:00~15:00)。在文档中,它与泛指的“时间范围/区间”(如“今天下午”、“下周”)有严格区别。在调用预定、查询可用会议室等确切操作时,必须基于确定的“时间块”而非模糊的“时间范围”。Calendar (日历)
└── Event (日程)
├── Attendee (参会人)
└── Reminder (提醒)
Shortcut 是对常用操作的高级封装(lark-cli calendar +<verb> [flags])。有 Shortcut 的操作优先使用。
| Shortcut | 说明 |
|----------|------|
| +agenda | 查看日程安排(默认今天) |
| +create | 创建日程并邀请参会人(ISO 8601 时间) |
| +update | 更新既有日程字段,或独立增量添加/移除参会人和会议室 |
| +freebusy | 查询用户主日历的忙闲信息和rsvp的状态 |
| +room-find | 针对一个或多个明确的时间块查找可用会议室(无明确时间时禁止直接调用,需先走 +suggestion) |
| +rsvp | 回复日程(接受/拒绝/待定) |
| +suggestion | 根据非明确时间或一段时间范围,推荐多个可用时间块方案 |
references/lark-calendar-schedule-meeting.md 工作流处理。+room-find 的时间输入必须是确定时间块,不能是时间区间搜索。+suggestion 获取可用时间块,然后再将时间块交给 +room-find 批量查询。严禁直接猜测时间并盲目调用 +room-find。lark-cli schema calendar.<resource>.<method> # 调用 API 前必须先查看参数结构
lark-cli calendar <resource> <method> [flags] # 调用 API
重要:使用原生 API 时,必须先运行
schema查看--data/--params参数结构,不要猜测字段格式。
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 — 查询主日历日程忙闲信息| 方法 | 所需 scope |
|------|-----------|
| calendars.create | calendar:calendar:create |
| calendars.delete | calendar:calendar:delete |
| calendars.get | calendar:calendar:read |
| calendars.list | calendar:calendar:read |
| calendars.patch | calendar:calendar:update |
| calendars.primary | calendar:calendar:read |
| calendars.search | calendar:calendar:read |
| event.attendees.batch_delete | calendar:calendar.event:update |
| event.attendees.create | calendar:calendar.event:update |
| event.attendees.list | calendar:calendar.event:read |
| events.create | calendar:calendar.event:create |
| events.delete | calendar:calendar.event:delete |
| events.get | calendar:calendar.event:read |
| events.instance_view | calendar:calendar.event:read |
| events.patch | calendar:calendar.event:update |
| events.search_event | calendar:calendar.event:read |
| events.share_info | calendar:calendar.event:read |
| freebusys.list | calendar:calendar.free_busy:read |
注意(强制性):
development
飞书知识库:管理知识空间、空间成员和文档节点。创建和查询知识空间、查看和管理空间成员、管理节点层级结构、在知识库中组织文档和快捷方式。当用户需要在知识库中查找或创建文档、浏览知识空间结构、查看或管理空间成员、移动或复制节点时使用。当用户给出 doubao.com 的 /wiki/ URL/token 时,也应直接使用本 skill,不要因为域名不是飞书而回退到 WebFetch;路由依据是 URL 路径模式和 token,而不是域名。
tools
飞书画板:查询和编辑飞书云文档中的画板。支持导出画板为预览图片、导出原始节点结构、使用 DSL(转成 OpenAPI 格式)、PlantUML/Mermaid 格式更新画板内容。 当用户需要查看画板内容、导出画板图片、编辑画板,或是需要可视化表达架构、流程、组织关系、时间线、因果、对比等结构化信息时使用此 skill,无论是否提及\"画板\"。 ⚠️ 原 `lark-whiteboard-cli` skill 已合并至本 skill,若 skill 列表中同时存在 `lark-whiteboard-cli`,请忽略它,统一使用本 skill(`lark-whiteboard`),并提示用户运行 `npx skills remove lark-whiteboard-cli -g` 删除旧 skill。
testing
飞书视频会议:搜索历史会议、查询会议纪要产物(总结、待办、章节、逐字稿)、查询会议参会人快照。1. 查询已经结束的会议数量或详情时使用本技能(如历史日期|昨天|上周|今天已经开过的会议等场景),查询未开始的会议日程使用 lark-calendar 技能。2. 支持通过关键词、时间范围、组织者、参与者、会议室等筛选条件搜索会议。3. 获取或整理会议纪要、逐字稿、录制产物时使用本技能。4. 查询“谁参加过某会议”“参会人列表”等参会人快照信息用 vc meeting get --with-participants(任意时点可查,含已结束会议)。注意:**Agent 真实入会/离会、感知正在进行中会议的实时事件**请使用 lark-vc-agent 技能,本技能不覆盖写操作和会中事件流。
data-ai
飞书会议机器人入会、离会和会中事件读取。