mcpField
C
cal-com-automation

cal-com-automation

github.com/davepoon生产力3.7k117 次安装今天更新
代码仓库

关于 cal-com-automation

通过 Rube MCP 和 Composio Cal 工具包自动化 Cal.com 日程管理,适合需要处理预约、可用时段、团队和 Webhook 的用户。涵盖预约查询与创建等操作。

主要功能

  1. 01按状态或日期筛选预约
  2. 02查询忙碌时间和可预约时段
  3. 03创建预约请求
  4. 04查看、更新和删除 Webhook
  5. 05浏览团队及其活动类型

适用场景

  1. 01查找特定日期范围内的可预约时段
  2. 02根据选定时段创建预约
  3. 03管理预约事件通知 Webhook
  4. 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 密钥,只需添加端点即可使用。

  1. 确认 RUBE_SEARCH_TOOLS 能正常响应,以验证 Rube MCP 可用
  2. 使用工具包 cal 调用 RUBE_MANAGE_CONNECTIONS
  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. 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_BOOKINGSstatus, afterStart, beforeEnd
创建预订CAL_POST_NEW_BOOKING_REQUESTeventTypeId, start, end, name, email
获取忙碌时段CAL_RETRIEVE_CALENDAR_BUSY_TIMESdateFrom, dateTo
获取可用时段CAL_GET_AVAILABLE_SLOTS_INFOeventTypeId, dateFrom, dateTo
列出 WebhookCAL_RETRIEVE_WEBHOOKS_LIST(无)
获取 WebhookCAL_GET_WEBHOOK_BY_IDid
更新 WebhookCAL_UPDATE_WEBHOOK_BY_IDid, subscriberUrl, eventTriggers
删除 WebhookCAL_DELETE_WEBHOOK_BY_IDid
列出团队CAL_GET_TEAMS_LIST(无)
获取团队CAL_GET_TEAM_INFORMATION_BY_TEAM_IDteamId
创建团队CAL_CREATE_TEAM_IN_ORGANIZATIONname, slug
团队事件类型CAL_RETRIEVE_TEAM_EVENT_TYPESteamId
获取组织 IDCAL_GET_ORGANIZATION_ID(无)

由 Composio 提供支持

评论

支持 Markdown