calcom-api
Interact with the Cal.com 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.com's scheduling infrastructure.
Install via CLI (Recommended)
clawhub install openclaw/skills/skills/peerrich/calcomCal.com API v2
This skill provides guidance for AI agents to interact with the Cal.com API v2, enabling scheduling automation, booking management, and calendar integrations.
Base URL
All API requests should be made to:
https://api.cal.com/v2
Authentication
All API requests require authentication via Bearer token in the Authorization header:
Authorization: Bearer cal_<your_api_key>
API keys must be prefixed with cal_. You can generate API keys from your Cal.com dashboard under Settings > Developer > API Keys.
Core Concepts
Event Types
Event types define bookable meeting configurations (duration, location, availability rules). Each event type has a unique slug used in booking URLs.
Bookings
Bookings are confirmed appointments created when someone books an event type. Each booking has a unique UID for identification.
Schedules
Schedules define when a user is available for bookings. Users can have multiple schedules with different working hours.
Slots
Slots represent available time windows that can be booked based on event type configuration and user availability.
Common Operations
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&eventTypeSlug=30min
Query parameters:
startTime(required): ISO 8601 start of rangeendTime(required): ISO 8601 end of rangeeventTypeIdoreventTypeSlug: Identify the event typetimeZone: Timezone for slot display (default: UTC)
Response contains available slots grouped by date.
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"
},
"meetingUrl": "https://cal.com/team/meeting",
"metadata": {}
}
Required fields:
start: ISO 8601 booking start timeeventTypeId: ID of the event type to bookattendee.name: Attendee's full nameattendee.email: Attendee's email addressattendee.timeZone: Attendee's timezone
Get Bookings
List bookings with optional filters:
GET /v2/bookings?status=upcoming&take=10
Query parameters:
status: Filter by status (upcoming, recurring, past, cancelled, unconfirmed)attendeeEmail: Filter by attendee emaileventTypeId: Filter by event typetake: Number of results (max 250)skip: Pagination offset
Get a Single Booking
GET /v2/bookings/{bookingUid}
Cancel a Booking
POST /v2/bookings/{bookingUid}/cancel
Content-Type: application/json
{
"cancellationReason": "Schedule conflict"
}
Reschedule a Booking
POST /v2/bookings/{bookingUid}/reschedule
Content-Type: application/json
{
"start": "2024-01-16T14:00:00Z",
"reschedulingReason": "Conflict with another meeting"
}
Metadata
Not sure this is the right skill?
Describe what you want to build — we'll match you to the best skill from 16,000+ options.
Find the right skillPaste this into your clawhub.json to enable this plugin.
{
"plugins": {
"official-peerrich-calcom": {
"enabled": true,
"auto_update": true
}
}
}