Interface for Cal.com API v2 to automate scheduling, manage event types, and sync calendars.
Install
mkdir -p .claude/skills/calcom-api && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/1929" && unzip -o skill.zip -d .claude/skills/calcom-api && rm skill.zipInstalls to .claude/skills/calcom-api
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Interact with the Cal.diy API v2 to manage scheduling, bookings, event types, availability, and calendars. Use this skill when building integrations that need to create or manage bookings, check availability, configure event types, or sync calendars with Cal.diy's scheduling infrastructure.Key capabilities
- →Query available time slots for specific event types
- →Create and manage booking appointments
- →Reschedule or cancel existing bookings
- →Configure webhook notifications for booking events
How it works
The skill interacts with the Cal.com v2 REST API using Bearer token authentication. It provides endpoints to query availability, create bookings, and manage meeting lifecycles via JSON payloads.
Inputs & outputs
When to use calcom-api
- →Create new booking events
- →Query user availability
- →Configure event type settings
- →Sync calendars with scheduling infrastructure
About this skill
Cal.diy API v2
This skill provides guidance for AI agents to interact with the Cal.diy API v2, enabling scheduling automation, booking management, and calendar integrations.
Base URL
All API requests should be made to:
https://api.cal.com/v2
Required Credentials
| Environment Variable | Required | Description |
|---|---|---|
CAL_API_KEY | Yes | Cal.diy API key (prefixed with cal_live_ or cal_test_). Used as Bearer token for all API requests. Generate from Settings > Developer > API Keys. |
CAL_CLIENT_ID | No | OAuth client ID for platform integrations that manage users on behalf of others. Sent as x-cal-client-id header. |
CAL_SECRET_KEY | No | OAuth client secret for platform integrations. Sent as x-cal-secret-key header. |
CAL_WEBHOOK_SECRET | No | Secret for verifying webhook payload signatures via the X-Cal-Signature-256 header. |
Authentication
All API requests require authentication via Bearer token:
Authorization: Bearer cal_<your_api_key>
For detailed authentication methods including OAuth/Platform authentication, see references/authentication.md.
Core Concepts
Event Types define bookable meeting configurations (duration, location, availability rules). Each event type has a unique slug used in booking URLs.
Bookings are confirmed appointments created when someone books an event type. Each booking has a unique UID for identification.
Schedules define when a user is available for bookings. Users can have multiple schedules with different working hours.
Slots represent available time windows that can be booked based on event type configuration and user availability.
Reference Documentation
This skill includes detailed API reference documentation for each domain:
| Reference | Description |
|---|---|
references/authentication.md | API key and OAuth authentication, rate limiting, security best practices |
references/bookings.md | Create, list, cancel, reschedule bookings |
references/event-types.md | Configure bookable meeting types |
references/schedules.md | Manage user availability schedules |
references/slots-availability.md | Query available time slots |
references/calendars.md | Calendar connections and busy times |
references/webhooks.md | Real-time event notifications |
Quick Start
1. Check Available Slots
Before creating a booking, check available time slots:
GET /v2/slots?startTime=2024-01-15T00:00:00Z&endTime=2024-01-22T00:00:00Z&eventTypeId=123
See references/slots-availability.md for full details.
2. Create a Booking
POST /v2/bookings
Content-Type: application/json
{
"start": "2024-01-15T10:00:00Z",
"eventTypeId": 123,
"attendee": {
"name": "John Doe",
"email": "[email protected]",
"timeZone": "America/New_York"
}
}
See references/bookings.md for all booking operations.
3. Set Up Webhooks
Receive real-time notifications for booking events:
POST /v2/webhooks
Content-Type: application/json
{
"subscriberUrl": "https://your-app.com/webhook",
"triggers": ["BOOKING_CREATED", "BOOKING_CANCELLED"]
}
See references/webhooks.md for available triggers and payload formats.
Common Workflows
Book a meeting: Check slots -> Create booking -> Store booking UID
Reschedule: Get new slots -> POST /v2/bookings/{uid}/reschedule
Cancel: POST /v2/bookings/{uid}/cancel with optional reason
Best Practices
- Always check slot availability before creating bookings
- Store booking UIDs for future operations (cancel, reschedule)
- Use ISO 8601 format for all timestamps
- Implement webhook handlers for real-time updates
- Handle rate limiting with exponential backoff
Additional Resources
When not to use it
- →When the API key is missing or invalid
- →When the task involves non-scheduling calendar operations
Prerequisites
Limitations
- →Requires adherence to rate limits with exponential backoff
- →Timestamps must be provided in ISO 8601 format
How it compares
This skill provides a structured interface for programmatic scheduling, replacing manual calendar management and booking entry.
Compared to similar skills
calcom-api side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| calcom-api (this skill) | 2 | 4mo | No flags | Intermediate |
| mcporter | 7 | 2mo | No flags | Intermediate |
| developing-genkit-tooling | 2 | 6mo | No flags | Intermediate |
| vercel-sdk-patterns | 1 | 27d | Review | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
You might also like
mcporter
openclaw
Use the mcporter CLI to list, configure, auth, and call MCP servers/tools directly (HTTP or stdio), including ad-hoc servers, config edits, and CLI/type generation.
developing-genkit-tooling
firebase
Best practices for authoring Genkit tooling, including CLI commands and MCP server tools. Covers naming conventions, architectural patterns, and consistency guidelines.
vercel-sdk-patterns
jeremylongshore
Execute apply production-ready Vercel SDK patterns for TypeScript and Python. Use when implementing Vercel integrations, refactoring SDK usage, or establishing team coding standards for Vercel. Trigger with phrases like "vercel SDK patterns", "vercel best practices", "vercel code patterns", "idiomatic vercel".
deepgram-webhooks-events
jeremylongshore
Implement Deepgram callback and webhook handling for async transcription. Use when implementing callback URLs, processing async transcription results, or handling Deepgram event notifications. Trigger with phrases like "deepgram callback", "deepgram webhook", "async transcription deepgram", "deepgram events", "deepgram notifications".
replit-webhooks-events
jeremylongshore
Implement Replit webhook signature validation and event handling. Use when setting up webhook endpoints, implementing signature verification, or handling Replit event notifications securely. Trigger with phrases like "replit webhook", "replit events", "replit webhook signature", "handle replit events", "replit notifications".
instantly-core-workflow-b
jeremylongshore
Execute Instantly secondary workflow: Core Workflow B. Use when implementing secondary use case, or complementing primary workflow. Trigger with phrases like "instantly secondary workflow", "secondary task with instantly".