Manage calendar scheduling, bookings, and availability on Cal.com directly from your AI workflows. Create, reschedule, confirm, and cancel bookings, manage availability schedules and event types, and query open time slots and busy times — built for scheduling assistants and automated booking workflows.
The fastmcp library is a Python client for MCP servers. Use it to call MewCP tools from your own scripts and services.
This guide connects Cal to Python through MewCP, so Python can use Cal's 19 tools, like get_my_profile, get_event_types and get_event_type, without your Cal credentials ever reaching the app.
Your Cal API key is stored encrypted and injected only at call time. Your agent never holds it, so it can never leak it, log it or paste it into a prompt.
More apps
Manage events, schedules and availability across Google Calendar. Create meetings, coordinate calendars, track availability and automate scheduling workflows.
Microsoft Outlook MCP Server gives AI agents full control over Outlook email and calendar workflows, including reading and sending emails, managing attachments, organizing mail, scheduling and updating meetings, managing contacts, and creating tasks.
Create, schedule and manage Google Meet sessions for video collaboration. Work with meetings, participants, recordings and conferencing workflows across your organization.
Nylas MCP Server lets AI agents access and manage email, calendar, and contacts across connected providers through Nylas, enabling agents to search and send messages, schedule and manage events, and work with contact data.
Other clients
Cal works the same way in every client below. Pick yours for its own guide.
Free to start.
Scope access to the exact Cal tools and accounts you allow, work and personal side by side. Anything outside that scope is refused at call time, even when the model asks for it.
Each call is logged: what ran, on which account, and whether it worked. Failures come back structured, so the agent knows whether to retry instead of guessing.
Every app sits behind one secure MCP URL, and there is no server for you to deploy or keep running. Add an integration in the dashboard and it is live on the next call, with no config to change and no new credentials to wire up. Tools load only when a task needs them, so your agent stays fast and focused however many apps you connect.
SDK clients sign in with an API key. Create one in your dashboard and replace API_KEY in the code below.
SDK clients run without a browser, so they sign in with your API key.
Get authenticated user profile from Cal.com
List all event types for the user
Get a specific event type by ID
Create a new event type
Get all bookings for the user
Get a specific booking by ID
Create a new booking
DESTRUCTIVE — REQUIRES EXPLICIT USER CONFIRMATION BEFORE CALLING. Cancel a booking. Permanently cancels the booking identified by `booking_id`, releasing its time slot and notifying the host and every attendee. This action is irreversible — the cancelled booking and its confirmed slot cannot be recovered. NEVER call this tool autonomously or as part of an automated flow. You MUST stop, tell the user exactly which booking will be cancelled and that it is permanent, and wait for their explicit written confirmation before proceeding. The response includes the booking's state before cancellation.
Reschedule an existing booking. Only the fields you provide are changed — others keep their current value. NOTE: this overwrites the current start and end times — the original state is not stored after the call. The response includes both the before and after state so you have a full record of what changed.
Confirm a pending booking. Only the fields you provide are changed — others keep their current value. NOTE: this overwrites the booking's current status — the original state is not stored after the call. The response includes both the before and after state so you have a full record of what changed.
Mark a booking as absent. Only the fields you provide are changed — others keep their current value. NOTE: this overwrites the booking's current attendance state — the original state is not stored after the call. The response includes both the before and after state so you have a full record of what changed.
Get all schedules for the user
Get a specific schedule by ID
Get default schedule
Create a new schedule
Get available time slots
Get busy times from calendars
Get organization memberships
Get organization routing forms