@aiwerk/mcp-server-cal
MCP serverProductivityThis integration connects your AI to Cal.com so it can handle scheduling for you. Once added, your AI can book, reschedule, and cancel meetings, check open time slots, and manage your meeting types and working hours.
Unavailable. This server has no hosted endpoint yet, so Ahel can't serve it.
Add to setup to save this item as a reference. Ahel cannot run it, and signing in will not install it.
What your AI can do with it
- List upcoming, past, or cancelled bookings
- Book new meetings for attendees at a chosen time
- Reschedule or cancel existing bookings
- Check available time slots before booking
- Create, update, or remove meeting types with their own lengths and details
- Review working hours and availability rules
Getting started
- Save this item in Your setup as a reference.
- Read the source or reference documentation for its setup requirements. Saving it here does not connect it to your AI.
- Check this page for availability before trying to install it through Ahel.
From the project's README
As published by aiwerk/mcp-server-cal in README.md.
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.
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:
with your Bearer token.https://bridge.aiwerk.ch/u/<your-user-id>/mcp
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-cal
Or wire it into your MCP client config — see Configuration below.
Tools
| Tool | Description |
|---|---|
cal_list_bookings | List bookings with optional filters (status, event type, date range) |
cal_get_booking | Get details of a specific booking by UID |
cal_create_booking | Create a new booking (event type, attendee info, time) |
cal_cancel_booking | Cancel a booking by UID |
cal_reschedule_booking | Reschedule a booking to a new time |
cal_list_event_types | List all event types |
cal_get_event_type | Get event type details by ID |
cal_create_event_type | Create a new event type |
cal_update_event_type | Update an existing event type |
cal_delete_event_type | Delete an event type |
cal_get_availability | Check available slots for an event type in a date range |
cal_list_schedules | 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 | cal://bookings/upcoming | Today's and tomorrow's bookings |
| Event Types | cal://event-types | All configured event types |
| Schedules | cal://schedules | Working hours and availability rules |
Prompts
Ready-made prompt templates for common scheduling tasks.
| Prompt | Description |
|---|---|
daily-schedule | Summarize today's schedule with bookings and free slots |
find-free-slot | Find next available time for a specific event type |
reschedule-suggestion | 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 |
|---|---|---|---|
CAL_API_KEY | Yes (on tool call) | - | Cal.com API key (cal_ or cal_live_ prefix) |
CAL_BASE_URL | No | https://api.cal.com/v2 | 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
Tools it gives your AI (12)
| Tool | What it does |
|---|---|
| cal_list_bookings | List bookings with optional filters. Optional: status (upcoming|recurring|past|cancelled|unconfirmed), eventTypeId, dateFrom (ISO 8601), dateTo (ISO 8601), limit. |
| cal_get_booking | Get details of a specific booking by its UID. Required: uid. |
| cal_create_booking | Create a new booking. Required: eventTypeId, start (ISO 8601), attendeeName, attendeeEmail, attendeeTimezone. Optional: notes, guests (array of emails), metadata. |
| cal_cancel_booking | Cancel a booking by UID. Required: uid. Optional: cancellationReason. |
| cal_reschedule_booking | Reschedule a booking to a new time. Required: uid, newStart (ISO 8601). Optional: reschedulingReason. |
| cal_list_event_types | List all event types. Optional: teamId, userId to filter by team or user. |
| cal_get_event_type | Get details of a specific event type by ID. Required: id. |
| cal_create_event_type | Create a new event type. Required: title, slug, lengthInMinutes. Optional: description, locations, hidden, metadata. |
| cal_update_event_type | Update an existing event type. Required: id. Optional fields to update: title, slug, lengthInMinutes, description, locations, hidden, metadata. |
| cal_delete_event_type | Delete an event type by ID. Required: id. |
| cal_get_availability | Get available time slots for an event type in a date range. Required: eventTypeId, dateFrom (ISO 8601), dateTo (ISO 8601). Optional: timeZone. |
| cal_list_schedules | List all schedules (working hours and availability rules). |
Signals
- Last commit
- Aug 2026
- Weekly downloads
- 45
- Weekly_downloads
- 47 weekly_downloads
- Tools captured
- 12
Advanced
- Delivery
- mcp-server-cal MCP server → your Ahel connector (mcp.ahel.ai) → your AI.
- Item type
- mcp-server
- Key
io-github-aiwerk-mcp-server-cal- Source
- github.com/aiwerk/mcp-server-cal
github.com/aiwerk/mcp-server-cal
More in Productivity
MCP server
More in Productivityagent-native-calendar
MCP server · builderio
More in Productivitychat-recall
MCP server · munhq
More in Productivitytascan-mcp
MCP server · snowbikemike
More in Productivitygod-prompt-mcp
MCP server · akzar1el
More in Productivitybuggazi
MCP server · jyswee
More in Productivity