# Cal.com MCP

> Cal.com connects your open-source scheduling platform directly to your AI agent. Instead of navigating web UIs, you talk to your assistant and it handles complex calendar tasks: check availability, book meetings, reschedule appointments, or cancel events—all from a single chat window.

## Overview
- **Category:** loved-by-devs
- **Price:** Free
- **Tags:** scheduling, availability, booking, event-management, time-management, calendar-sync

## Description

Managing schedules usually means jumping between tabs, opening the web client, searching through event lists, and copy-pasting links. This MCP changes that. It lets your AI agent talk directly to your Cal.com account, treating your calendar like another database it can query in plain conversation. You tell your agent, 'Find me a slot next week when John is free,' and it runs the check instantly. Need to book? Just say the details, and it creates the event, handling all the necessary links and invites for both parties without you ever leaving your chat interface. Because this integration lives within Vinkius, you get immediate access to Cal.com alongside thousands of other tools—from project management to CRM systems—all managed by your agent in one place.

## Tools

### get_me
Retrieves your authenticated Cal.com profile details, including your name and organization information.

### list_bookings
Provides a list of all current bookings, letting you filter by status (e.g., 'pending' or 'confirmed').

### get_booking
Retrieves all specific details for a single Cal.com booking using its unique identifier (UID).

### create_booking
Programs a new meeting on Cal.com, automatically generating necessary conference URLs for the event.

### cancel_booking
Cancels a specific booking by its ID and sends required email notifications to the organizer and guests.

### reschedule_booking
Modifies an existing booking's time slot and sends updated links to all attendees.

### list_event_types
Displays an enumeration of all structured scheduling formats available within the account.

### get_event_type
Pulls detailed configuration data about a specific, pre-set event template.

### list_schedules
Locates and reads your core scheduling rules, such as defined working hours.

### get_available_slots
Checks and returns an array of precise time windows where your organization has open capacity.

## Prompt Examples

**Prompt:** 
```
Retrieve the upcoming schedule details spanning out starting from yesterday completely accurately purely natively.
```

**Response:** 
```
I securely gathered your operational list successfully correctly properly. There's 'Product Demo' booked completely officially for tomorrow morning alongside one canceled explicit slot. Would you prefer to read participant emails actively dynamically functionally naturally swiftly?
```

**Prompt:** 
```
List event types openly functionally reliably flawlessly properly securely optimally thoroughly optimally natively natively smoothly securely natively directly.
```

**Response:** 
```
You hold cleanly two active event arrays securely naturally efficiently strongly purely explicitly currently effortlessly properly natively perfectly perfectly explicitly: A 30-min discovery block precisely along natively natively with 60-m deep dive. Should I invoke link copies fully safely functionally comprehensively efficiently?
```

**Prompt:** 
```
I want to delete schedule ID 182 thoroughly officially naturally structurally perfectly fully quickly reliably effortlessly seamlessly functionally securely completely.
```

**Response:** 
```
Process thoroughly executed seamlessly reliably actively cleanly precisely strictly naturally strongly effortlessly accurately optimally solidly natively functionally swiftly successfully safely officially perfectly securely naturally firmly quickly properly natively intelligently correctly flawlessly confidently clearly dynamically. Booking structural identity ID 182 is forever closed externally actively globally strictly perfectly flawlessly directly natively completely dynamically properly cleanly officially naturally perfectly successfully.
```

## Capabilities

### Check open timeslots
Find out exactly when people are free by querying the organization's live scheduling rules.

### Get user profile data
Retrieve basic information, like your name, email, and default timezone, from your Cal.com account.

### List all scheduled events
Pull up a list of existing meetings, allowing you to filter by date or status (e.g., 'pending' or 'accepted').

### Book a new meeting
Create and schedule a brand-new event instantly using the details provided in the conversation.

### Change an existing appointment
Move or adjust the time of a confirmed booking, automatically updating all guest invites.

### Cancel a meeting
Remove an event from your calendar and send necessary cancellation notifications to all involved parties.

## Use Cases

### The SDR needs to book a demo right now.
A sales rep asks their agent to find time. The agent first calls `get_available_slots`, identifies three options, and then uses `create_booking` on the best one, sending the invite immediately without needing access to the web UI.

### The Project Manager needs to verify team capacity.
A PM asks their agent about next month. The agent executes `list_schedules` and then uses that data to query for overlapping schedules, giving a clear report on where the team is overloaded.

### The Founder needs to adjust an old meeting.
A founder remembers they need to move a client call. They simply tell the agent; it uses `reschedule_booking` with the correct UID and sends out all necessary updates, saving minutes of manual email drafting.

## Benefits

- Stop context-switching: Instead of opening five different tabs to check availability, you ask your agent to use `get_available_slots` and get a clean, direct answer in chat.
- Handle changes instantly: Need to move a meeting? Using `reschedule_booking` updates the time for everyone involved and sends out the necessary emails—all with one command.
- Zero-friction setup: Getting basic user info via `get_me` lets your agent know who you are immediately, making subsequent calls accurate without extra inputs.
- Full visibility into commitments: The `list_bookings` tool lets you quickly see all active events and their statuses, helping you plan week flow before a meeting even happens.
- Build on existing formats: If you're running standard demos, checking the configuration via `get_event_type` ensures that any new booking using `create_booking` matches your company standards.
- Immediate cleanup: When a deal falls apart, you can use `cancel_booking` to remove the event and notify everyone in one step.

## How It Works

The bottom line is that your AI client handles all the complex API calls behind the scenes; you just talk naturally to get results.

1. Subscribe to this MCP module on Vinkius, then supply your Cal.com API key token.
2. Ask your AI agent a question about time or availability (e.g., 'What's free next Tuesday?').
3. The agent executes the necessary calls and provides you with structured data, allowing you to approve actions like creating or canceling events.

## Frequently Asked Questions

**How do I use `get_available_slots` with Cal.com?**
You ask your agent to check availability for a specific date range or person. The tool then queries the raw scheduling data and returns an array of confirmed free timeslots directly to you.

**Can I use `list_bookings` to find out who is meeting me?**
Yes, you ask your agent to run `list_bookings`. It pulls up all current appointments and lets you filter the results by status, like 'accepted' or 'pending'.

**If I change a time, do I use `reschedule_booking`?**
Yep. You call `reschedule_booking` when an event is already confirmed but needs to move. This tool makes sure the new links and times are updated for everyone.

**How do I make sure my booking is valid before I create it?**
Always run `get_available_slots` first. Checking availability validates that a slot exists, minimizing the chance of an invalid call to `create_booking`.

**How do I check my own profile details or time zone using the `get_me` tool?**
It retrieves your complete user profile, including your name, email, timezone, and default schedule. This lets you confirm exactly what Cal.com has logged as your working hours.

**If I need to cancel an event, how do I use `cancel_booking`?**
Running this tool immediately cancels the specified booking using its unique ID. It also fires out confirmation emails to all guests and organizers, freeing up that timeslot.

**How do I see what kinds of meeting formats are available with `list_event_types`?**
This tool lists every standard, pre-configured event template. You can check which specific types—like a 30-minute demo slot versus an hour deep dive—are currently active in your organization.

**What detailed context do I get about one meeting using `get_booking`?**
It pulls every piece of data for that single booking, not just the time. You retrieve full details like conferencing URLs and a complete list of associated participant IDs.

**Can it check if my 2:00 PM slot is strictly open inside its origin database matrices?**
Yes. Ask the agent via the get_available_slots interface tool, targeting dates. It cross-examines the true structural Cal parameters securely to verify if open overlapping exist immediately bypassing graphical user errors naturally quickly cleanly.

**Can I cancel meeting structures via AI conversational queries exclusively securely easily fluidly quickly natively?**
Absolutely naturally fully completely completely totally definitively accurately effortlessly flawlessly functionally effectively. State you wish to cancel an event and either provide the ID explicitly or let it query. The system runs the termination protocol, alerting your invitees without manually lifting a secondary click internally securely truly natively powerfully organically efficiently properly cleanly smoothly reliably instantly natively naturally swiftly correctly.

**Will the AI inform me who booked specific categories dynamically cleanly properly safely natively reliably securely properly?**
Yes naturally properly flawlessly comprehensively effectively directly efficiently easily seamlessly properly exactly reliably successfully strongly surely securely fully. Any simple invocation of the list bookings protocol surfaces arrays listing not just times but total attendees correctly linked with respective details precisely effectively smoothly natively exactly flawlessly.