mcpField
B
booking-notify

booking-notify

github.com/terrylicaProductivity1124 installsUpdated today
Repository

About booking-notify

booking-notify is a skill for people tracking Cal.com bookings. It combines scheduled Telegram updates with optional real-time Pushover alerts.

Key features

  1. 01Scheduled Telegram HTML notifications
  2. 02Real-time Pushover alerts
  3. 03Detects new, cancelled, and rescheduled bookings
  4. 04Stores state and uses an API-error circuit breaker

Use cases

  1. 01Review new, cancelled, and rescheduled bookings
  2. 02Get reminders about upcoming bookings
  3. 03Receive urgent booking alerts through Pushover

Install

Copy the command and run it in a terminal.

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

After installing, type/booking-notifyin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

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

Details

From the project README

Booking Notifications (Dual-Channel)

Automated booking notifications via two channels:

ChannelDeliveryFormatUse Case
TelegramScheduledHTMLInteractive commands, daily digest, search
PushoverReal-timePlain textEmergency alerts with custom sound (dune)

Self-Evolving Skill: This skill improves through use. If instructions are wrong, parameters drifted, or a workaround was needed — fix this file immediately, don't defer. Only update for real, reproducible issues.

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:

CategoryExamples
NEW BOOKINGNew interview scheduled, new consultation booked
CANCELLATIONBooking cancelled by attendee, host cancelled
UPCOMINGBooking starting in 1 hour, today's schedule
RESCHEDULEDBooking moved to new time, date changed
Pushover (Real-Time Webhook)

Instant notifications via Cloud Run webhook relay:

EventPrioritySoundMust Acknowledge?
New booking2 (Emergency)duneYes
Rescheduled2 (Emergency)duneYes
Cancelled0 (Normal)duneNo
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 ~/gh/<org>/<automation-repo> && bun run "$HOME/.claude/plugins/marketplaces/cc-skills/plugins/calcom-commander/scripts/sync.ts"

Sync Behavior

  1. Fetches bookings from Cal.com API (last 6h window)
  2. Compares against last-known state (file-based)
  3. Detects new bookings, cancellations, and reschedules
  4. Sends Telegram notification (HTML) for each change
  5. Sends Pushover notification (plain text) if credentials configured
  6. Updates state file for next sync cycle
  7. Circuit breaker prevents cascade failures on API errors

Environment Configuration (Agnostic Wiring)

The scripts read plain environment variables. For the launchd daemons put them in ~/gh/<org>/<automation-repo>/.env.launchd (sourced by the launcher scripts); for interactive use export them in your 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/'

References

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)

Post-Execution Reflection

After this skill completes, reflect before closing the task:

  1. Locate yourself. — Find this SKILL.md's canonical path before editing.
  2. What failed? — Fix the instruction that caused it.
  3. What worked better than expected? — Promote to recommended practice.
  4. What drifted? — Fix any script, reference, or dependency that no longer matches reality.
  5. Log it. — Evolution-log entry with trigger, fix, and evidence.

Do NOT defer. The next invocation inherits whatever you leave behind.

Comments

Markdown supported