Cal.com MCP
官方通过位于 mcp.cal.com 的托管服务器或本地实例,使用 Model Context Protocol 将 AI 客户端连接到 Cal.com 的日程安排。
你可以用 Cal Com MCP 做什么?
- 管理预订 — 让您的助手使用
get_bookings和create_booking等工具列出、创建、重新安排或取消预订。 - 配置事件类型 — 通过
create_event_type和update_event_type创建或更新事件类型,例如 30 分钟的“快速聊天”。 - 检查可用性 — 使用
get_availability和get_busy_times查询已连接日历中的空闲时段或忙碌时段。 - 处理日程安排 — 使用
create_schedule和get_default_schedule创建、更新或获取您的默认日程。 - 管理团队和成员资格 — 通过
create_team_invite和update_team_membership邀请成员或调整团队角色。
文档
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"
}
}
}
```
将以下内容添加到您的 `~/.fx/mcp.json`:
```json theme={null}
{
"mcp": {
"calcom": {
"type": "http",
"url": "https://mcp.cal.com/mcp"
}
}
}
```
然后在 fx 中运行 `/mcp auth calcom --open` 进行授权。有关传输、认证选项和工具发现,请参阅
[fx MCP 文档](https://fx.sh/docs/capabilities/mcp)。
自托管服务器(stdio)
如果您更倾向于在本地运行服务器,可以使用带 API 密钥的 stdio 传输。这对于开发或需要完全控制服务器时非常有用。
前提条件
- 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 密钥。
警告
切勿分享或提交您的 API 密钥。如果泄露,请立即在您的 Cal.com 设置 中轮换它。
工具集
您可以通过在服务器 URL 后附加 toolsets 查询参数来限制服务器为会话注册的工具:
https://mcp.cal.com/mcp?toolsets=bookings,availability
有效的工具集:profile、event-types、bookings、availability、schedules、calendars、teams、organizations、routing-forms、catalog(find_api_operation / describe_api_operation / call_api_operation 元工具)。未知名称将被拒绝并返回 400 invalid_request。省略该参数将注册所有工具;本地工具 get_app_link 和 search_docs 无论选择如何始终注册。对于自托管 stdio 服务器,请改为设置 MCP_TOOLSETS。
可用工具
MCP 服务器公开了 63 个按类别组织的工具:
应用链接
| 工具 | 描述 |
|---|---|
get_app_link | 构建一个 URL,用于在 Cal.com Web 应用中打开预订、事件类型、日程、团队、路由表单或设置页面 |
文档
| 工具 | 描述 |
|---|---|
search_docs | 搜索 Cal.com 产品文档;返回带排名的页面及顶部结果的摘要 |
用户资料
| 工具 | 描述 |
|---|---|
get_me | 获取您已认证的用户资料 |
update_me | 更新您的用户资料 |
事件类型
| 工具 | 描述 |
|---|---|
get_event_types | 列出所有事件类型 |
get_event_type | 按 ID 获取特定事件类型 |
create_event_type | 创建新的事件类型 |
update_event_type | 更新事件类型 |
delete_event_type | 删除事件类型 |
get_event_type_settings | 获取事件类型的设置 |
get_event_type_history | 获取事件类型的变更历史 |
get_scheduling_config | 获取事件类型的日程配置 |
get_crm_sync_errors | 获取事件类型的 CRM 同步错误 |
预订
| 工具 | 描述 |
|---|---|
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_booking_routing_trace | 获取预订的路由追踪信息 |
get_org_team_bookings | 获取组织团队的预订 |
get_org_user_bookings | 获取组织用户的预订 |
日程
| 工具 | 描述 |
|---|---|
get_schedules | 列出所有日程 |
get_schedule | 按 ID 获取特定日程 |
create_schedule | 创建新日程 |
update_schedule | 更新日程 |
delete_schedule | 删除日程 |
get_default_schedule | 获取您的默认日程 |
可用性与日历
| 工具 | 描述 |
|---|---|
get_availability | 获取可用时间段 |
get_busy_times | 从日历获取忙碌时间 |
get_connected_calendars | 列出已连接的日历 |
get_conferencing_apps | 列出会议应用程序 |
团队与成员资格
| 工具 | 描述 |
|---|---|
get_my_teams | 获取您所属的团队 |
get_org_teams | 获取组织团队 |
create_team_invite | 邀请某人加入团队 |
create_team_membership | 创建团队成员资格 |
get_team_memberships | 获取所有团队成员资格 |
get_team_membership | 获取团队成员资格 |
update_team_membership | 更新团队成员资格 |
delete_team_membership | 删除团队成员资格 |
组织
| 工具 | 描述 |
|---|---|
get_org_memberships | 获取所有组织成员资格 |
create_org_membership | 创建组织成员资格 |
get_org_membership | 获取组织成员资格 |
update_org_membership | 更新组织成员资格 |
delete_org_membership | 删除组织成员资格 |
get_org_attributes | 获取组织属性 |
get_org_attribute | 获取组织属性 |
get_attribute_options | 获取属性的选项 |
get_user_attributes | 获取分配给用户的属性 |
assign_attribute_to_user | 为用户分配属性 |
update_user_attribute | 更新分配给用户的属性 |
unassign_attribute_from_user | 取消为用户分配属性 |
get_user_attribute_history | 获取用户的属性分配历史 |
路由表单
| 工具 | 描述 |
|---|---|
calculate_routing_form_slots | 根据路由表单响应计算时间段 |
get_org_routing_forms | 获取组织路由表单 |
get_org_routing_form_responses | 获取路由表单响应 |
API 目录
| 工具 | 描述 |
|---|---|
find_api_operation | 搜索完整的 API v2 操作目录 |
describe_api_operation | 获取 API 操作的输入模式 |
call_api_operation | 从目录执行任何 API v2 操作 |
示例提示
连接后,您可以使用自然语言与 Cal.com 交互:
- “我这周有哪些预订?”
- “创建一个名为‘快速聊天’的 30 分钟事件类型”
- “取消我明天与 John 的会议”
- “显示我下周一的可预约时间段”
- “将我的下午 2 点会议改到周四下午 3 点”
- “我有哪些事件类型?”
相关资源
本文档由 Mintlify 构建和托管,这是一个开发者文档平台。