Skip to main content
The Availability API allows you to retrieve available time slots for event types and users.

API Version

Availability endpoints require the cal-api-version header:

Authentication

Availability endpoints support optional authentication:
  • API Key: Pass via Authorization: Bearer <api-key> header (optional)
  • Access Token: OAuth access token (optional)
  • Client Credentials: Use x-cal-client-id header (optional)

Get Available Slots

Retrieve available time slots for an event type.

Query Parameters

Required Parameters

string
required
Start date in YYYY-MM-DD format (e.g., “2024-12-05”)
string
required
End date in YYYY-MM-DD format (e.g., “2024-12-12”)

Event Type Identification

Choose one of the following methods to identify the event type:

Method 1: By Event Type ID

number
The ID of the event type

Method 2: By Event Type Slug + Username

string
The slug of the event type
string
Username of the event type owner
string
Organization slug (if user is in an organization)

Method 3: By Event Type Slug + Team Slug

string
The slug of the team event type
string
The team’s slug
string
Organization slug (if team is in an organization)

Method 4: Dynamic Event (Multiple Users)

string
Comma-separated list of usernames (minimum 2). Used to find when multiple people are available.
string
Organization slug (required for dynamic events)

Optional Parameters

string
Timezone for the slots (e.g., “America/New_York”). Defaults to UTC.
number
Duration in minutes. Required for:
  • Event types with multiple duration options
  • Dynamic events (defaults to 30)
string
Response format:
  • "time" (default): Returns start times only
  • "range": Returns start and end times
string
When rescheduling, provide the booking UID to exclude its time from busy calculations

Response Format

Default Format (time)

Range Format

Use Cases

Individual User Event Types

There are 4 ways to get slots for individual user event types:
  1. By Event Type ID
  2. By Slug and Username
  3. Within an Organization
  4. Dynamic Event (Multiple Users)

Team Event Types

There are 3 ways to get slots for team event types:
  1. By Event Type ID
  2. By Slug and Team Slug
  3. Within an Organization

Rescheduling

When rescheduling a booking, pass the booking UID to exclude its time from busy calculations:

Reserve a Slot

Reserve a specific time slot temporarily (holds the slot for a short period).

Request Body

Important Notes

Managed Event Types

Managed event types are templates that create individual child event types for each team member. You cannot fetch slots for the parent managed event type directly. Instead:
  1. Find the child event type IDs (assigned to specific users)
  2. Use those child event type IDs to fetch slots as individual user event types

Time Zones

  • All times in the response are in the specified timeZone parameter
  • If no timezone is provided, times are returned in UTC
  • Use IANA timezone format (e.g., “America/New_York”, “Europe/London”)

Performance

  • Keep the date range reasonable (1-4 weeks recommended)
  • Larger date ranges will take longer to compute
  • Consider caching results for frequently accessed event types