cal-com-automation
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseCal.com Automation via Rube MCP
通过Rube MCP实现Cal.com自动化
Automate Cal.com scheduling operations through Composio's Cal toolkit via Rube MCP.
通过Composio的Cal工具包,借助Rube MCP自动化Cal.com的日程安排操作。
Prerequisites
前提条件
- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
- Active Cal.com connection via with toolkit
RUBE_MANAGE_CONNECTIONScal - Always call first to get current tool schemas
RUBE_SEARCH_TOOLS
- 必须已连接Rube MCP(需可使用RUBE_SEARCH_TOOLS)
- 通过并使用工具包
RUBE_MANAGE_CONNECTIONS建立有效的Cal.com连接cal - 请始终先调用以获取最新的工具架构
RUBE_SEARCH_TOOLS
Setup
设置步骤
Get Rube MCP: Add as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
https://rube.app/mcp- Verify Rube MCP is available by confirming responds
RUBE_SEARCH_TOOLS - Call with toolkit
RUBE_MANAGE_CONNECTIONScal - If connection is not ACTIVE, follow the returned auth link to complete Cal.com authentication
- Confirm connection status shows ACTIVE before running any workflows
获取Rube MCP:在客户端配置中添加作为MCP服务器。无需API密钥——只需添加该端点即可使用。
https://rube.app/mcp- 通过确认能正常响应,验证Rube MCP是否可用
RUBE_SEARCH_TOOLS - 调用并指定工具包
RUBE_MANAGE_CONNECTIONScal - 如果连接状态未激活,请按照返回的授权链接完成Cal.com身份验证
- 在运行任何工作流之前,确认连接状态显示为ACTIVE
Core Workflows
核心工作流
1. Manage Bookings
1. 管理预订
When to use: User wants to list, create, or review bookings
Tool sequence:
- - List all bookings with filters [Required]
CAL_FETCH_ALL_BOOKINGS - - Create a new booking [Optional]
CAL_POST_NEW_BOOKING_REQUEST
Key parameters for listing:
- : Filter by booking status ('upcoming', 'recurring', 'past', 'cancelled', 'unconfirmed')
status - : Filter bookings after this date (ISO 8601)
afterStart - : Filter bookings before this date (ISO 8601)
beforeEnd
Key parameters for creation:
- : Event type ID for the booking
eventTypeId - : Booking start time (ISO 8601)
start - : Booking end time (ISO 8601)
end - : Attendee name
name - : Attendee email
email - : Attendee timezone (IANA format)
timeZone - : Attendee language code
language - : Additional metadata object
metadata
Pitfalls:
- Date filters use ISO 8601 format with timezone (e.g., '2024-01-15T09:00:00Z')
- must reference a valid, active event type
eventTypeId - Booking creation requires matching an available slot; check availability first
- Time zone must be a valid IANA timezone string (e.g., 'America/New_York')
- Status filter values are specific strings; invalid values return empty results
适用场景:用户需要列出、创建或查看预订
工具执行序列:
- - 按筛选条件列出所有预订 [必填]
CAL_FETCH_ALL_BOOKINGS - - 创建新预订 [可选]
CAL_POST_NEW_BOOKING_REQUEST
列出预订的关键参数:
- : 按预订状态筛选('upcoming'、'recurring'、'past'、'cancelled'、'unconfirmed')
status - : 筛选此日期之后的预订(ISO 8601格式)
afterStart - : 筛选此日期之前的预订(ISO 8601格式)
beforeEnd
创建预订的关键参数:
- : 预订对应的活动类型ID
eventTypeId - : 预订开始时间(ISO 8601格式)
start - : 预订结束时间(ISO 8601格式)
end - : 参会人姓名
name - : 参会人邮箱
email - : 参会人时区(IANA格式)
timeZone - : 参会人语言代码
language - : 附加元数据对象
metadata
注意事项:
- 日期筛选器需使用带时区的ISO 8601格式(例如:'2024-01-15T09:00:00Z')
- 必须指向有效的、已激活的活动类型
eventTypeId - 创建预订前需先检查可用时段,确保所选时段有空余
- 时区必须是有效的IANA时区字符串(例如:'America/New_York')
- 状态筛选值为特定字符串,无效值将返回空结果
2. Check Availability
2. 检查可用时段
When to use: User wants to find free/busy times or available booking slots
Tool sequence:
- - Get busy time blocks [Required]
CAL_RETRIEVE_CALENDAR_BUSY_TIMES - - Get specific available slots [Required]
CAL_GET_AVAILABLE_SLOTS_INFO
Key parameters:
- : Start date for availability check (YYYY-MM-DD)
dateFrom - : End date for availability check (YYYY-MM-DD)
dateTo - : Event type to check slots for
eventTypeId - : Timezone for the availability response
timeZone - : Timezone of the requesting user
loggedInUsersTz
Pitfalls:
- Busy times show when the user is NOT available
- Available slots are specific to an event type's duration and configuration
- Date range should be reasonable (not months in advance) to get accurate results
- Timezone affects how slots are displayed; always specify explicitly
- Availability reflects calendar integrations (Google Calendar, Outlook, etc.)
适用场景:用户需要查找空闲/忙碌时段或可预订的时段
工具执行序列:
- - 获取忙碌时段块 [必填]
CAL_RETRIEVE_CALENDAR_BUSY_TIMES - - 获取具体的可用时段 [必填]
CAL_GET_AVAILABLE_SLOTS_INFO
关键参数:
- : 可用时段检查的开始日期(YYYY-MM-DD格式)
dateFrom - : 可用时段检查的结束日期(YYYY-MM-DD格式)
dateTo - : 要检查时段的活动类型
eventTypeId - : 可用时段响应的时区
timeZone - : 请求用户的时区
loggedInUsersTz
注意事项:
- 忙碌时段表示用户不可用的时间
- 可用时段特定于活动类型的时长和配置
- 日期范围应合理(不要提前数月)以获取准确结果
- 时区会影响时段的显示方式,请始终明确指定
- 可用状态会同步日历集成(如Google Calendar、Outlook等)的信息
3. Configure Webhooks
3. 配置Webhook
When to use: User wants to set up or manage webhook notifications for booking events
Tool sequence:
- - List existing webhooks [Required]
CAL_RETRIEVE_WEBHOOKS_LIST - - Get specific webhook details [Optional]
CAL_GET_WEBHOOK_BY_ID - - Update webhook configuration [Optional]
CAL_UPDATE_WEBHOOK_BY_ID - - Remove a webhook [Optional]
CAL_DELETE_WEBHOOK_BY_ID
Key parameters:
- : Webhook ID for GET/UPDATE/DELETE operations
id - : Webhook endpoint URL
subscriberUrl - : Array of event types to trigger on
eventTriggers - : Whether the webhook is active
active - : Webhook signing secret
secret
Pitfalls:
- Webhook URLs must be publicly accessible HTTPS endpoints
- Event triggers include: 'BOOKING_CREATED', 'BOOKING_RESCHEDULED', 'BOOKING_CANCELLED', etc.
- Inactive webhooks do not fire; toggle to enable/disable
active - Webhook secrets are used for payload signature verification
适用场景:用户需要设置或管理预订事件的Webhook通知
工具执行序列:
- - 列出已有的Webhook [必填]
CAL_RETRIEVE_WEBHOOKS_LIST - - 获取特定Webhook的详细信息 [可选]
CAL_GET_WEBHOOK_BY_ID - - 更新Webhook配置 [可选]
CAL_UPDATE_WEBHOOK_BY_ID - - 删除Webhook [可选]
CAL_DELETE_WEBHOOK_BY_ID
关键参数:
- : 用于GET/UPDATE/DELETE操作的Webhook ID
id - : Webhook端点URL
subscriberUrl - : 触发Webhook的事件类型数组
eventTriggers - : Webhook是否处于激活状态
active - : Webhook签名密钥
secret
注意事项:
- Webhook URL必须是可公开访问的HTTPS端点
- 事件触发类型包括:'BOOKING_CREATED'、'BOOKING_RESCHEDULED'、'BOOKING_CANCELLED'等
- 未激活的Webhook不会触发,可通过切换字段启用/禁用
active - Webhook密钥用于验证负载签名
4. Manage Teams
4. 管理团队
When to use: User wants to create, view, or manage teams and team event types
Tool sequence:
- - List all teams [Required]
CAL_GET_TEAMS_LIST - - Get specific team details [Optional]
CAL_GET_TEAM_INFORMATION_BY_TEAM_ID - - Create a new team [Optional]
CAL_CREATE_TEAM_IN_ORGANIZATION - - List event types for a team [Optional]
CAL_RETRIEVE_TEAM_EVENT_TYPES
Key parameters:
- : Team identifier
teamId - : Team name (for creation)
name - : URL-friendly team identifier
slug
Pitfalls:
- Team creation may require organization-level permissions
- Team event types are separate from personal event types
- Team slugs must be URL-safe and unique within the organization
适用场景:用户需要创建、查看或管理团队及团队活动类型
工具执行序列:
- - 列出所有团队 [必填]
CAL_GET_TEAMS_LIST - - 获取特定团队的详细信息 [可选]
CAL_GET_TEAM_INFORMATION_BY_TEAM_ID - - 创建新团队 [可选]
CAL_CREATE_TEAM_IN_ORGANIZATION - - 列出团队的活动类型 [可选]
CAL_RETRIEVE_TEAM_EVENT_TYPES
关键参数:
- : 团队标识符
teamId - : 团队名称(创建时使用)
name - : 适合URL的团队标识符
slug
注意事项:
- 创建团队可能需要组织级权限
- 团队活动类型与个人活动类型相互独立
- 团队slug必须符合URL安全要求,且在组织内唯一
5. Organization Management
5. 组织管理
When to use: User wants to view organization details
Tool sequence:
- - Get the organization ID [Required]
CAL_GET_ORGANIZATION_ID
Key parameters: (none required)
Pitfalls:
- Organization ID is needed for team creation and org-level operations
- Not all Cal.com accounts have organizations; personal plans may return errors
适用场景:用户需要查看组织详细信息
工具执行序列:
- - 获取组织ID [必填]
CAL_GET_ORGANIZATION_ID
关键参数:(无必填参数)
注意事项:
- 组织ID是创建团队和执行组织级操作的必要条件
- 并非所有Cal.com账户都有组织,个人计划可能返回错误
Common Patterns
常见模式
Booking Creation Flow
预订创建流程
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 response1. 调用CAL_GET_AVAILABLE_SLOTS_INFO查找可用时段
2. 向用户展示可用时间
3. 使用所选时段调用CAL_POST_NEW_BOOKING_REQUEST
4. 确认预订创建响应ID Resolution
ID解析
Team name -> Team ID:
1. Call CAL_GET_TEAMS_LIST
2. Find team by name in response
3. Extract id field团队名称 -> 团队ID:
1. 调用CAL_GET_TEAMS_LIST
2. 在响应中按名称查找团队
3. 提取id字段Webhook Setup
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 booking1. 调用CAL_RETRIEVE_WEBHOOKS_LIST检查已有的Webhook
2. 创建或更新带有所需触发条件的Webhook
3. 测试预订以验证Webhook是否触发Known Pitfalls
已知注意事项
Date/Time Formats:
- Booking times: ISO 8601 with timezone (e.g., '2024-01-15T09:00:00Z')
- Availability dates: YYYY-MM-DD format
- Always specify timezone explicitly to avoid confusion
Event Types:
- Event type IDs are numeric integers
- Event types define duration, location, and booking rules
- Disabled event types cannot accept new bookings
Permissions:
- Team operations require team membership or admin access
- Organization operations require org-level permissions
- Webhook management requires appropriate access level
Rate Limits:
- Cal.com API has rate limits per API key
- Implement backoff on 429 responses
日期/时间格式:
- 预订时间:带时区的ISO 8601格式(例如:'2024-01-15T09:00:00Z')
- 可用时段日期:YYYY-MM-DD格式
- 请始终明确指定时区以避免混淆
活动类型:
- 活动类型ID为数字整数
- 活动类型定义了时长、地点和预订规则
- 已禁用的活动类型无法接受新预订
权限:
- 团队操作需要团队成员身份或管理员权限
- 组织操作需要组织级权限
- Webhook管理需要相应的访问级别
速率限制:
- Cal.com API对每个API密钥有速率限制
- 收到429响应时请实现退避机制
Quick Reference
快速参考
| Task | Tool Slug | Key Params |
|---|---|---|
| List bookings | CAL_FETCH_ALL_BOOKINGS | status, afterStart, beforeEnd |
| Create booking | CAL_POST_NEW_BOOKING_REQUEST | eventTypeId, start, end, name, email |
| Get busy times | CAL_RETRIEVE_CALENDAR_BUSY_TIMES | dateFrom, dateTo |
| Get available slots | CAL_GET_AVAILABLE_SLOTS_INFO | eventTypeId, dateFrom, dateTo |
| List webhooks | CAL_RETRIEVE_WEBHOOKS_LIST | (none) |
| Get webhook | CAL_GET_WEBHOOK_BY_ID | id |
| Update webhook | CAL_UPDATE_WEBHOOK_BY_ID | id, subscriberUrl, eventTriggers |
| Delete webhook | CAL_DELETE_WEBHOOK_BY_ID | id |
| List teams | CAL_GET_TEAMS_LIST | (none) |
| Get team | CAL_GET_TEAM_INFORMATION_BY_TEAM_ID | teamId |
| Create team | CAL_CREATE_TEAM_IN_ORGANIZATION | name, slug |
| Team event types | CAL_RETRIEVE_TEAM_EVENT_TYPES | teamId |
| Get org ID | CAL_GET_ORGANIZATION_ID | (none) |
| 任务 | 工具标识 | 关键参数 |
|---|---|---|
| 列出预订 | 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 | (无) |