Cal.com MCP
官方通过位于 mcp.cal.com 的托管服务器或本地实例,使用 Model Context Protocol 将 AI 客户端连接到 Cal.com 的日程安排。
你可以用 Cal Com MCP 做什么?
- 查看即将到来的预订 — 使用
get_bookings请求带有日期范围或状态等筛选条件的预订列表。 - 创建和管理活动类型 — 通过
create_event_type及相关工具创建、更新或删除活动类型,例如“快速聊天”。 - 重新安排或取消会议 — 使用
reschedule_booking将预订重新安排到新时间,或使用cancel_booking完全取消。 - 查找可用时间段 — 在安排之前,使用
get_availability检索给定日期范围内的空闲时段。 - 管理您的日程 — 使用
get_schedules和create_schedule查看、创建或修改您的可用性日程。 - 处理预订参与者 — 使用
get_booking_attendees查看预订的所有参与者,或使用add_booking_attendee添加新参与者。
文档
MCP 服务器
通过托管在 mcp.cal.com 的服务器或本地实例,使用模型上下文协议将 AI 客户端连接到 Cal.com 排程。
Cal.com MCP 服务器将 Cal.com API v2 封装在 模型上下文协议 中,让您可以在任何兼容 MCP 的客户端中通过自然语言管理预订、事件类型、日程等。
托管服务器 (mcp.cal.com)
最快的入门方式是直接将您的 MCP 客户端连接到 mcp.cal.com。托管服务器使用 Streamable HTTP 传输和 OAuth 2.1 认证——您的客户端会自动处理授权流程。
连接您的客户端
将您的 MCP 客户端指向托管服务器 URL:
https://mcp.cal.com/mcp
首次连接时,您的客户端会引导您完成 OAuth 授权流程,您需要授予服务器访问您 Cal.com 账户的权限。无需 API 密钥。
将以下内容添加到您的 `claude_desktop_config.json`:* **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
* **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
```json theme={null}
{
"mcpServers": {
"calcom": {
"url": "https://mcp.cal.com/mcp"
}
}
}
```
打开 **设置 → MCP** 并使用 URL `https://mcp.cal.com/mcp` 添加新服务器,或将其添加到您的 `.cursor/mcp.json`:
```json theme={null}
{
"mcpServers": {
"calcom": {
"url": "https://mcp.cal.com/mcp"
}
}
}
```
将服务器添加到您的 VS Code MCP 设置:
```json theme={null}
{
"mcpServers": {
"calcom": {
"url": "https://mcp.cal.com/mcp"
}
}
}
```
自托管服务器 (stdio)
如果您更倾向于在本地运行服务器,可以使用 stdio 传输并配合 API 密钥。这适用于开发或您希望完全控制服务器的情况。
先决条件
- Node.js >= 18
- 一个 Cal.com API 密钥——在 设置 → 开发者 → API 密钥 中生成
连接您的客户端
将以下内容添加到您的 MCP 客户端配置中:
{
"mcpServers": {
"calcom": {
"command": "npx",
"args": ["@calcom/cal-mcp@latest"],
"env": {
"CAL_API_KEY": "cal_live_xxxx"
}
}
}
}
将 cal_live_xxxx 替换为您实际的 API 密钥。
可用工具
MCP 服务器公开了 34 个按类别组织的工具:
用户资料
| 工具 | 描述 |
|---|---|
get_me | 获取您已认证的用户资料 |
update_me | 更新您的用户资料 |
事件类型
| 工具 | 描述 |
|---|---|
get_event_types | 列出所有事件类型 |
get_event_type | 通过 ID 获取特定事件类型 |
create_event_type | 创建新事件类型 |
update_event_type | 更新事件类型 |
delete_event_type | 删除事件类型 |
预订
| 工具 | 描述 |
|---|---|
get_bookings | 列出预订(可选筛选条件) |
get_booking | 通过 UID 获取特定预订 |
create_booking | 创建新预订 |
reschedule_booking | 重新安排预订 |
cancel_booking | 取消预订 |
confirm_booking | 确认待处理的预订 |
mark_booking_absent | 标记预订缺席 |
get_booking_attendees | 获取预订的所有参与者 |
add_booking_attendee | 向预订添加参与者 |
get_booking_attendee | 获取特定参与者 |
日程
| 工具 | 描述 |
|---|---|
get_schedules | 列出所有日程 |
get_schedule | 通过 ID 获取特定日程 |
create_schedule | 创建新日程 |
update_schedule | 更新日程 |
delete_schedule | 删除日程 |
get_default_schedule | 获取您的默认日程 |
可用性
| 工具 | 描述 |
|---|---|
get_availability | 获取可用时间段 |
get_busy_times | 从日历获取忙碌时间 |
会议
| 工具 | 描述 |
|---|---|
get_conferencing_apps | 列出会议应用程序 |
路由表单
| 工具 | 描述 |
|---|---|
calculate_routing_form_slots | 根据路由表单响应计算时间段 |
组织
| 工具 | 描述 |
|---|---|
get_org_memberships | 获取所有组织成员资格 |
create_org_membership | 创建组织成员资格 |
get_org_membership | 获取组织成员资格 |
delete_org_membership | 删除组织成员资格 |
get_org_routing_forms | 获取组织路由表单 |
get_org_routing_form_responses | 获取路由表单响应 |
示例提示
连接后,您可以使用自然语言与 Cal.com 交互:
- "我这周有哪些预订?"
- "创建一个名为'快速聊天'的 30 分钟事件类型"
- "取消我明天与 John 的会议"
- "显示我下周一的可用时间段"
- "将我下午 2 点的会议重新安排到周四下午 3 点"
- "我有哪些事件类型?"