# Cal.com MCP connector

The Cal.com connector brings your Cal.com bookings, event types, availability schedules, calendars and teams to Claude, ChatGPT, Cursor and any MCP client, so anyone can ask about upcoming meetings or book one in plain language, inside their own Cal.com access.

Source: https://elaichi.ai/connectors/calcom/

## Facts

| | |
| --- | --- |
| Application | Cal.com |
| Category | Scheduling |
| AI tools | 20 |
| Authentication | Connects with an API key |
| Needs your own OAuth app | No |
| MCP endpoint | https://api.elaichi.ai/mcp |
| Works with | Claude, ChatGPT, Cursor, any MCP client, and the Elaichi Agent |
| Tools advertised by name | Yes |

## What you can ask once Cal.com is connected

- List every Cal.com event type longer than 45 minutes.
- Which schedules leave no availability on Friday afternoons?
- Show bookings created for the Sales team this week.

## Connect Cal.com in Elaichi

This happens once for the organization, before any client is involved.

1. Open Connections, choose Add connection, and pick Cal.com.
2. Optionally set Share with, then press Connect.
3. Paste a Cal.com API key. One person generates a token in Cal.com and pastes it once. Everyone else works through Share with, and never sees it.

Credentials are vaulted and nobody, including the AI, reads them back. The connection becomes a toolbox immediately, so you can curate which Cal.com tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## Connect Cal.com to Claude

Endpoint: https://api.elaichi.ai/mcp

1. Open Customize, then Connectors.
2. Press Add.
3. Name it, paste the MCP server URL, then Continue.
4. Sign in and approve.

On Team and Enterprise, an Owner adds it once. Everyone else turns it on for themselves.

## Connect Cal.com to ChatGPT

Endpoint: https://api.elaichi.ai/mcp

1. Open Plugins, then press the + button.
2. Name it and paste the endpoint into Server URL.
3. Leave Authentication on OAuth, then tick the risk acknowledgement.
4. Press Create, then sign in and approve.

Works on the web today. The plugin directory lives at chatgpt.com/plugins.

## Connect Cal.com to Cursor

Endpoint: https://api.elaichi.ai/mcp

1. Open `~/.cursor/mcp.json`.
2. Add the endpoint under `mcpServers`.
3. Reload Cursor, then sign in and approve.

Set up per machine, so repeat it on each computer you work from.

## Connect Cal.com to any MCP client

Endpoint: https://api.elaichi.ai/mcp

1. Add the endpoint as a remote MCP server.
2. Sign in and approve.

The Elaichi Agent already has these tools, with nothing to set up.

## What the consent screen decides

Only Read is granted by default, which is not enough to call a Cal.com tool. Over MCP there is no trusted place to confirm a write in the moment, so the consent screen is the standing approval rather than a formality. Grant Read and Run tools. Think hard before granting Delete, which reaches into connected apps and cannot be undone.

## What teams do with Cal.com through Elaichi

### Book a discovery call while still on the phone

Sales. Ask for a slot on the demo event type and create the booking for the prospect before the conversation ends. No tab switching, and the meeting lands in Cal.com like any other.

### See every interview booked this week

Recruiting. Pull the list of bookings for the interview event types, check who is meeting which candidate, and spot the day that is overloaded before it arrives.

### Set up a new onboarding event type

Customer success. Describe the session, its length and which schedule it should follow, and have the event type created in Cal.com ready to share with new customers.

### Keep team availability schedules current

Operations. When office hours change for a region or a holiday is added, update the relevant Cal.com schedule in one request instead of editing each one by hand.

### Organize Cal.com teams as the company changes

People. Create a team for a new department, rename one after a reorganization, or check which teams exist, all from a chat window.

### Answer who is meeting whom today

Office management. Ask for today's bookings across the connected Cal.com account and get a plain list of meetings, attendees and times without opening the calendar.

## Frequently asked questions

### How do I connect Cal.com to Claude?

Connect Cal.com inside Elaichi by pasting a Cal.com API key from your Cal.com settings; there is no OAuth application to register and no client ID or secret to generate. Then in Claude open Customize, then Connectors, then Add, and paste the endpoint https://api.elaichi.ai/mcp. Sign in with your Elaichi account and Cal.com is ready to use in Claude.

### Does Cal.com work with ChatGPT and Cursor as well as Claude?

Yes. Once Cal.com is connected in Elaichi, the same endpoint, https://api.elaichi.ai/mcp, works in Claude, ChatGPT, Cursor, the Elaichi Agent and any other MCP client. You connect Cal.com once and every client you sign into picks it up.

### What can an AI agent actually do with my Cal.com data?

With Cal.com connected, an agent can list your upcoming bookings and open any single one, create a new booking on an event type, and read your calendars. It can also create, update or delete event types, availability schedules and teams in Cal.com when asked. It cannot cancel or reschedule an existing booking through this connector.

### Does connecting Cal.com give the AI access to everything in my Cal.com account?

No. Every request runs as the person who signed in, so the agent sees only the Cal.com bookings, event types, schedules and teams that person can already see in Cal.com. Elaichi can narrow that further by blocking specific actions, but it can never grant more than the person's own Cal.com access allows.

### Can my team share one Cal.com connection?

Yes. One person connects Cal.com in Elaichi and shares the connection with a team, and nobody else ever handles the Cal.com API key. Each teammate still signs into Elaichi as themselves, so every booking created or event type changed is logged under their own name.

### Can I stop an agent from deleting or changing things in Cal.com?

Yes. In Elaichi you can block individual actions for the Cal.com connector, for example deleting event types, schedules or teams, or creating bookings, while leaving reading intact. A blocked action is never shown to Claude, ChatGPT or any other client, so no prompt can reach it.

### What happens to a Cal.com connection when someone leaves the company?

Offboarding that person in Elaichi ends their access to Cal.com through every connected client at once. If they had shared a Cal.com connection with a team, the connection keeps working for everyone else. Disconnecting Cal.com once in Elaichi removes it from Claude, ChatGPT, Cursor and every other client at the same time.

## All 20 Cal.com tools

Every tool below is callable through https://api.elaichi.ai/mcp once Cal.com is connected, subject to the toolbox it is in and the restrictions on the caller.

- **List all Cal.com schedules** (List). Get all schedules of the authenticated user in Cal.com. Returns schedule id, ownerId, name, timeZone, availability with days and times, isDefault flag, and overrides with date and times.
- **Get single Cal.com schedule by ID** (Get). Get schedule details by id in Cal.com. Returns id, ownerId, name, timeZone, availability (days, startTime, endTime), isDefault, and overrides (date, startTime, endTime).
- **Create a Cal.com schedule** (Create). Create a schedule with name, timeZone, availability, and isDefault for the authenticated user in Cal.com. Returns id, ownerId, name, timeZone, availability, isDefault, and overrides fields.
- **Update a Cal.com schedule by ID** (Update). Update a schedule by id in Cal.com. Requires scheduleId. Returns updated schedule fields including name, timeZone, availability (days, startTime, endTime), isDefault, and overrides (date, startTime, endTime).
- **Delete a Cal.com schedule by ID** (Delete). Delete a schedule by id in Cal.com. Returns status indicating success or error.
- **List all Cal.com calendars** (List). Get all calendars connected to Cal.com. Returns connectedCalendars array with integration details, credentialId, primary calendar info, and calendars list. Also returns destinationCalendar with id, integration, userId, and name.
- **List all Cal.com event types** (List). Get all event types in Cal.com. Returns id, title, description, lengthInMinutes, locations, bookingFields, price, currency, and other event details.
- **Get single Cal.com event type by ID** (Get). Get event type by id in Cal.com. Returns id, lengthInMinutes, title, slug, description, locations, bookingFields, disableGuests, recurrence, price, currency, isInstantEvent, scheduleId, ownerId, and users fields.
- **Create a Cal.com event type** (Create). Create an event type in Cal.com with required parameters lengthInMinutes, title, and slug. Returns id, title, slug, description, locations, bookingFields, disableGuests, slotInterval, minimumBookingNotice, beforeEventBuffer, afterEventBuffer, recurrence, price, currency, scheduleId, bookingLimitsCount, bookingLimitsDuration, bookingWindow, bookerLayouts, confirmationPolicy, requiresBookerEmailVerification, hideCalendarNotes, lockTimeZoneToggleOnBookingPage, color, seats, offsetStart, customName, destinationCalendar, useDestinationCalendarEmail, hideCalendarEventDetails, hideOrganizerEmail, calVideoSettings, ownerId, and users.
- **Update a Cal.com event type by ID** (Update). Update an event type by id in Cal.com. Returns updated event type fields including id, lengthInMinutes, title, slug, description, locations, bookingFields, disableGuests, slotInterval, minimumBookingNotice, beforeEventBuffer, afterEventBuffer, recurrence, price, currency, scheduleId, bookingLimitsCount, bookingLimitsDuration, bookingWindow, bookerLayouts, confirmationPolicy, requiresBookerEmailVerification, hideCalendarNotes, color, seats, offsetStart, customName, destinationCalendar, useDestinationCalendarEmail, hideCalendarEventDetails, hideOrganizerEmail, calVideoSettings, ownerId, and users.
- **Delete a Cal.com event type by ID** (Delete). Delete an event type by id in Cal.com. Returns the deleted event type's id, lengthInMinutes, title, and slug.
- **List all Cal.com teams** (List). Get list of teams in Cal.com. Returns teams array with team details.
- **Get single Cal.com team by ID** (Get). Get a team by id in Cal.com. Returns id, parentId, name, slug, logoUrl, bio, privacy settings, metadata, theme, brand colors, bannerUrl, timeFormat, timeZone, and weekStart.
- **Create a Cal.com team** (Create). Create a team in Cal.com with required name. Returns status and data of the created team.
- **Update a Cal.com team by ID** (Update). Update a team by id in Cal.com. Returns updated team fields including id, parentId, name, slug, logoUrl, calVideoLogo, appLogo, appIconLogo, bio, hideBranding, isOrganization, isPrivate, hideBookATeamMember, metadata, theme, brandColor, darkBrandColor, bannerUrl, timeFormat, timeZone, and weekStart.
- **Delete a Cal.com team by ID** (Delete). Delete a team by id in Cal.com. Requires id. Returns status 200 on success.
- **List all Cal.com bookings** (List). Get all bookings in Cal.com. Returns id, uid, title, description, hosts, status, cancellationReason, start, end, duration, eventTypeId, meetingUrl, location, createdAt, updatedAt, attendees, guests, and rating fields.
- **Get single Cal.com booking by ID** (Get). Get booking details by id in Cal.com. Returns fields including id, uid, title, description, hosts, status, cancellationReason, reschedulingReason, start, end, duration, eventType, meetingUrl, location, attendees, and guests.
- **Create a Cal.com booking** (Create). Create a booking with start time and attendee details in Cal.com. Provide eventTypeId or eventTypeSlug with username/teamSlug and optionally organizationSlug. Returns booking id, uid, title, hosts, status, start, end, duration, eventTypeId, meetingUrl, location, metadata, attendees, guests, and bookingFieldsResponses.
- **List all Cal.com schedule** (List). Get all schedules in Cal.com. Returns schedules with id, userId, name, timeZone, and availability including days, startTime, and endTime.
