mcpField
B
booking-notify

booking-notify

github.com/terrylica生产力1124 次安装今天更新
代码仓库

关于 booking-notify

booking-notify 是用于 Cal.com 预约变更通知的技能,面向需要跟踪日程的用户。它通过定时 Telegram 同步和可选的 Pushover 实时告警提供双渠道通知。

主要功能

  1. 01定时发送 Telegram HTML 通知
  2. 02Pushover 实时告警
  3. 03检测预约新增、取消和改期
  4. 04保存状态并用断路器处理 API 错误

适用场景

  1. 01查看预约新增、取消和改期
  2. 02接收即将开始的预约提醒
  3. 03通过 Pushover 接收紧急预约告警

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/terrylica/cc-skills --skill booking-notify

安装后在 Claude Code 中输入/booking-notify确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
evolution-log.md
notification-templates.md
pushover-setup.md
sync-config.md
webhook-relay.md

详细介绍

预订通知(双通道)

通过两个通道自动发送预订通知:

通道发送方式格式使用场景
Telegram定时HTML交互式命令、每日日报、搜索
Pushover实时纯文本使用自定义声音(dune)的紧急提醒

自我改进技能:本技能会在使用过程中不断改进。如果说明有误、参数发生偏移,或需要使用变通方案,请立即修正此文件,不要拖延。仅针对真实且可复现的问题进行更新。

强制预检

步骤 1:检查同步脚本是否存在
ls -la "$HOME/.claude/plugins/marketplaces/cc-skills/plugins/calcom-commander/scripts/sync.ts" 2>/dev/null || echo "SCRIPT_NOT_FOUND"
步骤 2:验证环境(必需)
echo "CALCOM_OP_UUID: ${CALCOM_OP_UUID:-NOT_SET}"
echo "TELEGRAM_BOT_TOKEN: ${TELEGRAM_BOT_TOKEN:+SET}"
echo "TELEGRAM_CHAT_ID: ${TELEGRAM_CHAT_ID:-NOT_SET}"
echo "HAIKU_MODEL: ${HAIKU_MODEL:-NOT_SET}"

所有项都必须为 SET。 如果任何一项为 NOT_SET,请先运行设置命令。

步骤 3:验证 Pushover(可选)
echo "PUSHOVER_APP_TOKEN: ${PUSHOVER_APP_TOKEN:+SET}"
echo "PUSHOVER_USER_KEY: ${PUSHOVER_USER_KEY:+SET}"
echo "PUSHOVER_SOUND: ${PUSHOVER_SOUND:-dune}"
echo "WEBHOOK_RELAY_URL: ${WEBHOOK_RELAY_URL:-NOT_SET}"

如果为 NOT_SET:Pushover 为可选项。仅使用 Telegram 仍可正常运行。若要启用,请参阅 pushover-setup.md。

步骤 4:验证 Cal.com CLI 二进制文件
ls -la "$HOME/.claude/plugins/marketplaces/cc-skills/plugins/calcom-commander/scripts/calcom-cli/calcom" 2>/dev/null || echo "BINARY_NOT_FOUND"

如果为 BINARY_NOT_FOUND:请构建:

cd "$HOME/.claude/plugins/marketplaces/cc-skills/plugins/calcom-commander/scripts/calcom-cli" && bun install && bun run build

通知通道

Telegram(定时同步)

通过 launchd 每 6 小时轮询一次。发送 HTML 格式的消息,内容包括:

类别示例
NEW BOOKING安排了新的面试、预约了新的咨询
CANCELLATION参与者取消预订、主持人取消预订
UPCOMING预订将在 1 小时后开始、今日安排
RESCHEDULED预订改到新的时间、日期已更改
Pushover(实时 Webhook)

通过 Cloud Run Webhook 中继服务即时发送通知:

事件优先级声音需要确认?
新预订2(紧急)dune是
改期2(紧急)dune是
取消0(普通)dune否
Webhook 中继服务

Webhook 中继服务是一个轻量级 Cloud Run 服务,用于将 Cal.com Webhook 转发到 Pushover。部署说明请参阅 webhook-relay.md。

手动运行

cd ~/gh/<org>/<automation-repo> && bun run "$HOME/.claude/plugins/marketplaces/cc-skills/plugins/calcom-commander/scripts/sync.ts"

同步行为

  1. 从 Cal.com API 获取预订信息(最近 6 小时的时间范围)
  2. 与上次记录的状态进行比较(基于文件)
  3. 检测新预订、取消和改期
  4. 针对每项变更发送 Telegram 通知(HTML)
  5. 如果已配置凭据,则发送 Pushover 通知(纯文本)
  6. 更新状态文件,供下次同步周期使用
  7. API 出错时,断路器可防止故障连锁扩散

环境配置(无关环境的接线方式)

脚本读取普通环境变量。对于 launchd 守护进程,请将变量放入 ~/gh/<org>/<automation-repo>/.env.launchd(由启动脚本加载);交互式使用时,请在 shell 中导出这些变量:

# Required (Telegram)
export CALCOM_OP_UUID='<1password-uuid>'
export TELEGRAM_BOT_TOKEN='<bot-token>'
export TELEGRAM_CHAT_ID='<chat-id>'

# Optional (Pushover dual-channel)
export PUSHOVER_APP_TOKEN='<pushover-app-token>'
export PUSHOVER_USER_KEY='<pushover-user-key>'
export PUSHOVER_SOUND='dune'
export WEBHOOK_RELAY_URL='https://calcom-pushover-webhook-XXXXX.us-central1.run.app/'

参考资料

变更后检查清单

  • YAML frontmatter 有效(描述中不含冒号)
  • 触发关键词为最新
  • 路径模式使用 $HOME,而非硬编码路径
  • 已验证 Pushover 优雅降级(无 Pushover 凭据时仍可运行)

执行后反思

此技能完成后,请在结束任务前进行反思:

  1. 确认位置。——编辑前,找到此 SKILL.md 的规范路径。
  2. 哪里失败了?——修复导致问题的指令。
  3. 哪些做得比预期更好?——将其列为推荐做法。
  4. 哪里偏离了?——修复任何与实际情况不符的脚本、参考资料或依赖项。
  5. 记录下来。——在演进日志中记录触发原因、修复内容和证据。

不要推迟。下一次调用会继承你留下的一切。

评论

支持 Markdown