Cc-skills booking-config
Cal.com event types, schedules, and availability configuration. TRIGGERS - event type, booking page, schedule, availability, create calendar, configure calcom, booking link.
git clone https://github.com/terrylica/cc-skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/terrylica/cc-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/calcom-commander/skills/booking-config" ~/.claude/skills/terrylica-cc-skills-booking-config && rm -rf "$T"
plugins/calcom-commander/skills/booking-config/SKILL.mdBooking Configuration
Configure Cal.com event types, schedules, and availability windows via CLI.
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 CLI Binary
ls -la "$HOME/.claude/plugins/marketplaces/cc-skills/plugins/calcom-commander/scripts/calcom-cli/calcom" 2>/dev/null || echo "BINARY_NOT_FOUND"
Step 2: Verify Environment
echo "CALCOM_OP_UUID: ${CALCOM_OP_UUID:-NOT_SET}" echo "CALCOM_API_URL: ${CALCOM_API_URL:-NOT_SET}"
All must be SET. If any are NOT_SET, run the setup command first.
Step 3: Test API Access
CALCOM_CLI="$HOME/.claude/plugins/marketplaces/cc-skills/plugins/calcom-commander/scripts/calcom-cli/calcom" $CALCOM_CLI event-types list 2>&1 | head -3
Event Type Management
Create Event Type
Use AskUserQuestion to collect required fields:
AskUserQuestion({ questions: [{ question: "What type of booking page do you want to create?", header: "Event Type", options: [ { label: "30-min Meeting", description: "Standard 30-minute meeting slot" }, { label: "60-min Interview", description: "Full hour interview session" }, { label: "15-min Quick Call", description: "Brief check-in call" }, { label: "Custom", description: "Specify custom duration and details" } ], multiSelect: false }] })
CALCOM_CLI="$HOME/.claude/plugins/marketplaces/cc-skills/plugins/calcom-commander/scripts/calcom-cli/calcom" # Create event type with collected details $CALCOM_CLI event-types create \ --title "30min Interview" \ --slug "interview-30" \ --length 30 \ --description "Screening interview for VA candidates"
Update Event Type
# Update title $CALCOM_CLI event-types update <id> --title "Updated Title" # Update duration $CALCOM_CLI event-types update <id> --length 45 # Disable event type $CALCOM_CLI event-types update <id> --hidden true
Schedule Management
List Schedules
$CALCOM_CLI schedules list
Create Schedule
# Create a weekday schedule (9am-5pm) $CALCOM_CLI schedules create \ --name "Business Hours" \ --timezone "America/New_York" \ --availability '[ {"days": [1,2,3,4,5], "startTime": "09:00", "endTime": "17:00"} ]'
Check Availability
# Check available slots for a specific date range $CALCOM_CLI availability check \ --event-type-id <id> \ --start "2026-02-15" \ --end "2026-02-20"
Common Booking Page Patterns
Candidate Screening Interview
$CALCOM_CLI event-types create \ --title "VA Screening Interview" \ --slug "va-screening" \ --length 30 \ --description "BruntWork virtual assistant candidate screening" \ --requires-confirmation true
Open Office Hours
$CALCOM_CLI event-types create \ --title "Office Hours" \ --slug "office-hours" \ --length 15 \ --description "Drop-in office hours for team questions"
Webhook Management
Manage Cal.com webhooks for real-time Pushover notifications via the webhook relay.
List Webhooks
CALCOM_API_KEY=$(op item get "$CALCOM_OP_UUID" --vault "Claude Automation" --fields password --reveal) curl -s "https://api.cal.com/v1/webhooks?apiKey=$CALCOM_API_KEY" | python3 -m json.tool
Register Webhook
curl -s -X POST "https://api.cal.com/v1/webhooks?apiKey=$CALCOM_API_KEY" \ -H "Content-Type: application/json" \ -d "{\"subscriberUrl\":\"$WEBHOOK_RELAY_URL\",\"eventTriggers\":[\"BOOKING_CREATED\",\"BOOKING_RESCHEDULED\",\"BOOKING_CANCELLED\"],\"active\":true}"
Delete Webhook
curl -s -X DELETE "https://api.cal.com/v1/webhooks/<webhook-id>?apiKey=$CALCOM_API_KEY"
Prerequisites:
WEBHOOK_RELAY_URL must be set in .mise.local.toml. Deploy the relay first via the infra-deploy skill.
Post-Change Checklist
- YAML frontmatter valid (no colons in description)
- Trigger keywords current
- Path patterns use $HOME not hardcoded paths
Post-Execution Reflection
After this skill completes, reflect before closing the task:
- Locate yourself. — Find this SKILL.md's canonical path before editing.
- What failed? — Fix the instruction that caused it.
- What worked better than expected? — Promote to recommended practice.
- What drifted? — Fix any script, reference, or dependency that no longer matches reality.
- Log it. — Evolution-log entry with trigger, fix, and evidence.
Do NOT defer. The next invocation inherits whatever you leave behind.