OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  cal-com-automation:通过 Rube MCP 自动化 Cal.com 预约任务

cal-com-automation:通过 Rube MCP 自动化 Cal.com 预约任务

 
  patch ·  2026-02-16 05:59:58 · 3 次点击  · 0 条评论  

名称: cal-com-automation
描述: "通过 Rube MCP (Composio) 自动化 Cal.com 任务:管理预约、检查可用性、配置 Webhook 以及处理团队。务必先搜索工具以获取最新模式。"
requires:
mcp: [rube]


通过 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 服务器。无需 API 密钥,只需添加端点即可工作。

  1. 通过确认 RUBE_SEARCH_TOOLS 有响应,验证 Rube MCP 可用。
  2. 调用 RUBE_MANAGE_CONNECTIONS,指定工具包为 cal
  3. 如果连接状态不是 ACTIVE,请按照返回的认证链接完成 Cal.com 身份验证。
  4. 在运行任何工作流之前,确认连接状态显示为 ACTIVE

核心工作流

1. 管理预约

使用场景:用户希望列出、创建或查看预约。

工具调用顺序
1. CAL_FETCH_ALL_BOOKINGS - 使用筛选条件列出所有预约 [必需]
2. CAL_POST_NEW_BOOKING_REQUEST - 创建新预约 [可选]

列表筛选关键参数
- status:按预约状态筛选('upcoming', 'recurring', 'past', 'cancelled', 'unconfirmed')
- afterStart:筛选此日期之后的预约(ISO 8601 格式)
- beforeEnd:筛选此日期之前的预约(ISO 8601 格式)

创建预约关键参数
- eventTypeId:预约的事件类型 ID
- start:预约开始时间(ISO 8601 格式)
- end:预约结束时间(ISO 8601 格式)
- name:参与者姓名
- email:参与者邮箱
- timeZone:参与者时区(IANA 格式)
- language:参与者语言代码
- metadata:额外的元数据对象

注意事项
- 日期筛选器需使用带时区的 ISO 8601 格式(例如:'2024-01-15T09:00:00Z')
- eventTypeId 必须引用有效且处于激活状态的事件类型
- 创建预约需要匹配一个可用的时间段;请先检查可用性
- 时区必须是有效的 IANA 时区字符串(例如:'America/New_York')
- 状态筛选值是特定字符串;无效值将返回空结果

2. 检查可用性

使用场景:用户希望查找空闲/忙碌时间或可用的预约时间段。

工具调用顺序
1. CAL_RETRIEVE_CALENDAR_BUSY_TIMES - 获取忙碌时间段 [必需]
2. CAL_GET_AVAILABLE_SLOTS_INFO - 获取具体的可用时间段 [必需]

关键参数
- dateFrom:可用性检查的开始日期(YYYY-MM-DD)
- dateTo:可用性检查的结束日期(YYYY-MM-DD)
- eventTypeId:要检查时间段的事件类型
- timeZone:可用性响应的时区
- loggedInUsersTz:请求用户的时区

注意事项
- 忙碌时间显示用户不可用的时间段
- 可用时间段特定于事件类型的持续时间和配置
- 日期范围应合理(不要提前数月),以获得准确结果
- 时区会影响时间段的显示方式;务必明确指定
- 可用性反映了日历集成(Google Calendar、Outlook 等)的状态

3. 配置 Webhook

使用场景:用户希望为预约事件设置或管理 Webhook 通知。

工具调用顺序
1. CAL_RETRIEVE_WEBHOOKS_LIST - 列出现有 Webhook [必需]
2. CAL_GET_WEBHOOK_BY_ID - 获取特定 Webhook 详情 [可选]
3. CAL_UPDATE_WEBHOOK_BY_ID - 更新 Webhook 配置 [可选]
4. CAL_DELETE_WEBHOOK_BY_ID - 删除 Webhook [可选]

关键参数
- id:用于 GET/UPDATE/DELETE 操作的 Webhook ID
- subscriberUrl:Webhook 端点 URL
- eventTriggers:触发 Webhook 的事件类型数组
- active:Webhook 是否处于激活状态
- secret:Webhook 签名密钥

注意事项
- Webhook URL 必须是可公开访问的 HTTPS 端点
- 事件触发器包括:'BOOKING_CREATED', 'BOOKING_RESCHEDULED', 'BOOKING_CANCELLED' 等
- 非激活状态的 Webhook 不会触发;切换 active 参数来启用/禁用
- Webhook 密钥用于负载签名验证

4. 管理团队

使用场景:用户希望创建、查看或管理团队及团队事件类型。

工具调用顺序
1. CAL_GET_TEAMS_LIST - 列出所有团队 [必需]
2. CAL_GET_TEAM_INFORMATION_BY_TEAM_ID - 获取特定团队详情 [可选]
3. CAL_CREATE_TEAM_IN_ORGANIZATION - 创建新团队 [可选]
4. CAL_RETRIEVE_TEAM_EVENT_TYPES - 列出团队的事件类型 [可选]

关键参数
- teamId:团队标识符
- name:团队名称(用于创建)
- slug:URL 友好的团队标识符

注意事项
- 创建团队可能需要组织级别的权限
- 团队事件类型与个人事件类型是分开的
- 团队 slug 必须是 URL 安全的,并且在组织内唯一

5. 组织管理

使用场景:用户希望查看组织详情。

工具调用顺序
1. CAL_GET_ORGANIZATION_ID - 获取组织 ID [必需]

关键参数:(无必需参数)

注意事项
- 组织 ID 是创建团队和执行组织级别操作所必需的
- 并非所有 Cal.com 账户都有组织;个人计划可能会返回错误

通用模式

预约创建流程

1. 调用 CAL_GET_AVAILABLE_SLOTS_INFO 查找空闲时间段
2. 向用户展示可用时间
3. 使用选定的时间段调用 CAL_POST_NEW_BOOKING_REQUEST
4. 确认预约创建响应

ID 解析

团队名称 -> 团队 ID

1. 调用 CAL_GET_TEAMS_LIST
2. 在响应中按名称查找团队
3. 提取 id 字段

Webhook 设置

1. 调用 CAL_RETRIEVE_WEBHOOKS_LIST 检查现有 Webhook
2. 使用所需触发器创建或更新 Webhook
3. 在测试预约上验证 Webhook 是否触发

已知注意事项

日期/时间格式
- 预约时间:带时区的 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 (无)
3 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor