booking-notify
SKILL.md
Booking Notifications (Dual-Channel)
Automated booking notifications via two channels:
| Channel | Delivery | Format | Use Case |
|---|---|---|---|
| Telegram | Scheduled | HTML | Interactive commands, daily digest, search |
| Pushover | Real-time | Plain text | Emergency alerts with custom sound (dune) |
Mandatory Preflight
Step 1: Check Sync Script Exists
ls -la "$HOME/.claude/plugins/marketplaces/cc-skills/plugins/calcom-commander/scripts/sync.ts" 2>/dev/null || echo "SCRIPT_NOT_FOUND"
Step 2: Verify Environment (Required)
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}"
All must be SET. If any are NOT_SET, run the setup command first.
Step 3: Verify Pushover (Optional)
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}"
If NOT_SET: Pushover is optional. Telegram-only operation still works. To enable, see pushover-setup.md.
Step 4: Verify Cal.com CLI Binary
ls -la "$HOME/.claude/plugins/marketplaces/cc-skills/plugins/calcom-commander/scripts/calcom-cli/calcom" 2>/dev/null || echo "BINARY_NOT_FOUND"
If BINARY_NOT_FOUND: Build it:
cd "$HOME/.claude/plugins/marketplaces/cc-skills/plugins/calcom-commander/scripts/calcom-cli" && bun install && bun run build
Notification Channels
Telegram (Scheduled Sync)
6h polling via launchd. Sends HTML-formatted messages for:
| Category | Examples |
|---|---|
| NEW BOOKING | New interview scheduled, new consultation booked |
| CANCELLATION | Booking cancelled by attendee, host cancelled |
| UPCOMING | Booking starting in 1 hour, today's schedule |
| RESCHEDULED | Booking moved to new time, date changed |
Pushover (Real-Time Webhook)
Instant notifications via Cloud Run webhook relay:
| Event | Priority | Sound | Must Acknowledge? |
|---|---|---|---|
| New booking | 2 (Emergency) | dune | Yes |
| Rescheduled | 2 (Emergency) | dune | Yes |
| Cancelled | 0 (Normal) | dune | No |
Webhook Relay
The webhook relay is a lightweight Cloud Run service that bridges Cal.com webhooks to Pushover. See webhook-relay.md for deployment.
Running Manually
cd ~/own/amonic && bun run "$HOME/.claude/plugins/marketplaces/cc-skills/plugins/calcom-commander/scripts/sync.ts"
Sync Behavior
- Fetches bookings from Cal.com API (last 6h window)
- Compares against last-known state (file-based)
- Detects new bookings, cancellations, and reschedules
- Sends Telegram notification (HTML) for each change
- Sends Pushover notification (plain text) if credentials configured
- Updates state file for next sync cycle
- Circuit breaker prevents cascade failures on API errors
mise Configuration (Agnostic Wiring)
Any repository can adopt these notifications by adding to .mise.local.toml:
[env]
# Required (Telegram)
CALCOM_OP_UUID = "<1password-uuid>"
TELEGRAM_BOT_TOKEN = "<bot-token>"
TELEGRAM_CHAT_ID = "<chat-id>"
# Optional (Pushover dual-channel)
PUSHOVER_APP_TOKEN = "<pushover-app-token>"
PUSHOVER_USER_KEY = "<pushover-user-key>"
PUSHOVER_SOUND = "dune"
WEBHOOK_RELAY_URL = "https://calcom-pushover-webhook-XXXXX.us-central1.run.app/"
References
- notification-templates.md — Dual-channel message templates
- pushover-setup.md — Pushover credential setup guide
- webhook-relay.md — Webhook relay deployment + management
- sync-config.md — Sync interval and state management
Post-Change Checklist
- YAML frontmatter valid (no colons in description)
- Trigger keywords current
- Path patterns use $HOME not hardcoded paths
- Pushover graceful degradation verified (works without Pushover creds)
Weekly Installs
45
Repository
terrylica/cc-skillsGitHub Stars
19
First Seen
Feb 17, 2026
Security Audits
Installed on
cline45
github-copilot45
codex45
kimi-cli45
gemini-cli45
cursor45