What you can do
With the MCP server connected, you can ask your AI assistant things like:- “What bookings do I have this week?”
- “Create a 30-minute event type called Quick Chat”
- “Cancel my meeting with John tomorrow”
- “Show me my available slots for next Monday”
- “Reschedule my 2pm meeting to Thursday at 3pm”
- “What event types do I have?”
Connect using the hosted server
The quickest way to get started is the hosted server atmcp.cal.com. When you first connect, your AI client walks you through an authorization flow where you grant the server access to your Cal.com account. No API key is needed.
- Claude Desktop
- Cursor
- VS Code
Add the following to your
claude_desktop_config.json:- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Connect using a self-hosted server
If you prefer to run the server locally, you can use an API key instead of the OAuth flow. This option requires Node.js 18 or later.Generate an API key
Go to Settings → Developer → API Keys in your Cal.com dashboard and create a new key.
Available tools
The MCP server provides 34 tools organized by category:User profile
User profile
| Tool | Description |
|---|---|
get_me | Get your authenticated user profile |
update_me | Update your user profile |
Event types
Event types
| Tool | Description |
|---|---|
get_event_types | List all event types |
get_event_type | Get a specific event type by ID |
create_event_type | Create a new event type |
update_event_type | Update an event type |
delete_event_type | Delete an event type |
Bookings
Bookings
| Tool | Description |
|---|---|
get_bookings | List bookings with optional filters |
get_booking | Get a specific booking by UID |
create_booking | Create a new booking |
reschedule_booking | Reschedule a booking |
cancel_booking | Cancel a booking |
confirm_booking | Confirm a pending booking |
mark_booking_absent | Mark a booking absence |
get_booking_attendees | Get all attendees for a booking |
add_booking_attendee | Add an attendee to a booking |
get_booking_attendee | Get a specific attendee |
Schedules
Schedules
| Tool | Description |
|---|---|
get_schedules | List all schedules |
get_schedule | Get a specific schedule by ID |
create_schedule | Create a new schedule |
update_schedule | Update a schedule |
delete_schedule | Delete a schedule |
get_default_schedule | Get your default schedule |
Availability
Availability
| Tool | Description |
|---|---|
get_availability | Get available time slots |
get_busy_times | Get busy times from calendars |
Conferencing
Conferencing
| Tool | Description |
|---|---|
get_conferencing_apps | List conferencing applications |
Routing forms
Routing forms
| Tool | Description |
|---|---|
calculate_routing_form_slots | Calculate slots based on routing form response |
Organizations
Organizations
| Tool | Description |
|---|---|
get_org_memberships | Get all organization memberships |
create_org_membership | Create an organization membership |
get_org_membership | Get an organization membership |
delete_org_membership | Delete an organization membership |
get_org_routing_forms | Get organization routing forms |
get_org_routing_form_responses | Get routing form responses |