一键导入
cal-com
Manage bookings, availability, and event types in Cal.com
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Manage bookings, availability, and event types in Cal.com
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Read or update contacts, opportunities, notes, and conversations in GoHighLevel
Save or retrieve records from Airtable bases
Send emails, SMS, or manage contacts via Brevo (formerly Sendinblue)
Check availability, create scheduling links, or list upcoming events in Calendly
Create or update tasks and lists in ClickUp
Call any custom HTTPS endpoint
| name | cal_com |
| display_name | Cal.com |
| description | Manage bookings, availability, and event types in Cal.com |
| auth_type | api_key |
| category | scheduling |
When the user wants their voice agent to check availability, create bookings, or share scheduling links via Cal.com during a call. Common triggers:
Check connection via check_connection("cal_com").
If not connected: Use secret("cal_com") in tool scripts. The system
will automatically emit the correct action card based on the platform
configuration. Do NOT emit action cards manually.
Discover event types (Cal.com supports auto-discovery):
api_call("cal_com", "GET", "/event-types") → list event types with slugs and booking URLsUse the real event type slug or ID in the tool config.
{
"name": "cal_com.get_booking_link",
"description": "Get the Cal.com booking URL for a specific event type",
"params": [
{"name": "event_type_slug", "description": "Cal.com event type slug (e.g. '30min')", "type": "string", "required": true}
],
"script": "let key = secret('cal_com');\nlet resp = http_get_h('https://api.cal.com/v2/event-types', {'Authorization': 'Bearer ' + key});\nif (resp.status < 200 || resp.status >= 300) { throw new Error(`Cal.com ${resp.status}: ${resp.body}`); }\nlet types = JSON.parse(resp.body).data;\nlet match = types.find(t => t.slug === event_type_slug);\nif (!match) { return 'Event type not found. Available: ' + types.map(t => t.slug).join(', '); }\nreturn 'https://cal.com/' + match.profile.username + '/' + match.slug;",
"side_effect": false
}
{
"name": "cal_com.list_bookings",
"description": "List upcoming Cal.com bookings",
"params": [
{"name": "status", "description": "Booking status filter: upcoming, recurring, past, cancelled (default: upcoming)", "type": "string", "required": false}
],
"script": "let key = secret('cal_com');\nlet s = status || 'upcoming';\nlet resp = http_get_h('https://api.cal.com/v2/bookings?status=' + s + '&take=5', {'Authorization': 'Bearer ' + key});\nif (resp.status >= 200 && resp.status < 300) { return resp.body; }\nthrow new Error(`Cal.com ${resp.status}: ${resp.body}`);",
"side_effect": false
}
secret("cal_com") for credentialsapi_call to discover event type slugs instead of askingthrow using resp.status/resp.body