@aiwerk/mcp-server-cal
OfficialManages bookings, event types, and availability via Cal.com API.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@aiwerk/mcp-server-cal Find available slots for a 30-min meeting tomorrow afternoon"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@aiwerk/mcp-server-cal
Cal.com scheduling MCP server - manage bookings, event types, and availability directly from your AI assistant.
Why this server?
Connect Claude, Cursor, or any MCP-compatible AI to your Cal.com account. Create bookings, check availability, manage event types, and view schedules - all via natural language.
Related MCP server: Cal.com MCP Server for Customers
Install
Two ways to run this server — pick the one that fits.
Option 1 — Hosted (zero setup)
No local runtime, no env vars on your machine — secrets are AES-256-GCM encrypted server-side via HashiCorp Vault.
Sign up at aiwerkmcp.com.
Install Cal.com from the catalog and paste your
CAL_API_KEY.Point your MCP client (Claude.ai, Cursor, Hermes, …) at your hosted endpoint:
https://bridge.aiwerk.ch/u/<your-user-id>/mcpwith your Bearer token.
All 12 tools, 3 resources, and 3 prompts appear. Install other AIWerk recipes from the same bridge.
Option 2 — Self-hosted (npx)
Run directly — you manage the API key:
CAL_API_KEY=cal_live_your_api_key_here npx @aiwerk/mcp-server-calOr wire it into your MCP client config — see Configuration below.
Tools
Tool | Description |
| List bookings with optional filters (status, event type, date range) |
| Get details of a specific booking by UID |
| Create a new booking (event type, attendee info, time) |
| Cancel a booking by UID |
| Reschedule a booking to a new time |
| List all event types |
| Get event type details by ID |
| Create a new event type |
| Update an existing event type |
| Delete an event type |
| Check available slots for an event type in a date range |
| List all schedules (working hours / availability rules) |
Resources
Resources are automatically available in the AI's context — no need to ask for them.
Resource | URI | Description |
Upcoming Bookings |
| Today's and tomorrow's bookings |
Event Types |
| All configured event types |
Schedules |
| Working hours and availability rules |
Prompts
Ready-made prompt templates for common scheduling tasks.
Prompt | Description |
| Summarize today's schedule with bookings and free slots |
| Find next available time for a specific event type |
| Suggest alternative times for rescheduling a booking |
Configuration
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"cal": {
"command": "npx",
"args": ["@aiwerk/mcp-server-cal"],
"env": {
"CAL_API_KEY": "cal_live_your_api_key_here"
}
}
}
}Cursor
Add to .cursor/mcp.json in your project or ~/.cursor/mcp.json globally:
{
"mcpServers": {
"cal": {
"command": "npx",
"args": ["@aiwerk/mcp-server-cal"],
"env": {
"CAL_API_KEY": "cal_live_your_api_key_here"
}
}
}
}OpenClaw / Universal Recipe
{
"name": "cal",
"command": "npx",
"args": ["@aiwerk/mcp-server-cal"],
"env": {
"CAL_API_KEY": "${CAL_API_KEY}"
}
}Environment Variables
Variable | Required | Default | Description |
| Yes (on tool call) | - | Cal.com API key ( |
| No |
| Override the Cal.com API base URL |
The server starts and responds to tools/list without CAL_API_KEY. The key is only required when an actual tool is called (lazy credentials pattern).
Getting Your API Key
Go to Cal.com Settings
Create a new API key
Copy the key (starts with
cal_live_for production)
Security
Never commit your API key to version control
Use environment variables or a secrets manager
The server only reads
CAL_API_KEYat tool call time, never logs it
About AIWerk MCP
Part of the AIWerk MCP platform — curated, signed MCP recipes served either as npm packages for self-hosting or through our multi-tenant hosted bridge (bridge.aiwerk.ch).
Other AIWerk MCP servers:
@aiwerk/mcp-server-imap — IMAP/SMTP email, provider-agnostic
@aiwerk/mcp-server-wise — Wise (TransferWise) Personal API, read-only
@aiwerk/mcp-server-clawhub — ClawHub skill catalog
Browse the full catalog (20+ recipes including GitHub, Linear, Notion, Stripe, …) at aiwerkmcp.com.
Contributing
Issues and PRs are welcome! Please open an issue first for larger changes.
License
MIT - AIWerk
Available Tools
12 toolscal_cancel_bookingC
Cancel a booking by UID. Required: uid. Optional: cancellationReason.
Inputs: uid (required), cancellationReason.
cal_create_bookingC
Create a new booking. Required: eventTypeId, start (ISO 8601), attendeeName, attendeeEmail, attendeeTimezone. Optional: notes, guests (array of emails), metadata.
Inputs: eventTypeId (required), start (required), attendeeName (required), attendeeEmail (required), +4 more.
cal_create_event_typeB
Create a new event type. Required: title, slug, lengthInMinutes. Optional: description, locations, hidden, metadata.
Inputs: title (required), slug (required), lengthInMinutes (required), description, +3 more.
cal_delete_event_typeC
Delete an event type by ID. Required: id.
Inputs: id (required).
cal_get_availabilityA
Get available time slots for an event type in a date range. Required: eventTypeId, dateFrom (ISO 8601), dateTo (ISO 8601). Optional: timeZone.
Inputs: eventTypeId (required), dateFrom (required), dateTo (required), timeZone.
cal_get_bookingC
Get details of a specific booking by its UID. Required: uid.
Inputs: uid (required).
cal_get_event_typeB
Get details of a specific event type by ID. Required: id.
Inputs: id (required).
cal_list_bookingsB
List bookings with optional filters. Optional: status (upcoming|recurring|past|cancelled|unconfirmed), eventTypeId, dateFrom (ISO 8601), dateTo (ISO 8601), limit.
Inputs: status, eventTypeId, dateFrom, dateTo, +1 more.
cal_list_event_typesA
List all event types. Optional: teamId, userId to filter by team or user.
Inputs: teamId, userId.
cal_list_schedulesA
List all schedules (working hours and availability rules).
Inputs: no named parameters.
cal_reschedule_bookingA
Reschedule a booking to a new time. Required: uid, newStart (ISO 8601). Optional: reschedulingReason.
Inputs: uid (required), newStart (required), reschedulingReason.
cal_update_event_typeB
Update an existing event type. Required: id. Optional fields to update: title, slug, lengthInMinutes, description, locations, hidden, metadata.
Inputs: id (required), title, slug, lengthInMinutes, +4 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 12 tools
Each tool targets a distinct action on a specific resource (booking, event type, availability, schedule). No overlapping purposes; clear boundaries between list vs get, create vs update, etc.
All tools follow the 'cal_verb_noun' pattern in snake_case, with consistent verbs (list, get, create, update, delete, cancel, reschedule). No mixing of conventions.
12 tools is a reasonable number for a scheduling server. It covers the main workflows without being excessive. Missing schedule CRUD tools, but core functionality is well-scoped.
Bookings have create, get, list, cancel, reschedule (missing update of details). Event types have full CRUD. Schedules only have list, lacking create/update/delete. Availability is read-only. Some gaps in booking update and schedule management.
Related MCP Connectors
Calendar API for AI agents: events, availability, Google/Microsoft setup, scheduling, and iCal.
AI-native scheduling and booking: check availability, book meetings, share links.
Connects ChatGPT to your Apple Calendar via a local Mac agent + Vercel relay
Connects AI assistants to TrackingTime for querying time entries, projects, tasks, customers, and team data using natural language.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage Google Calendar events, check availability, and handle scheduling tasks through natural language.10MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to book meetings, check availability, and manage Cal.com scheduling through natural conversation.MIT
- AlicenseNot gradedqualityDmaintenanceExposes Cal.com scheduling tools to AI agents via MCP, enabling listing event types, checking availability, and managing bookings (create, cancel, reschedule).89 npmMIT
- AlicenseNot gradedqualityNot gradedmaintenanceEnables AI assistants to read, create, update, delete, and search Google Calendar events across multiple accounts, check availability, and handle recurring events and invitations through natural language.89 npmMIT