Skip to main content
Glama
@mnicole-dev/calcom-mcp-server

@mnicole-dev/calcom-mcp-server

by mnicole-dev

@mnicole-dev/calcom-mcp-server

MCP server for the Cal.com API v2. Provides 24 tools covering bookings, event types, availability slots, schedules, calendars, profile, and out-of-office management.

Tools

Bookings (7)

Tool

Description

list-bookings

List bookings with filters (status, date range, attendee, event type)

get-booking

Get a booking by UID

create-booking

Create a new booking

cancel-booking

Cancel a booking

reschedule-booking

Reschedule a booking to a new time

confirm-booking

Confirm a pending booking

decline-booking

Decline a pending booking

Event Types (5)

Tool

Description

list-event-types

List all event types

get-event-type

Get an event type by ID

create-event-type

Create a new event type

update-event-type

Update an existing event type

delete-event-type

Delete an event type

Slots (1)

Tool

Description

get-available-slots

Get available booking slots within a date range

Schedules (5)

Tool

Description

list-schedules

List all availability schedules

get-schedule

Get a schedule by ID

create-schedule

Create a new availability schedule

update-schedule

Update a schedule

delete-schedule

Delete a schedule

Profile (1)

Tool

Description

get-me

Get the authenticated user profile

Calendars (2)

Tool

Description

list-calendars

List connected calendars

get-busy-times

Get busy time blocks from calendars

Out of Office (3)

Tool

Description

list-out-of-office

List all out-of-office entries

create-out-of-office

Create an out-of-office entry

delete-out-of-office

Delete an out-of-office entry

Related MCP server: Calcom mcp | Cal dot com mcp

Setup

Get your API key

  1. Log in to Cal.com

  2. Go to Settings → Developer → API keys

  3. Create a new API key

Configure Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "calcom": {
      "command": "npx",
      "args": ["-y", "@mnicole-dev/calcom-mcp-server"],
      "env": {
        "CAL_API_KEY": "your_api_key_here"
      }
    }
  }
}

Development

pnpm install
pnpm build
CAL_API_KEY=your_key pnpm dev

Available Tools

24 tools
cancel-bookingB

Cancel a booking by its UID.

Inputs: bookingUid (required), cancellationReason.

confirm-bookingB

Confirm a pending booking.

Inputs: bookingUid (required).

create-bookingC

Create a new booking.

Inputs: start (required), eventTypeId (required), attendeeName (required), attendeeEmail (required), +5 more.

create-event-typeB

Create a new event type.

Inputs: slug (required), title (required), lengthInMinutes (required), locations, +2 more.

create-out-of-officeB

Create an out-of-office entry.

Inputs: end (required), start (required), notes, toUserId.

create-scheduleC

Create a new availability schedule.

Inputs: name (required), timeZone (required), isDefault, availability.

decline-bookingB

Decline a pending booking.

Inputs: bookingUid (required).

delete-event-typeA

Delete an event type by ID.

Inputs: eventTypeId (required).

delete-out-of-officeA

Delete an out-of-office entry by ID.

Inputs: outOfOfficeId (required).

delete-scheduleB

Delete an availability schedule by ID.

Inputs: scheduleId (required).

get-available-slotsB

Get available booking slots for an event type within a date range.

Inputs: endTime (required), startTime (required), duration, eventTypeId, +1 more.

get-bookingA

Get a specific booking by its UID.

Inputs: bookingUid (required).

get-busy-timesC

Get busy time blocks from connected calendars.

Inputs: dateTo (required), dateFrom (required), calendarsToLoad.

get-event-typeB

Get a specific event type by ID.

Inputs: eventTypeId (required).

get-meA

Get the authenticated user profile.

Inputs: no named parameters.

get-scheduleA

Get a specific availability schedule by ID.

Inputs: scheduleId (required).

list-bookingsC

List all bookings with optional filters.

Inputs: limit, cursor, status, beforeEnd, +3 more.

list-calendarsA

List all connected calendars for the authenticated user.

Inputs: no named parameters.

list-event-typesA

List all event types for the authenticated user.

Inputs: no named parameters.

list-out-of-officeA

List all out-of-office entries for the authenticated user.

Inputs: no named parameters.

list-schedulesA

List all availability schedules for the authenticated user.

Inputs: no named parameters.

reschedule-bookingB

Reschedule a booking to a new start time.

Inputs: start (required), bookingUid (required), reschedulingReason.

update-event-typeC

Update an existing event type.

Inputs: eventTypeId (required), slug, title, hidden, +4 more.

update-scheduleB

Update an existing availability schedule.

Inputs: scheduleId (required), name, timeZone, isDefault, +1 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.5/5.0

    Scored across 24 tools

    Disambiguation5/5

    Each tool targets a distinct resource and action: schedules, bookings, event types, calendars/availability, out-of-office, and user profile. Even closely related pairs like get-available-slots vs get-busy-times are separated by clear resource context.

    Naming Consistency5/5

    All tools consistently use lowercase hyphenated verb-noun names (create-schedule, list-bookings, get-event-type). Collections use 'list', single resources use 'get', and actions use domain verbs like cancel/rescheduled/confirm, forming a predictable pattern.

    Tool Count3/5

    At 24 tools, the set falls into the heavy 16-25 range and could feel large for an agent to navigate. However, the count is justified by the broad Cal.com domain covering five main resource areas; it is borderline rather than excessive.

    Completeness4/5

    Schedules, event types, and bookings have strong full lifecycle coverage, including create, read, list, update/delete, and booking-specific actions. Minor gaps exist—notably no update tool for out-of-office entries and no direct booking update—but these can be worked around without dead ends.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers