mcpField
C
cal-com-automation

cal-com-automation

github.com/sickn33生产力48.8k67 次安装今天更新
代码仓库

关于 cal-com-automation

通过 Rube MCP 调用 Composio 的 Cal 工具包来自动化 Cal.com 日程管理的技能。涵盖预订、可用时段、Webhook、团队和组织信息,操作需要已授权的 Cal.com 连接。

主要功能

  1. 01列出并创建预订
  2. 02查询忙碌时间和可用时段
  3. 03管理预订 Webhook
  4. 04查看和管理团队

适用场景

  1. 01预订前查找可用时段
  2. 02创建或查看预约
  3. 03配置预订事件通知
  4. 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 服务。端点必须根据宿主的要求完成连接和身份验证;每项服务连接仍需使用各自经过授权的账户和权限范围。

  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(无)

使用时机

此技能适用于执行概述中描述的工作流或操作。

限制

  • 仅当任务明确符合上述范围时,才使用此技能。
  • 不要将输出视为环境特定验证、测试或专家审查的替代品。
  • 如果缺少必要的输入、权限、安全边界或成功标准,请暂停并请求澄清。

创建预订可以通知与会者并预留日历时间。写入前,请在已授权的请求中确认准确的活动类型、与会者、时区和时段;重新检查可用情况并报告冲突。Webhook 会将预订数据披露给其目标地址,因此请核实该 URL 以及签名密钥的处理方式。若预订结果不确定,请先核实情况再重试,以避免重复预约。

评论

支持 Markdown