@aiwerk/mcp-server-cal
Connects AI assistants to Cal.com for managing bookings, event types, and availability through natural language.
README
@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.
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
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.