返回顶部
c

calcom-api

Interact with the Cal.com API v2 to manage scheduling, bookings, event types, availability, and calendars. Use this skill when building integrations that need to create or manage bookings, check availability, configure event types, or sync calendars with Cal.com's scheduling infrastructure.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
599
下载量
0
收藏
概述
安装方式
版本历史

calcom-api

# Cal.com API v2 This skill provides guidance for AI agents to interact with the Cal.com API v2, enabling scheduling automation, booking management, and calendar integrations. ## Base URL All API requests should be made to: ``` https://api.cal.com/v2 ``` ## Authentication All API requests require authentication via Bearer token in the Authorization header: ``` Authorization: Bearer cal_<your_api_key> ``` API keys must be prefixed with `cal_`. You can generate API keys from your Cal.com dashboard under Settings > Developer > API Keys. ## Core Concepts ### Event Types Event types define bookable meeting configurations (duration, location, availability rules). Each event type has a unique slug used in booking URLs. ### Bookings Bookings are confirmed appointments created when someone books an event type. Each booking has a unique UID for identification. ### Schedules Schedules define when a user is available for bookings. Users can have multiple schedules with different working hours. ### Slots Slots represent available time windows that can be booked based on event type configuration and user availability. ## Common Operations ### Check Available Slots Before creating a booking, check available time slots: ```http GET /v2/slots?startTime=2024-01-15T00:00:00Z&endTime=2024-01-22T00:00:00Z&eventTypeId=123&eventTypeSlug=30min ``` Query parameters: - `startTime` (required): ISO 8601 start of range - `endTime` (required): ISO 8601 end of range - `eventTypeId` or `eventTypeSlug`: Identify the event type - `timeZone`: Timezone for slot display (default: UTC) Response contains available slots grouped by date. ### Create a Booking ```http POST /v2/bookings Content-Type: application/json { "start": "2024-01-15T10:00:00Z", "eventTypeId": 123, "attendee": { "name": "John Doe", "email": "john@example.com", "timeZone": "America/New_York" }, "meetingUrl": "https://cal.com/team/meeting", "metadata": {} } ``` Required fields: - `start`: ISO 8601 booking start time - `eventTypeId`: ID of the event type to book - `attendee.name`: Attendee's full name - `attendee.email`: Attendee's email address - `attendee.timeZone`: Attendee's timezone ### Get Bookings List bookings with optional filters: ```http GET /v2/bookings?status=upcoming&take=10 ``` Query parameters: - `status`: Filter by status (upcoming, recurring, past, cancelled, unconfirmed) - `attendeeEmail`: Filter by attendee email - `eventTypeId`: Filter by event type - `take`: Number of results (max 250) - `skip`: Pagination offset ### Get a Single Booking ```http GET /v2/bookings/{bookingUid} ``` ### Cancel a Booking ```http POST /v2/bookings/{bookingUid}/cancel Content-Type: application/json { "cancellationReason": "Schedule conflict" } ``` ### Reschedule a Booking ```http POST /v2/bookings/{bookingUid}/reschedule Content-Type: application/json { "start": "2024-01-16T14:00:00Z", "reschedulingReason": "Conflict with another meeting" } ``` ### List Event Types ```http GET /v2/event-types ``` Returns all event types for the authenticated user. ### Get a Single Event Type ```http GET /v2/event-types/{eventTypeId} ``` ### Create an Event Type ```http POST /v2/event-types Content-Type: application/json { "title": "30 Minute Meeting", "slug": "30min", "lengthInMinutes": 30, "locations": [ { "type": "integration", "integration": "cal-video" } ] } ``` ### List Schedules ```http GET /v2/schedules ``` ### Get Default Schedule ```http GET /v2/schedules/default ``` ### Create a Schedule ```http POST /v2/schedules Content-Type: application/json { "name": "Working Hours", "timeZone": "America/New_York", "isDefault": true, "availability": [ { "days": [1, 2, 3, 4, 5], "startTime": "09:00", "endTime": "17:00" } ] } ``` Days are 0-indexed (0 = Sunday, 1 = Monday, etc.). ### Get Current User ```http GET /v2/me ``` Returns the authenticated user's profile information. ## Team and Organization Endpoints For team bookings and organization management, use the organization-scoped endpoints: ### List Organization Teams ```http GET /v2/organizations/{orgId}/teams ``` ### Get Team Event Types ```http GET /v2/organizations/{orgId}/teams/{teamId}/event-types ``` ### Create Team Booking Team event types support different scheduling modes: - `COLLECTIVE`: All team members must attend - `ROUND_ROBIN`: Distributes bookings among team members ## Webhooks Configure webhooks to receive real-time notifications: ### List Webhooks ```http GET /v2/webhooks ``` ### Create a Webhook ```http POST /v2/webhooks Content-Type: application/json { "subscriberUrl": "https://your-app.com/webhook", "triggers": ["BOOKING_CREATED", "BOOKING_CANCELLED"], "active": true } ``` Available triggers: - `BOOKING_CREATED` - `BOOKING_CANCELLED` - `BOOKING_RESCHEDULED` - `BOOKING_CONFIRMED` - `MEETING_STARTED` - `MEETING_ENDED` ## Calendar Integration ### List Connected Calendars ```http GET /v2/calendars ``` ### Check Busy Times ```http GET /v2/calendars/busy-times?startTime=2024-01-15T00:00:00Z&endTime=2024-01-22T00:00:00Z ``` ## Error Handling The API returns standard HTTP status codes: - `200`: Success - `201`: Created - `400`: Bad Request (invalid parameters) - `401`: Unauthorized (invalid or missing API key) - `403`: Forbidden (insufficient permissions) - `404`: Not Found - `422`: Unprocessable Entity (validation error) - `500`: Internal Server Error Error responses include a message field: ```json { "status": "error", "message": "Booking not found" } ``` ## Rate Limiting The API implements rate limiting. If you exceed the limit, you'll receive a `429 Too Many Requests` response. Implement exponential backoff for retries. ## Pagination List endpoints support pagination via `take` and `skip` parameters: - `take`: Number of items to return (default: 10, max: 250) - `skip`: Number of items to skip ## Best Practices 1. Always check slot availability before creating bookings 2. Store booking UIDs for future reference (cancel, reschedule) 3. Handle timezone conversions carefully - always use ISO 8601 format 4. Implement webhook handlers for real-time booking updates 5. Cache event type data to reduce API calls 6. Use appropriate error handling for all API calls ## Additional Resources - [Full API Reference](https://cal.com/docs/api-reference/v2) - [OpenAPI Specification](https://api.cal.com/v2/docs)

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 calcom-1776419962 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 calcom-1776419962 技能

通过命令行安装

skillhub install calcom-1776419962

下载 Zip 包

⬇ 下载 calcom-api v1.0.0

文件大小: 19.17 KB | 发布时间: 2026-4-17 19:48

v1.0.0 最新 2026-4-17 19:48
Cal.com API v2 skill initial release

- Provides integration with Cal.com API v2 for scheduling, bookings, and calendar management.
- Supports event types, bookings, schedules, slots, calendar connection, and team/organization endpoints.
- Includes guidance on authentication, pagination, rate limits, error handling, and webhooks.
- Offers example requests and best practices for automating scheduling workflows.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部