Getting Started
Platform / Cal Provider
Platform / Google Calendar
Platform / Managed Users
Platform / Webhooks
Orgs / Attributes
Orgs / Attributes / Options
Orgs / Event Types
Orgs / Memberships
Orgs / Schedules
Orgs / Teams
Orgs / Teams / Memberships
Orgs / Teams / Schedules
Orgs / Webhooks
Bookings
- GETGet all bookings
- POSTCreate a booking
- GETGet a booking
- POSTReschedule a booking
- POSTCancel a booking
- POSTMark a booking absence
- POSTAutomatically reassign booking to a new host
- POSTReassign a booking to a specific user
- POSTConfirm booking that requires a confirmation
- POSTDecline booking that requires a confirmation
Calendars
Conferencing
Destination Calendars
Event Types
Event Types / Webhooks
Schedules
Selected Calendars
Stripe
Teams / Event Types
Teams / Memberships
Timezones
Update an event type
Bearer authentication header of the form Bearer <token>
, where <token>
is your auth token.
Must be set to 2024-06-14
value must be Bearer <token>
where <token>
either managed user access token or api key prefixed with cal_
If you want that user can choose between different lengths of the event you can specify them here. Must include the provided lengthInMinutes
.
Locations where the event will take place. If not provided, cal video link will be used as the location.
Custom fields that can be added to the booking form when the event is booked by someone. By default booking form has name and email field.
If true, person booking this event't cant add guests via their emails.
Number representing length of each slot when event is booked. By default it equal length of the event type. If event length is 60 minutes then we would have slots 9AM, 10AM, 11AM etc. but if it was changed to 30 minutes then we would have slots 9AM, 9:30AM, 10AM, 10:30AM etc. as the available times to book the 60 minute event.
Minimum number of minutes before the event that a booking can be made.
Time spaces that can be pre-pended before an event to give more time before it.
Time spaces that can be appended after an event to give more time after it.
If you want that this event has different schedule than user's default one you can specify it here.
Limit how many times this event can be booked
The number of bookings per day
The number of bookings per week
The number of bookings per month
The number of bookings per year
This will limit your availability for this event type to one slot per day, scheduled at the earliest available time.
Limit total amount of time that this event can be booked
The duration of bookings per day (must be a multiple of 15)
The duration of bookings per week (must be a multiple of 15)
The duration of bookings per month (must be a multiple of 15)
The duration of bookings per year (must be a multiple of 15)
Limit how far in the future this event can be booked
Whether the window should be business days, calendar days or a range of dates
How many business day into the future can this event be booked
Determines the behavior of the booking window:
- If **true**, the window is rolling. This means the number of available days will always be equal the specified 'value'
and adjust dynamically as bookings are made. For example, if 'value' is 3 and availability is only on Mondays,
a booker attempting to schedule on November 10 will see slots on November 11, 18, and 25. As one of these days
becomes fully booked, a new day (e.g., December 2) will open up to ensure 3 available days are always visible.
- If **false**, the window is fixed. This means the booking window only considers the next 'value' days from the
moment someone is trying to book. For example, if 'value' is 3, availability is only on Mondays, and the current
date is November 10, the booker will only see slots on November 11 because the window is restricted to the next
3 calendar days (November 10–12).
Offset timeslots shown to bookers by a specified number of minutes
Should booker have week, month or column view. Specify default layout and enabled layouts user can pick.
Specify how the booking needs to be manually confirmed before it is pushed to the integrations and a confirmation mail is sent.
The policy that determines when confirmation is required
The notice threshold required before confirmation is needed. Required when type is 'time'.
The unit of time for the notice threshold (e.g., minutes, hours)
The time value for the notice threshold
Create a recurring event type.
Repeats every {count} week | month | year
Repeats for a maximum of {count} events
Color used for event types in light theme
Color used for event types in dark theme
Create an event type with multiple seats.
Number of seats available per time slot
Show attendee information to other guests
Display the count of available seats
Customizable event name with valid variables: {Event type title}, {Organiser}, {Scheduler}, {Location}, {Organiser first name}, {Scheduler first name}, {Scheduler last name}, {Event duration}, {LOCATION}, {HOST/ATTENDEE}, {HOST}, {ATTENDEE}, {USER}
The integration type of the destination calendar. Refer to the /api/v2/calendars endpoint to retrieve the integration type of your connected calendars.
The external ID of the destination calendar. Refer to the /api/v2/calendars endpoint to retrieve the external IDs of your connected calendars.
A valid URL where the booker will redirect to, once the booking is completed successfully
Headers
Must be set to 2024-06-14
value must be Bearer <token>
where <token>
either managed user access token or api key prefixed with cal_
Path Parameters
Body
If you want that user can choose between different lengths of the event you can specify them here. Must include the provided lengthInMinutes
.
Custom fields that can be added to the booking form when the event is booked by someone. By default booking form has name and email field.
only allowed value for type is name
Disable this booking field if the URL contains query parameter with key equal to the slug and prefill it with the provided value. For example, if URL contains query parameter &name=bob
, the name field will be prefilled with this value and disabled.
If true, person booking this event't cant add guests via their emails.
Number representing length of each slot when event is booked. By default it equal length of the event type. If event length is 60 minutes then we would have slots 9AM, 10AM, 11AM etc. but if it was changed to 30 minutes then we would have slots 9AM, 9:30AM, 10AM, 10:30AM etc. as the available times to book the 60 minute event.
Minimum number of minutes before the event that a booking can be made.
Time spaces that can be pre-pended before an event to give more time before it.
Time spaces that can be appended after an event to give more time after it.
If you want that this event has different schedule than user's default one you can specify it here.
Limit how many times this event can be booked
This will limit your availability for this event type to one slot per day, scheduled at the earliest available time.
Limit total amount of time that this event can be booked
The duration of bookings per day (must be a multiple of 15)
The duration of bookings per week (must be a multiple of 15)
The duration of bookings per month (must be a multiple of 15)
The duration of bookings per year (must be a multiple of 15)
Limit how far in the future this event can be booked
Whether the window should be business days, calendar days or a range of dates
businessDays
, calendarDays
, range
How many business day into the future can this event be booked
Determines the behavior of the booking window:
- If **true**, the window is rolling. This means the number of available days will always be equal the specified 'value'
and adjust dynamically as bookings are made. For example, if 'value' is 3 and availability is only on Mondays,
a booker attempting to schedule on November 10 will see slots on November 11, 18, and 25. As one of these days
becomes fully booked, a new day (e.g., December 2) will open up to ensure 3 available days are always visible.
- If **false**, the window is fixed. This means the booking window only considers the next 'value' days from the
moment someone is trying to book. For example, if 'value' is 3, availability is only on Mondays, and the current
date is November 10, the booker will only see slots on November 11 because the window is restricted to the next
3 calendar days (November 10–12).
Offset timeslots shown to bookers by a specified number of minutes
Specify how the booking needs to be manually confirmed before it is pushed to the integrations and a confirmation mail is sent.
The policy that determines when confirmation is required
The notice threshold required before confirmation is needed. Required when type is 'time'.
Customizable event name with valid variables: {Event type title}, {Organiser}, {Scheduler}, {Location}, {Organiser first name}, {Scheduler first name}, {Scheduler last name}, {Event duration}, {LOCATION}, {HOST/ATTENDEE}, {HOST}, {ATTENDEE}, {USER}
The integration type of the destination calendar. Refer to the /api/v2/calendars endpoint to retrieve the integration type of your connected calendars.
The external ID of the destination calendar. Refer to the /api/v2/calendars endpoint to retrieve the external IDs of your connected calendars.
A valid URL where the booker will redirect to, once the booking is completed successfully
Response
success
, error
only allowed value for type is name
name
, email
, phone
, address
, text
, number
, textarea
, select
, multiselect
, multiemail
, checkbox
, radio
, boolean
Disable this booking field if the URL contains query parameter with key equal to the slug and prefill it with the provided value. For example, if URL contains query parameter &name=bob
, the name field will be prefilled with this value and disabled.
This property is always true because it's a default field
If you want that user can choose between different lengths of the event you can specify them here. Must include the provided lengthInMinutes
.
Limit how far in the future this event can be booked
Whether the window should be business days, calendar days or a range of dates
businessDays
, calendarDays
, range
How many business day into the future can this event be booked
Determines the behavior of the booking window:
- If **true**, the window is rolling. This means the number of available days will always be equal the specified 'value'
and adjust dynamically as bookings are made. For example, if 'value' is 3 and availability is only on Mondays,
a booker attempting to schedule on November 10 will see slots on November 11, 18, and 25. As one of these days
becomes fully booked, a new day (e.g., December 2) will open up to ensure 3 available days are always visible.
- If **false**, the window is fixed. This means the booking window only considers the next 'value' days from the
moment someone is trying to book. For example, if 'value' is 3, availability is only on Mondays, and the current
date is November 10, the booker will only see slots on November 11 because the window is restricted to the next
3 calendar days (November 10–12).
The integration type of the destination calendar. Refer to the /api/v2/calendars endpoint to retrieve the integration type of your connected calendars.
The external ID of the destination calendar. Refer to the /api/v2/calendars endpoint to retrieve the external IDs of your connected calendars.
Was this page helpful?