GET
/
v2
/
slots
curl --request GET \
  --url https://api.cal.com/v2/slots \
  --header 'cal-api-version: <cal-api-version>'
{
  "status": "success",
  "data": {
    "2050-09-05": [
      {
        "start": "2050-09-05T09:00:00.000+02:00"
      },
      {
        "start": "2050-09-05T10:00:00.000+02:00"
      }
    ],
    "2050-09-06": [
      {
        "start": "2050-09-06T09:00:00.000+02:00"
      },
      {
        "start": "2050-09-06T10:00:00.000+02:00"
      }
    ]
  }
}

Headers

cal-api-version
string
default:2024-09-04
required

Must be set to 2024-09-04

Query Parameters

start
any
required
  Time starting from which available slots should be checked.

  Must be in UTC timezone as ISO 8601 datestring.
  
  You can pass date without hours which defaults to start of day or specify hours:
  2024-08-13 (will have hours 00:00:00 aka at very beginning of the date) or you can specify hours manually like 2024-08-13T09:00:00Z.
end
any
required
Time until which available slots should be checked.

Must be in UTC timezone as ISO 8601 datestring.

You can pass date without hours which defaults to end of day or specify hours:
2024-08-20 (will have hours 23:59:59 aka at the very end of the date) or you can specify hours manually like 2024-08-20T18:00:00Z.
username
any

The username of the user to get event types for.

eventTypeSlug
any

The slug of the event type for which available slots should be checked. If slug is provided then username must be provided too.

eventTypeId
any

The ID of the event type for which available slots should be checked.

usernames
any

The usernames for which available slots should be checked separated by a comma.

Checking slots by usernames is used mainly for dynamic events where there is no specific event but we just want to know when 2 or more people are available.

Must contain at least 2 usernames.
slotFormat
any

Format of slot times in response. Use 'range' to get start and end times. Use 'time' or omit this query parameter to get only start time.

duration
any

If event type has multiple possible durations then you can specify the desired duration here. Also, if you are fetching slots for a dynamic event then you can specify the duration her which defaults to 30, meaning that returned slots will be each 30 minutes long.

timeZone
any

Time zone in which the available slots should be returned. Defaults to UTC.

Response

200 - application/json
A map of available slots indexed by date, where each date is associated with an array of time slots. If format=range is specified, each slot will be an object with start and end properties denoting start and end of the slot. For seated slots each object will have attendeesCount and bookingUid properties.
{key}
string[]