返回顶部
f

feishu-meeting-room-book飞书会议室预订

|

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 0.0.4
安全检测
已通过
162
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

feishu-meeting-room-book

飞书会议室预定

基于飞书日历事件学习个人常用会议室,并按本地偏好列表预定会议室。

路径

  • - 状态文件:state/feishu-meeting-room-book.json
  • 辅助脚本:skills/feishu-meeting-room-book/scripts/meetingroombooker.py
  • 刷新计划文件:tmp/meeting-room-refresh-plan.json

依赖与权限

  • - 必需的 OpenClaw 插件:
- openclaw-lark 或任何等效的飞书/Lark 插件,需暴露以下功能: - feishucalendarevent - feishucalendarevent_attendee - feishucalendarfreebusy
  • - 必需的本地运行时:
- python3 - 捆绑的辅助脚本仅使用 Python 标准库,不需要额外的 pip 包
  • - 本地文件访问:
- 持久化状态写入 state/feishu-meeting-room-book.json - 临时工作文件可能写入 tmp/meeting-room-events-.json 和 tmp/meeting-room-candidates-.json
  • - 必需的飞书 OAuth 作用域:
- calendar:calendar.event:read 用于在初始化/刷新时读取近期日历事件 - calendar:calendar.event:create 用于创建新的日历事件 - calendar:calendar.event:update 用于附加会议室和更新事件参与者 - calendar:calendar.free_busy:read 用于检查会议室可用性
  • - 预定模型:
- 此技能不调用单独的会议室预定服务 - 会议室预定通过创建或更新飞书日历事件并将会议室作为资源参与者附加来实现

必需工具

  • - feishucalendarevent
  • feishucalendareventattendee
  • feishucalendar_freebusy

如果任何飞书工具返回认证或作用域错误,请先完成 OAuth 流程并重试。此技能的常规作用域为:

  • - calendar:calendar.event:read
  • calendar:calendar.event:create
  • calendar:calendar.event:update
  • calendar:calendar.free_busy:read

产品规则

  • - 仅手动刷新。切勿自动刷新缓存的会议室。
  • 缓存的会议室列表为单城市 v1 版本。存储一个基础位置(默认城市)和一个有序的会议室列表。内部状态字段名称保持为 default_city。
  • 首次使用时,如果 state/feishu-meeting-room-book.json 不存在且用户要求创建/预定会议室或预定已有事件,不要要求用户单独初始化。告知用户正在开始首次初始化,立即运行初始化,并在保存默认会议室顺序后继续处理原始请求。
  • 在初始化/刷新期间,提取的候选顺序为默认优先级顺序。除非用户明确更改,否则不要重新排序。
  • 创建新事件时,使用默认值而不是就常见遗漏项追问用户:
- 缺少标题:使用摘要会议 - 缺少参与者:创建仅包含自己的事件,无额外参与者 - 缺少时长/结束时间:默认为 1 小时
  • - 如果用户未指定城市,使用 default_city 中保存的基础位置(默认城市)。
  • 如果用户指定的城市与保存的基础位置(默认城市)不同,创建事件但不自动预定会议室。解释当前缓存仅覆盖基础位置(默认城市),并告知用户手动为该城市播种并运行刷新。
  • 当没有首选会议室可用时:
- createandbook:仍然创建事件但不附加会议室 - book_existing:保持事件不变,告知用户在手动播种更多会议室后刷新

更新候选会议室

当用户询问如何更新候选会议室列表时,使用以下规则。

  • - 添加新的候选会议室:
1. 要求用户在接下来 7 天内创建任意日历事件。 2. 告知用户将所需的会议室作为资源参与者附加到该事件。 3. 然后告知用户说刷新会议室列表、更新会议室列表、重新学习会议室或更新会议室候选表。 4. 默认刷新仅扫描一个狭窄的播种窗口,如果该会议室出现在事件负载中则将其包含。
  • - 从候选列表中移除会议室:
- 运行刷新并仅保留用户仍需要的会议室。 - 或保留当前列表并用更小的子集和新顺序覆盖状态。
  • - 更改会议室优先级:
- 运行刷新并让用户回复最终的会议室顺序。 - 或保留当前会议室并用重新排序的 --room-id 列表覆盖状态。
  • - 窗口限制:
- 只有所选扫描窗口内的事件影响候选列表。 - 默认刷新使用 现在 - 1 天 到 现在 + 7 天。 - 首次使用初始化使用 现在 - 7 天 到 现在 + 7 天。 - 仅显式全量重建使用 现在 - 20 天 到 现在 + 20 天 - 1 分钟。 - 当前扫描窗口外的播种事件不会更新候选列表。

初始化或刷新

当用户说以下内容时使用此流程:

  • - 初始化会议室偏好
  • 初始化会议室预定技能
  • 刷新会议室列表
  • 更新会议室列表
  • 重新学习会议室
  • 更新会议室候选表
  • 全量刷新会议室列表
  • 重建会议室列表
  • 或状态文件不存在

当由于状态文件不存在而隐式触发初始化时,明确告知用户:

  • - 这是该技能的首次使用
  • 正在学习用户的近期会议室使用历史
  • 将首先保存默认的会议室优先级顺序
  • 初始化完成后将自动继续当前的预定请求

步骤:

  1. 1. 在调用任何飞书工具之前,选择一种扫描模式:
- default_refresh:当状态已存在且用户说刷新会议室列表、更新会议室列表、重新学习会议室或更新会议室候选表时 - 扫描窗口:现在 - 1 天 到 现在 + 7 天 - 保存行为:增量更新;保留现有会议室和顺序,追加新发现的会议室,刷新再次出现的会议室的元数据 - init:当状态文件不存在或用户明确说初始化会议室偏好或初始化会议室预定技能时 - 扫描窗口:现在 - 7 天 到 现在 + 7 天 - 保存行为:从提取的候选列表重建状态 - full_rebuild:仅当用户明确说全量刷新会议室列表或重建会议室列表时 - 扫描窗口:现在 - 20 天 到 现在 + 20 天 - 1 分钟 - 保存行为:从提取的候选列表重建状态
  1. 2. 使用辅助脚本构建刷新计划。
切勿手动计算切片边界:

bash
python3 skills/feishu-meeting-room-book/scripts/meetingroombooker.py plan-refresh \
--mode refresh|init|fullrebuild> \
--output tmp/meeting-room-refresh-plan.json

  1. 3. 读取 tmp/meeting-room-refresh-plan.json。
精确使用该计划中的 slices[].starttime、slices[].endtime、slices[].eventfile 和 slices[].candidatefile 值。 不要自行创建临时文件名或时间窗口。
  1. 4. 对于计划中的每个切片:
- 使用 action=list 调用 feishucalendarevent - 立即仅将该切片结果保存到计划中指定的 event_file - 立即对该单个切片运行提取:

bash
python3 skills/feishu-meeting-room-book/scripts/meetingroombooker.py extract \
--input filefrom_plan> \
--output filefrom_plan>

- 如果 extract 因 中的 JSON 无效 或任何其他解析错误而失败,将该切片文件视为损坏或截断。
- 立即停止。告知用户刷新失败,因为一个切片结果不是有效的 JSON。
- 不要继续处理后续切片,也不要运行 finalize-refresh。

  1. 5. 所有切片成功后,使用一个辅助命令完成刷新。
此命令是刷新期间写入 state/feishu-meeting-room-book.json 的唯一允许方式:

bash
python3 skills/feishu-meeting-room-book/scripts/meetingroombooker.py finalize-refresh \
--input filefromplan1> \
--input filefromplan2> \
--mode refresh|init|fullrebuild> \
--state state/feishu-meeting-room-book.json \
--output tmp/meeting-room-candidates.json

  1. 6. 读取 tmp/meeting-room-candidates.json。
如果辅助命令失败或返回 saved != true

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 feishu-meeting-room-book-1776264542 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 feishu-meeting-room-book-1776264542 技能

通过命令行安装

skillhub install feishu-meeting-room-book-1776264542

下载

⬇ 下载 feishu-meeting-room-book v0.0.4(免费)

文件大小: 11.41 KB | 发布时间: 2026-4-17 14:49

v0.0.4 最新 2026-4-17 14:49
Incremental refresh now preserves existing room order and appends newly discovered rooms. Refresh helper writes JSON atomically and stops immediately on damaged event slices.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部