关于 cal-com-automation
通过 Rube MCP 调用 Composio 的 Cal 工具包来自动化 Cal.com 日程管理的技能。涵盖预订、可用时段、Webhook、团队和组织信息,操作需要已授权的 Cal.com 连接。
主要功能
- 01列出并创建预订
- 02查询忙碌时间和可用时段
- 03管理预订 Webhook
- 04查看和管理团队
适用场景
- 01预订前查找可用时段
- 02创建或查看预约
- 03配置预订事件通知
- 04查询团队和活动类型信息
MCP 相关
通过 Rube MCP 使用 Composio 的 Cal 工具包。运行工作流前需连接 Rube MCP 并授权 Cal.com 账户。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ sickn33/ agentic-awesome-skills --skill cal-com-automation安装后在 Claude Code 中输入/cal-com-automation确认已加载。
详细介绍
通过 Rube MCP 自动化 Cal.com
通过 Rube MCP 使用 Composio 的 Cal 工具包自动执行 Cal.com 日程安排操作。
前提条件
- 必须已连接 Rube MCP(可用
RUBE_SEARCH_TOOLS) - 通过
RUBE_MANAGE_CONNECTIONS建立有效的 Cal.com 连接,工具包为cal - 始终先调用
RUBE_SEARCH_TOOLS获取当前工具架构
设置
获取 Rube MCP:在客户端配置中将 https://rube.app/mcp 添加为 MCP 服务。端点必须根据宿主的要求完成连接和身份验证;每项服务连接仍需使用各自经过授权的账户和权限范围。
- 确认
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 | (无) |
使用时机
此技能适用于执行概述中描述的工作流或操作。
限制
- 仅当任务明确符合上述范围时,才使用此技能。
- 不要将输出视为环境特定验证、测试或专家审查的替代品。
- 如果缺少必要的输入、权限、安全边界或成功标准,请暂停并请求澄清。
创建预订可以通知与会者并预留日历时间。写入前,请在已授权的请求中确认准确的活动类型、与会者、时区和时段;重新检查可用情况并报告冲突。Webhook 会将预订数据披露给其目标地址,因此请核实该 URL 以及签名密钥的处理方式。若预订结果不确定,请先核实情况再重试,以避免重复预约。