Skip to main content
The Cal.com MCP server wraps the Cal.com Platform API v2 in the Model Context Protocol, letting you manage bookings, event types, schedules, and more through natural language in any MCP-compatible client.

Hosted server (mcp.cal.com)

The fastest way to get started is to connect your MCP client directly to mcp.cal.com. The hosted server uses Streamable HTTP transport with OAuth 2.1 authentication — your client handles the authorization flow automatically.

Connect your client

Point your MCP client to the hosted server URL:
https://mcp.cal.com/mcp
When you first connect, your client walks you through an OAuth authorization flow where you grant the server access to your Cal.com account. No API key is needed.
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
{
  "mcpServers": {
    "calcom": {
      "url": "https://mcp.cal.com/mcp"
    }
  }
}

Self-hosted server (stdio)

If you prefer to run the server locally, you can use stdio transport with an API key. This is useful for development or when you want full control over the server.

Prerequisites

Connect your client

Add the following to your MCP client’s configuration:
{
  "mcpServers": {
    "calcom": {
      "command": "npx",
      "args": ["@calcom/cal-mcp@latest"],
      "env": {
        "CAL_API_KEY": "cal_live_xxxx"
      }
    }
  }
}
Replace cal_live_xxxx with your actual API key.
Never share or commit your API key. If exposed, rotate it immediately in your Cal.com settings.

Available tools

The MCP server exposes 34 tools organized by category:

User profile

ToolDescription
get_meGet your authenticated user profile
update_meUpdate your user profile

Event types

ToolDescription
get_event_typesList all event types
get_event_typeGet a specific event type by ID
create_event_typeCreate a new event type
update_event_typeUpdate an event type
delete_event_typeDelete an event type

Bookings

ToolDescription
get_bookingsList bookings with optional filters
get_bookingGet a specific booking by UID
create_bookingCreate a new booking
reschedule_bookingReschedule a booking
cancel_bookingCancel a booking
confirm_bookingConfirm a pending booking
mark_booking_absentMark a booking absence
get_booking_attendeesGet all attendees for a booking
add_booking_attendeeAdd an attendee to a booking
get_booking_attendeeGet a specific attendee

Schedules

ToolDescription
get_schedulesList all schedules
get_scheduleGet a specific schedule by ID
create_scheduleCreate a new schedule
update_scheduleUpdate a schedule
delete_scheduleDelete a schedule
get_default_scheduleGet your default schedule

Availability

ToolDescription
get_availabilityGet available time slots
get_busy_timesGet busy times from calendars

Conferencing

ToolDescription
get_conferencing_appsList conferencing applications

Routing forms

ToolDescription
calculate_routing_form_slotsCalculate slots based on routing form response

Organizations

ToolDescription
get_org_membershipsGet all organization memberships
create_org_membershipCreate an organization membership
get_org_membershipGet an organization membership
delete_org_membershipDelete an organization membership
get_org_routing_formsGet organization routing forms
get_org_routing_form_responsesGet routing form responses

Example prompts

Once connected, you can interact with Cal.com using natural language:
  • “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?”