mcpField
B
booking-notify

booking-notify

github.com/terrylica生産性1124 回インストール今日更新
リポジトリ

booking-notify について

booking-notifyは、Cal.comの予約を追跡するためのスキルです。定期的なTelegram通知と、任意のPushoverリアルタイム通知を組み合わせます。

主な機能

  1. 01Telegramへの定期HTML通知
  2. 02Pushoverによるリアルタイム通知
  3. 03予約の新規・キャンセル・変更検出
  4. 04状態保存とAPIエラー時のサーキットブレーカー

活用シーン

  1. 01新規・キャンセル・変更された予約の確認
  2. 02開始が近い予約のリマインダー
  3. 03Pushoverで緊急予約通知を受信

インストール

コマンドをコピーしてターミナルで実行します。

$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

詳細

予約通知(デュアルチャネル)

2つのチャネルによる予約通知を自動化します。

チャネル配信方法形式用途
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 形式で送信します。

カテゴリー例
新規予約新しい面接が予定された、新しい相談が予約された
キャンセル参加者が予約をキャンセルした、ホストがキャンセルした
近日予定1 時間後に予約開始、本日の予定
再スケジュール予約が新しい時間に変更された、日付が変更された
Pushover(リアルタイム Webhook)

Cloud Run の Webhook リレーを介して即時通知します。

イベント優先度サウンド確認が必要ですか?
新規予約2(緊急)duneはい
再スケジュール2(緊急)duneはい
キャンセル0(通常)duneいいえ
Webhook リレー

Webhook リレーは、Cal.com の Webhook と Pushover を接続する軽量な Cloud Run サービスです。デプロイについては、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 に設定し(起動スクリプトによって読み込まれます)、対話形式で使用する場合はシェルでエクスポートしてください。

# 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 フロントマターが有効(description にコロンがない)
  • トリガーキーワードが最新である
  • パスパターンでハードコードされたパスではなく $HOME を使用している
  • Pushover のグレースフルデグラデーションを確認済み(Pushover の認証情報がなくても動作する)

実行後の振り返り

このスキルの実行後、タスクを終える前に振り返ります。

  1. 現在地を確認します。 — 編集する前に、この SKILL.md の正規パスを特定します。
  2. 何が失敗しましたか? — 原因となった指示を修正します。
  3. 予想以上にうまくいったことは何ですか? — 推奨プラクティスにします。
  4. 何にずれがありましたか? — 現状と合わなくなったスクリプト、参照、依存関係を修正します。
  5. 記録します。 — 発生のきっかけ、修正内容、根拠を含む進化ログのエントリーを追加します。

先延ばしにしないでください。次回の実行では、ここに残した内容が引き継がれます。

コメント