servers / cal-mcp
cal-mcp
communitystdiolocalunmaintainedhealthy
the official MCP server for cal.com
01Tools · 9
How to read this: tool names here are observed from a live tools/list handshake. The Risk label is a heuristic inferred from the tool name (write/destructive verbs), not from executing the tool — a conservative guess, not a verified capability. We never escalate risk from a description. Found one that's wrong? Tell us — we fix on report.
| Tool | Risk | Side effects | Approval |
|---|---|---|---|
| getBooking `:bookingUid` can be
1. uid of a normal booking
2. uid of one of the recurring booking recurrences
3. uid of recurring booking which will return an array of all recurring booking recurrences (stored as recurringBookingUid on one of the individual recurrences). | unknown | unknown | unknown |
| getEventTypeById Get an event type | read | false | unknown |
| getBookings Get all bookings | read | false | unknown |
| cancelBooking :bookingUid can be :bookingUid of an usual booking, individual recurrence or recurring booking to cancel all recurrences.
For seated bookings to cancel one individual booking provide :bookingUid and :seatUid in the request body. For recurring seated bookings it is not possible to cancel all of them with 1 call
like with non-seated recurring bookings by providing recurring bookind uid - you have to cancel each recurrence booking by its bookingUid + seatUid. | destructive | true | true |
| updateEventType Update an event type | write | true | unknown |
| createBooking
POST /v2/bookings is used to create regular bookings, recurring bookings and instant bookings. The request bodies for all 3 are almost the same except:
If eventTypeId in the request body is id of a regular event, then regular booking is created.
If it is an id of a recurring event type, then recurring booking is created.
Meaning that the request bodies are equal but the outcome depends on what kind of event type it is with the goal of making it as seamless for developers as possible.
For team event types it is possible to create instant meeting. To do that just pass `"instant": true` to the request body.
The start needs to be in UTC aka if the timezone is GMT+2 in Rome and meeting should start at 11, then UTC time should have hours 09:00 aka without time zone.
| write | true | unknown |
| rescheduleBooking Reschedule a booking or seated booking | unknown | unknown | unknown |
| getEventTypes Get all event types | read | false | unknown |
| deleteEventType Delete an event type | destructive | true | true |
02Install & source
npx -y @calcom/cal-mcp@latest
npx- repohttps://github.com/calcom/cal-mcp
- adoption29 stars · 11 forks
05Provenance & freshness
sourcesUser submissions [p7]
last_checked2026-07-28 11:45Z
next_check2026-08-27 11:45Z
cadenceevery 720h
verifiedhandshake:failed metadata:passed tools_list:passed handshake:passed metadata:passed metadata:passed
index_statusindex — 7 unique facts >= 5
06Badge
Add the “as seen on MCPExplorer” badge to your README.
[](https://mcpexplorer.com/servers/cal-mcp)
Next step
This is one server. A loadout combines the right servers, governance, and proven plays for a whole job — assembled deliberately, not tool-dumped.
Explore loadouts →