[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-7f9fda23-ad8e-40c8-81ed-8d4c5e5d6305":3,"$f0ewsfOUSNSu-MAIHJ4-rKx16jmaIbQ4fbIM-_KAB_QY":43},{"id":4,"title":5,"description":6,"categoryId":7,"moduleId":8,"tags":9,"prompt":10,"icon":11,"source":12,"sourceUrl":13,"authorId":14,"authorName":15,"isPublic":16,"stars":17,"runs":18,"createdAt":19,"updatedAt":19,"module":20,"category":27,"packages":34},"7f9fda23-ad8e-40c8-81ed-8d4c5e5d6305","cal-com-automation","通过Rube MCP（Composio）自动化Cal.com任务：管理预订、检查可用性、配置webhooks和处理团队。始终首先搜索当前架构的工具。","cat_prod_automation","mod_productivity","sickn33,productivity","---\nname: cal-com-automation\ndescription: \"Automate Cal.com tasks via Rube MCP (Composio): manage bookings, check availability, configure webhooks, and handle teams. Always search tools first for current schemas.\"\nrisk: critical\nsource: community\ndate_added: \"2026-02-27\"\n---\n\n# Cal.com Automation via Rube MCP\n\nAutomate Cal.com scheduling operations through Composio's Cal toolkit via Rube MCP.\n\n## Prerequisites\n\n- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)\n- Active Cal.com connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `cal`\n- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas\n\n## Setup\n\n**Get Rube MCP**: Add `https:\u002F\u002Frube.app\u002Fmcp` as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.\n\n\n1. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds\n2. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `cal`\n3. If connection is not ACTIVE, follow the returned auth link to complete Cal.com authentication\n4. Confirm connection status shows ACTIVE before running any workflows\n\n## Core Workflows\n\n### 1. Manage Bookings\n\n**When to use**: User wants to list, create, or review bookings\n\n**Tool sequence**:\n1. `CAL_FETCH_ALL_BOOKINGS` - List all bookings with filters [Required]\n2. `CAL_POST_NEW_BOOKING_REQUEST` - Create a new booking [Optional]\n\n**Key parameters for listing**:\n- `status`: Filter by booking status ('upcoming', 'recurring', 'past', 'cancelled', 'unconfirmed')\n- `afterStart`: Filter bookings after this date (ISO 8601)\n- `beforeEnd`: Filter bookings before this date (ISO 8601)\n\n**Key parameters for creation**:\n- `eventTypeId`: Event type ID for the booking\n- `start`: Booking start time (ISO 8601)\n- `end`: Booking end time (ISO 8601)\n- `name`: Attendee name\n- `email`: Attendee email\n- `timeZone`: Attendee timezone (IANA format)\n- `language`: Attendee language code\n- `metadata`: Additional metadata object\n\n**Pitfalls**:\n- Date filters use ISO 8601 format with timezone (e.g., '2024-01-15T09:00:00Z')\n- `eventTypeId` must reference a valid, active event type\n- Booking creation requires matching an available slot; check availability first\n- Time zone must be a valid IANA timezone string (e.g., 'America\u002FNew_York')\n- Status filter values are specific strings; invalid values return empty results\n\n### 2. Check Availability\n\n**When to use**: User wants to find free\u002Fbusy times or available booking slots\n\n**Tool sequence**:\n1. `CAL_RETRIEVE_CALENDAR_BUSY_TIMES` - Get busy time blocks [Required]\n2. `CAL_GET_AVAILABLE_SLOTS_INFO` - Get specific available slots [Required]\n\n**Key parameters**:\n- `dateFrom`: Start date for availability check (YYYY-MM-DD)\n- `dateTo`: End date for availability check (YYYY-MM-DD)\n- `eventTypeId`: Event type to check slots for\n- `timeZone`: Timezone for the availability response\n- `loggedInUsersTz`: Timezone of the requesting user\n\n**Pitfalls**:\n- Busy times show when the user is NOT available\n- Available slots are specific to an event type's duration and configuration\n- Date range should be reasonable (not months in advance) to get accurate results\n- Timezone affects how slots are displayed; always specify explicitly\n- Availability reflects calendar integrations (Google Calendar, Outlook, etc.)\n\n### 3. Configure Webhooks\n\n**When to use**: User wants to set up or manage webhook notifications for booking events\n\n**Tool sequence**:\n1. `CAL_RETRIEVE_WEBHOOKS_LIST` - List existing webhooks [Required]\n2. `CAL_GET_WEBHOOK_BY_ID` - Get specific webhook details [Optional]\n3. `CAL_UPDATE_WEBHOOK_BY_ID` - Update webhook configuration [Optional]\n4. `CAL_DELETE_WEBHOOK_BY_ID` - Remove a webhook [Optional]\n\n**Key parameters**:\n- `id`: Webhook ID for GET\u002FUPDATE\u002FDELETE operations\n- `subscriberUrl`: Webhook endpoint URL\n- `eventTriggers`: Array of event types to trigger on\n- `active`: Whether the webhook is active\n- `secret`: Webhook signing secret\n\n**Pitfalls**:\n- Webhook URLs must be publicly accessible HTTPS endpoints\n- Event triggers include: 'BOOKING_CREATED', 'BOOKING_RESCHEDULED', 'BOOKING_CANCELLED', etc.\n- Inactive webhooks do not fire; toggle `active` to enable\u002Fdisable\n- Webhook secrets are used for payload signature verification\n\n### 4. Manage Teams\n\n**When to use**: User wants to create, view, or manage teams and team event types\n\n**Tool sequence**:\n1. `CAL_GET_TEAMS_LIST` - List all teams [Required]\n2. `CAL_GET_TEAM_INFORMATION_BY_TEAM_ID` - Get specific team details [Optional]\n3. `CAL_CREATE_TEAM_IN_ORGANIZATION` - Create a new team [Optional]\n4. `CAL_RETRIEVE_TEAM_EVENT_TYPES` - List event types for a team [Optional]\n\n**Key parameters**:\n- `teamId`: Team identifier\n- `name`: Team name (for creation)\n- `slug`: URL-friendly team identifier\n\n**Pitfalls**:\n- Team creation may require organization-level permissions\n- Team event types are separate from personal event types\n- Team slugs must be URL-safe and unique within the organization\n\n### 5. Organization Management\n\n**When to use**: User wants to view organization details\n\n**Tool sequence**:\n1. `CAL_GET_ORGANIZATION_ID` - Get the organization ID [Required]\n\n**Key parameters**: (none required)\n\n**Pitfalls**:\n- Organization ID is needed for team creation and org-level operations\n- Not all Cal.com accounts have organizations; personal plans may return errors\n\n## Common Patterns\n\n### Booking Creation Flow\n\n```\n1. Call CAL_GET_AVAILABLE_SLOTS_INFO to find open slots\n2. Present available times to the user\n3. Call CAL_POST_NEW_BOOKING_REQUEST with selected slot\n4. Confirm booking creation response\n```\n\n### ID Resolution\n\n**Team name -> Team ID**:\n```\n1. Call CAL_GET_TEAMS_LIST\n2. Find team by name in response\n3. Extract id field\n```\n\n### Webhook Setup\n\n```\n1. Call CAL_RETRIEVE_WEBHOOKS_LIST to check existing hooks\n2. Create or update webhook with desired triggers\n3. Verify webhook fires on test booking\n```\n\n## Known Pitfalls\n\n**Date\u002FTime Formats**:\n- Booking times: ISO 8601 with timezone (e.g., '2024-01-15T09:00:00Z')\n- Availability dates: YYYY-MM-DD format\n- Always specify timezone explicitly to avoid confusion\n\n**Event Types**:\n- Event type IDs are numeric integers\n- Event types define duration, location, and booking rules\n- Disabled event types cannot accept new bookings\n\n**Permissions**:\n- Team operations require team membership or admin access\n- Organization operations require org-level permissions\n- Webhook management requires appropriate access level\n\n**Rate Limits**:\n- Cal.com API has rate limits per API key\n- Implement backoff on 429 responses\n\n## Quick Reference\n\n| Task | Tool Slug | Key Params |\n|------|-----------|------------|\n| List bookings | CAL_FETCH_ALL_BOOKINGS | status, afterStart, beforeEnd |\n| Create booking | CAL_POST_NEW_BOOKING_REQUEST | eventTypeId, start, end, name, email |\n| Get busy times | CAL_RETRIEVE_CALENDAR_BUSY_TIMES | dateFrom, dateTo |\n| Get available slots | CAL_GET_AVAILABLE_SLOTS_INFO | eventTypeId, dateFrom, dateTo |\n| List webhooks | CAL_RETRIEVE_WEBHOOKS_LIST | (none) |\n| Get webhook | CAL_GET_WEBHOOK_BY_ID | id |\n| Update webhook | CAL_UPDATE_WEBHOOK_BY_ID | id, subscriberUrl, eventTriggers |\n| Delete webhook | CAL_DELETE_WEBHOOK_BY_ID | id |\n| List teams | CAL_GET_TEAMS_LIST | (none) |\n| Get team | CAL_GET_TEAM_INFORMATION_BY_TEAM_ID | teamId |\n| Create team | CAL_CREATE_TEAM_IN_ORGANIZATION | name, slug |\n| Team event types | CAL_RETRIEVE_TEAM_EVENT_TYPES | teamId |\n| Get org ID | CAL_GET_ORGANIZATION_ID | (none) |\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.\n","","imported","https:\u002F\u002Fgithub.com\u002Fsickn33\u002Fantigravity-awesome-skills","user_system_seed","SkillOPIC",true,148,259,"2026-05-16 13:10:00",{"id":8,"name":21,"slug":22,"icon":23,"description":24,"sort":25,"createdAt":26},"效率工具","productivity","mdi-lightning-bolt-outline","文档处理、数据分析、自动化工作流",4,"2026-05-16 12:53:40",{"id":7,"name":28,"slug":29,"icon":30,"description":31,"moduleId":8,"sort":32,"skillCount":33,"createdAt":26},"自动化","automation","mdi-robot-outline","工作流自动化、批处理",3,101,[35],{"id":36,"skillId":4,"version":37,"fileName":38,"fileSize":39,"filePath":40,"fileHash":41,"manifest":42,"createdAt":19},"b22f7768-56f1-46b0-b1f3-42d93a0d5582","1.0.0","cal-com-automation.zip",3188,"uploads\u002Fskills\u002F7f9fda23-ad8e-40c8-81ed-8d4c5e5d6305\u002Fcal-com-automation.zip","479d8689906afed7c331983fc6ebf3d415beacc43463c79b45b303ec179c55bb","[{\"path\":\"SKILL.md\",\"isDirectory\":false,\"size\":7868}]",{"code":44,"message":45,"data":46},200,"success",{"items":47,"stats":48,"page":51},[],{"averageRating":49,"totalRatings":49,"ratingCounts":50},0,[49,49,49,49,49],{"limit":52,"offset":49,"hasMore":53,"nextOffset":52,"ratedOnly":16},15,false]