curl --request GET \
--url https://api.cal.com/v2/event-types \
--header 'cal-api-version: <cal-api-version>'{
"status": "success",
"data": [
{
"id": 1,
"lengthInMinutes": 60,
"title": "Learn the secrets of masterchief!",
"slug": "learn-the-secrets-of-masterchief",
"description": "Discover the culinary wonders of Argentina by making the best flan ever!",
"locations": [
{
"type": "address",
"address": "123 Example St, City, Country",
"public": true
}
],
"bookingFields": [
{
"type": "name",
"label": "<string>",
"placeholder": "<string>",
"isDefault": true,
"slug": "name",
"required": true,
"disableOnPrefill": true
}
],
"disableGuests": true,
"recurrence": {
"interval": 10,
"occurrences": 10,
"frequency": "yearly"
},
"metadata": {},
"price": 123,
"currency": "<string>",
"lockTimeZoneToggleOnBookingPage": true,
"forwardParamsSuccessRedirect": {},
"successRedirectUrl": {},
"isInstantEvent": true,
"scheduleId": 123,
"hidden": true,
"bookingRequiresAuthentication": true,
"ownerId": 10,
"users": [
"<string>"
],
"lengthInMinutesOptions": [
15,
30,
60
],
"slotInterval": 60,
"minimumBookingNotice": 0,
"beforeEventBuffer": 0,
"afterEventBuffer": 0,
"seatsPerTimeSlot": {},
"seatsShowAvailabilityCount": true,
"bookingLimitsCount": {},
"bookerActiveBookingsLimit": {
"maximumActiveBookings": 3,
"offerReschedule": true
},
"onlyShowFirstAvailableSlot": true,
"bookingLimitsDuration": {},
"bookingWindow": [
{
"type": "businessDays",
"value": 5,
"rolling": true
}
],
"bookerLayouts": {
"defaultLayout": "month",
"enabledLayouts": [
"month"
]
},
"confirmationPolicy": {},
"requiresBookerEmailVerification": true,
"hideCalendarNotes": true,
"color": {
"lightThemeHex": "#292929",
"darkThemeHex": "#fafafa"
},
"seats": {
"seatsPerTimeSlot": 4,
"showAttendeeInfo": true,
"showAvailabilityCount": true
},
"offsetStart": 123,
"customName": "<string>",
"destinationCalendar": {
"integration": "<string>",
"externalId": "<string>"
},
"useDestinationCalendarEmail": true,
"hideCalendarEventDetails": true,
"hideOrganizerEmail": true,
"calVideoSettings": {
"disableRecordingForOrganizer": true,
"disableRecordingForGuests": true,
"redirectUrlOnExit": {},
"enableAutomaticRecordingForOrganizer": true,
"enableAutomaticTranscription": true,
"disableTranscriptionForGuests": true,
"disableTranscriptionForOrganizer": true
}
}
]
}Hidden event types are returned only if authentication is provided and it belongs to the event type owner.
Use the optional sortCreatedAt query parameter to order results by creation date (by ID). Accepts “asc” (oldest first) or “desc” (newest first). When not provided, no explicit ordering is applied.
curl --request GET \
--url https://api.cal.com/v2/event-types \
--header 'cal-api-version: <cal-api-version>'{
"status": "success",
"data": [
{
"id": 1,
"lengthInMinutes": 60,
"title": "Learn the secrets of masterchief!",
"slug": "learn-the-secrets-of-masterchief",
"description": "Discover the culinary wonders of Argentina by making the best flan ever!",
"locations": [
{
"type": "address",
"address": "123 Example St, City, Country",
"public": true
}
],
"bookingFields": [
{
"type": "name",
"label": "<string>",
"placeholder": "<string>",
"isDefault": true,
"slug": "name",
"required": true,
"disableOnPrefill": true
}
],
"disableGuests": true,
"recurrence": {
"interval": 10,
"occurrences": 10,
"frequency": "yearly"
},
"metadata": {},
"price": 123,
"currency": "<string>",
"lockTimeZoneToggleOnBookingPage": true,
"forwardParamsSuccessRedirect": {},
"successRedirectUrl": {},
"isInstantEvent": true,
"scheduleId": 123,
"hidden": true,
"bookingRequiresAuthentication": true,
"ownerId": 10,
"users": [
"<string>"
],
"lengthInMinutesOptions": [
15,
30,
60
],
"slotInterval": 60,
"minimumBookingNotice": 0,
"beforeEventBuffer": 0,
"afterEventBuffer": 0,
"seatsPerTimeSlot": {},
"seatsShowAvailabilityCount": true,
"bookingLimitsCount": {},
"bookerActiveBookingsLimit": {
"maximumActiveBookings": 3,
"offerReschedule": true
},
"onlyShowFirstAvailableSlot": true,
"bookingLimitsDuration": {},
"bookingWindow": [
{
"type": "businessDays",
"value": 5,
"rolling": true
}
],
"bookerLayouts": {
"defaultLayout": "month",
"enabledLayouts": [
"month"
]
},
"confirmationPolicy": {},
"requiresBookerEmailVerification": true,
"hideCalendarNotes": true,
"color": {
"lightThemeHex": "#292929",
"darkThemeHex": "#fafafa"
},
"seats": {
"seatsPerTimeSlot": 4,
"showAttendeeInfo": true,
"showAvailabilityCount": true
},
"offsetStart": 123,
"customName": "<string>",
"destinationCalendar": {
"integration": "<string>",
"externalId": "<string>"
},
"useDestinationCalendarEmail": true,
"hideCalendarEventDetails": true,
"hideOrganizerEmail": true,
"calVideoSettings": {
"disableRecordingForOrganizer": true,
"disableRecordingForGuests": true,
"redirectUrlOnExit": {},
"enableAutomaticRecordingForOrganizer": true,
"enableAutomaticTranscription": true,
"disableTranscriptionForGuests": true,
"disableTranscriptionForOrganizer": true
}
}
]
}Must be set to 2024-06-14. If not set to this value, the endpoint will default to an older version.
value must be Bearer <token> where <token> is api key prefixed with cal_ or managed user access token
For platform customers - OAuth client secret key
For platform customers - OAuth client ID
The username of the user to get event types for. If only username provided will get all event types.
Slug of event type to return. Notably, if eventSlug is provided then username must be provided too, because multiple users can have event with same slug.
Get dynamic event type for multiple usernames separated by comma. e.g usernames=alice,bob
slug of the user's organization if he is in one, orgId is not required if using this parameter
ID of the organization of the user you want the get the event-types of, orgSlug is not needed when using this parameter
Sort event types by creation date. When not provided, no explicit ordering is applied.
asc, desc success, error "success"
Show child attributes
1
60
"Learn the secrets of masterchief!"
"learn-the-secrets-of-masterchief"
"Discover the culinary wonders of Argentina by making the best flan ever!"
Show child attributes
only allowed value for type is name. Used for having 1 booking field for both first name and last name.
"name"
This property is always true because it's a default field
true
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. In case of Booker atom need to pass 'name' to defaultFormValues prop with the desired value e.g. defaultFormValues={{name: 'bob'}}. See guide https://cal.com/docs/platform/guides/booking-fields
Boolean to require authentication for booking this event type via api. If true, only authenticated users who are the event-type owner or org/team admin/owner can book this event type.
10
If you want that user can choose between different lengths of the event you can specify them here. Must include the provided lengthInMinutes.
[15, 30, 60]60
0
0
0
Show child attributes
Limit how far in the future this event can be booked
Show child attributes
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
5
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).true
Show child attributes
Show child attributes
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.
Boolean to Hide organizer's email address from the booking screen, email notifications, and calendar events
Cal video settings for the event type
Show child attributes
If true, the organizer will not be able to record the meeting
If true, the guests will not be able to record the meeting
URL to which participants are redirected when they exit the call
If true, enables the automatic recording for the event when organizer joins the call
If true, enables the automatic transcription for the event whenever someone joins the call
If true, the guests will not be able to receive transcription of the meeting
If true, the organizer will not be able to receive transcription of the meeting
Was this page helpful?