关于 cal-com-automation
通过 Rube MCP 和 Composio Cal 工具包自动化 Cal.com 日程管理,适合需要处理预约、可用时段、团队和 Webhook 的用户。涵盖预约查询与创建等操作。
主要功能
- 01按状态或日期筛选预约
- 02查询忙碌时间和可预约时段
- 03创建预约请求
- 04查看、更新和删除 Webhook
- 05浏览团队及其活动类型
适用场景
- 01查找特定日期范围内的可预约时段
- 02根据选定时段创建预约
- 03管理预约事件通知 Webhook
- 04查看团队及团队活动类型
MCP 相关
通过 Rube MCP 使用 Cal.com 工具。需先连接 Cal.com,并通过 RUBE_SEARCH_TOOLS 获取当前工具架构。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ davepoon/ buildwithclaude --skill cal-com-automation安装后在 Claude Code 中输入/cal-com-automation确认已加载。
详细介绍
通过 Rube MCP 自动化 Cal.com
通过 Rube MCP 使用 Composio 的 Cal 工具包自动执行 Cal.com 日程安排操作。
工具包文档:composio.dev/toolkits/cal
前置条件
- 必须已连接 Rube MCP(可用
RUBE_SEARCH_TOOLS) - 通过
RUBE_MANAGE_CONNECTIONS建立有效的 Cal.com 连接,并使用工具包cal - 始终先调用
RUBE_SEARCH_TOOLS,以获取当前工具架构
设置
获取 Rube MCP:在客户端配置中将 https://rube.app/mcp 添加为 MCP 服务。无需 API 密钥,只需添加端点即可使用。
- 确认
RUBE_SEARCH_TOOLS能正常响应,以验证 Rube MCP 可用 - 使用工具包
cal调用RUBE_MANAGE_CONNECTIONS - 如果连接状态不是 ACTIVE,请通过返回的授权链接完成 Cal.com 身份验证
- 在运行任何工作流之前,确认连接状态显示为 ACTIVE
核心工作流
1. 管理预订
适用场景:用户想要列出、创建或查看预订
工具调用顺序:
CAL_FETCH_ALL_BOOKINGS- 按筛选条件列出所有预订[必需]CAL_POST_NEW_BOOKING_REQUEST- 创建新预订[可选]
列表查询的关键参数:
status:按预订状态筛选('upcoming'、'recurring'、'past'、'cancelled'、'unconfirmed')afterStart:筛选此日期之后开始的预订(ISO 8601)beforeEnd:筛选此日期之前结束的预订(ISO 8601)
创建预订的关键参数:
eventTypeId:预订的事件类型 IDstart:预订开始时间(ISO 8601)end:预订结束时间(ISO 8601)name:参与者姓名email:参与者邮箱timeZone:参与者时区(IANA 格式)language:参与者语言代码metadata:其他元数据对象
注意事项:
- 日期筛选条件使用带时区的 ISO 8601 格式(例如,'2024-01-15T09:00:00Z')
eventTypeId必须引用有效且已启用的事件类型- 创建预订时必须匹配可用时段;请先检查可用性
- 时区必须是有效的 IANA 时区字符串(例如,'America/New_York')
- 状态筛选值必须是指定字符串;无效值会返回空结果
2. 检查可用时间
适用场景:用户想查找空闲/忙碌时间或可用的预订时段
工具调用顺序:
CAL_RETRIEVE_CALENDAR_BUSY_TIMES- 获取忙碌时间段[必需]CAL_GET_AVAILABLE_SLOTS_INFO- 获取具体的可用时段[必需]
关键参数:
dateFrom:检查可用性的开始日期(YYYY-MM-DD)dateTo:检查可用性的结束日期(YYYY-MM-DD)eventTypeId:要检查时段的事件类型timeZone:可用性响应所用的时区loggedInUsersTz:发起请求的用户所在时区
注意事项:
- 忙碌时间表示用户不可用的时段
- 可用时段取决于事件类型的时长和配置
- 日期范围应合理(不要提前数月),以获得准确结果
- 时区会影响时段的显示方式;请始终明确指定
- 可用性会反映日历集成(Google Calendar、Outlook 等)的信息
3. 配置 Webhook
适用场景:用户想要为预订事件设置或管理 Webhook 通知
工具调用顺序:
CAL_RETRIEVE_WEBHOOKS_LIST- 列出现有 Webhook[必需]CAL_GET_WEBHOOK_BY_ID- 获取指定 Webhook 的详细信息[可选]CAL_UPDATE_WEBHOOK_BY_ID- 更新 Webhook 配置[可选]CAL_DELETE_WEBHOOK_BY_ID- 移除 Webhook[可选]
关键参数:
id:用于 GET/UPDATE/DELETE 操作的 Webhook IDsubscriberUrl:Webhook 端点 URLeventTriggers:触发 Webhook 的事件类型数组active:Webhook 是否处于启用状态secret:Webhook 签名密钥
注意事项:
- Webhook URL 必须是可从公网访问的 HTTPS 端点
- 事件触发类型包括:'BOOKING_CREATED'、'BOOKING_RESCHEDULED'、'BOOKING_CANCELLED' 等
- 未启用的 Webhook 不会触发;切换
active以启用或停用 - Webhook 密钥用于验证负载签名
4. 管理团队
适用场景:用户想要创建、查看或管理团队和团队事件类型
工具调用顺序:
CAL_GET_TEAMS_LIST- 列出所有团队[必需]CAL_GET_TEAM_INFORMATION_BY_TEAM_ID- 获取指定团队的详细信息[可选]CAL_CREATE_TEAM_IN_ORGANIZATION- 创建新团队[可选]CAL_RETRIEVE_TEAM_EVENT_TYPES- 列出团队的事件类型[可选]
关键参数:
teamId:团队标识符name:团队名称(用于创建)slug:适合用于 URL 的团队标识符
注意事项:
- 创建团队可能需要组织级权限
- 团队事件类型与个人事件类型分开管理
- 团队 slug 必须符合 URL 安全要求,且在组织内唯一
5. 组织管理
适用场景:用户想要查看组织详情
工具调用顺序:
CAL_GET_ORGANIZATION_ID- 获取组织 ID[必需]
关键参数:(无需参数)
注意事项:
- 创建团队和执行组织级操作需要组织 ID
- 并非所有 Cal.com 账户都有组织;个人计划可能会返回错误
常见模式
创建预订流程
1. Call CAL_GET_AVAILABLE_SLOTS_INFO to find open slots
2. Present available times to the user
3. Call CAL_POST_NEW_BOOKING_REQUEST with selected slot
4. Confirm booking creation response
ID 解析
团队名称 -> 团队 ID:
1. Call CAL_GET_TEAMS_LIST
2. Find team by name in response
3. Extract id field
设置 Webhook
1. Call CAL_RETRIEVE_WEBHOOKS_LIST to check existing hooks
2. Create or update webhook with desired triggers
3. Verify webhook fires on test booking
已知注意事项
日期/时间格式:
- 预订时间:带时区的 ISO 8601 格式(例如,'2024-01-15T09:00:00Z')
- 可用日期:YYYY-MM-DD 格式
- 始终明确指定时区,以免产生歧义
事件类型:
- 事件类型 ID 是整数
- 事件类型定义时长、位置和预订规则
- 已禁用的事件类型无法接受新预订
权限:
- 团队操作需要团队成员身份或管理员权限
- 组织操作需要组织级权限
- 管理 Webhook 需要相应的访问权限
速率限制:
- Cal.com API 会对每个 API 密钥实施速率限制
- 收到 429 响应时应采用退避策略
快速参考
| 任务 | 工具标识 | 关键参数 |
|---|---|---|
| 列出预订 | CAL_FETCH_ALL_BOOKINGS | status, afterStart, beforeEnd |
| 创建预订 | CAL_POST_NEW_BOOKING_REQUEST | eventTypeId, start, end, name, email |
| 获取忙碌时段 | CAL_RETRIEVE_CALENDAR_BUSY_TIMES | dateFrom, dateTo |
| 获取可用时段 | CAL_GET_AVAILABLE_SLOTS_INFO | eventTypeId, dateFrom, dateTo |
| 列出 Webhook | CAL_RETRIEVE_WEBHOOKS_LIST | (无) |
| 获取 Webhook | CAL_GET_WEBHOOK_BY_ID | id |
| 更新 Webhook | CAL_UPDATE_WEBHOOK_BY_ID | id, subscriberUrl, eventTriggers |
| 删除 Webhook | CAL_DELETE_WEBHOOK_BY_ID | id |
| 列出团队 | CAL_GET_TEAMS_LIST | (无) |
| 获取团队 | CAL_GET_TEAM_INFORMATION_BY_TEAM_ID | teamId |
| 创建团队 | CAL_CREATE_TEAM_IN_ORGANIZATION | name, slug |
| 团队事件类型 | CAL_RETRIEVE_TEAM_EVENT_TYPES | teamId |
| 获取组织 ID | CAL_GET_ORGANIZATION_ID | (无) |
由 Composio 提供支持
评论
支持 Markdown