{
  "markdown": "# @aiwerk/mcp-server-cal\n\n[![npm version](https://img.shields.io/npm/v/@aiwerk/mcp-server-cal)](https://www.npmjs.com/package/@aiwerk/mcp-server-cal)\n[![npm downloads](https://img.shields.io/npm/dm/@aiwerk/mcp-server-cal)](https://www.npmjs.com/package/@aiwerk/mcp-server-cal)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nCal.com scheduling MCP server - manage bookings, event types, and availability directly from your AI assistant.\n\n## Why this server?\n\nConnect 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.\n\n## Install\n\nTwo ways to run this server — pick the one that fits.\n\n### Option 1 — Hosted (zero setup)\n\nNo local runtime, no env vars on your machine — secrets are AES-256-GCM encrypted server-side via HashiCorp Vault.\n\n1. Sign up at **[aiwerkmcp.com](https://aiwerkmcp.com)**.\n2. Install **Cal.com** from the catalog and paste your `CAL_API_KEY`.\n3. Point your MCP client (Claude.ai, Cursor, Hermes, …) at your hosted endpoint:\n   ```\n   https://bridge.aiwerk.ch/u/<your-user-id>/mcp\n   ```\n   with your Bearer token.\n\nAll 12 tools, 3 resources, and 3 prompts appear. Install other AIWerk recipes from the same bridge.\n\n### Option 2 — Self-hosted (npx)\n\nRun directly — you manage the API key:\n\n```bash\nCAL_API_KEY=cal_live_your_api_key_here npx @aiwerk/mcp-server-cal\n```\n\nOr wire it into your MCP client config — see [Configuration](#configuration) below.\n\n## Tools\n\n| Tool | Description |\n|------|-------------|\n| `cal_list_bookings` | List bookings with optional filters (status, event type, date range) |\n| `cal_get_booking` | Get details of a specific booking by UID |\n| `cal_create_booking` | Create a new booking (event type, attendee info, time) |\n| `cal_cancel_booking` | Cancel a booking by UID |\n| `cal_reschedule_booking` | Reschedule a booking to a new time |\n| `cal_list_event_types` | List all event types |\n| `cal_get_event_type` | Get event type details by ID |\n| `cal_create_event_type` | Create a new event type |\n| `cal_update_event_type` | Update an existing event type |\n| `cal_delete_event_type` | Delete an event type |\n| `cal_get_availability` | Check available slots for an event type in a date range |\n| `cal_list_schedules` | List all schedules (working hours / availability rules) |\n\n## Resources\n\nResources are automatically available in the AI's context — no need to ask for them.\n\n| Resource | URI | Description |\n|----------|-----|-------------|\n| Upcoming Bookings | `cal://bookings/upcoming` | Today's and tomorrow's bookings |\n| Event Types | `cal://event-types` | All configured event types |\n| Schedules | `cal://schedules` | Working hours and availability rules |\n\n## Prompts\n\nReady-made prompt templates for common scheduling tasks.\n\n| Prompt | Description |\n|--------|-------------|\n| `daily-schedule` | Summarize today's schedule with bookings and free slots |\n| `find-free-slot` | Find next available time for a specific event type |\n| `reschedule-suggestion` | Suggest alternative times for rescheduling a booking |\n\n## Configuration\n\n### Claude Desktop\n\nAdd to `~/Library/Application Support/Claude/claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"cal\": {\n      \"command\": \"npx\",\n      \"args\": [\"@aiwerk/mcp-server-cal\"],\n      \"env\": {\n        \"CAL_API_KEY\": \"cal_live_your_api_key_here\"\n      }\n    }\n  }\n}\n```\n\n### Cursor\n\nAdd to `.cursor/mcp.json` in your project or `~/.cursor/mcp.json` globally:\n\n```json\n{\n  \"mcpServers\": {\n    \"cal\": {\n      \"command\": \"npx\",\n      \"args\": [\"@aiwerk/mcp-server-cal\"],\n      \"env\": {\n        \"CAL_API_KEY\": \"cal_live_your_api_key_here\"\n      }\n    }\n  }\n}\n```\n\n### OpenClaw / Universal Recipe\n\n```json\n{\n  \"name\": \"cal\",\n  \"command\": \"npx\",\n  \"args\": [\"@aiwerk/mcp-server-cal\"],\n  \"env\": {\n    \"CAL_API_KEY\": \"${CAL_API_KEY}\"\n  }\n}\n```\n\n## Environment Variables\n\n| Variable | Required | Default | Description |\n|----------|----------|---------|-------------|\n| `CAL_API_KEY` | Yes (on tool call) | - | Cal.com API key (`cal_` or `cal_live_` prefix) |\n| `CAL_BASE_URL` | No | `https://api.cal.com/v2` | Override the Cal.com API base URL |\n\nThe 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).\n\n## Getting Your API Key\n\n1. Go to [Cal.com Settings](https://app.cal.com/settings/developer/api-keys)\n2. Create a new API key\n3. Copy the key (starts with `cal_live_` for production)\n\n## Security\n\n- Never commit your API key to version control\n- Use environment variables or a secrets manager\n- The server only reads `CAL_API_KEY` at tool call time, never logs it\n\n## About AIWerk MCP\n\nPart of the **[AIWerk MCP platform](https://aiwerkmcp.com)** — curated, signed MCP recipes served either as npm packages for self-hosting or through our multi-tenant hosted bridge (`bridge.aiwerk.ch`).\n\nOther AIWerk MCP servers:\n\n- [@aiwerk/mcp-server-imap](https://github.com/AIWerk/mcp-server-imap) — IMAP/SMTP email, provider-agnostic\n- [@aiwerk/mcp-server-wise](https://github.com/AIWerk/mcp-server-wise) — Wise (TransferWise) Personal API, read-only\n- [@aiwerk/mcp-server-clawhub](https://github.com/AIWerk/mcp-server-clawhub) — ClawHub skill catalog\n\nBrowse the full catalog (20+ recipes including GitHub, Linear, Notion, Stripe, …) at [aiwerkmcp.com](https://aiwerkmcp.com).\n\n## Contributing\n\nIssues and PRs are welcome! Please open an issue first for larger changes.\n\n## License\n\nMIT - [AIWerk](https://aiwerk.ch)\n",
  "bytes": 5600,
  "sha": "b0df811ffd917656bfb598520b57c44c62a14431b40e4dcb052cbfb493ea09d6",
  "repo_slug": "aiwerk/mcp-server-cal",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_aiwerk_mcp_server_cal_88056e4d/readme"
}