Orgs / Teams / Event Types
Create an event type
Getting Started
Platform / Managed Users
Platform / Webhooks
Orgs / Attributes
Orgs / Attributes / Options
- GETGet all attribute options
- POSTCreate an attribute option
- DELDelete an attribute option
- PATCHUpdate an attribute option
- GETGet by attribute id all of the attribute options that are assigned to users
- GETGet by attribute slug all of the attribute options that are assigned to users
- GETGet all attribute options for a user
- POSTAssign an attribute to a user
- DELUnassign an attribute from a user
Orgs / Bookings
Orgs / Delegation Credentials
Orgs / Memberships
Orgs / Routing forms
Orgs / Schedules
Orgs / Teams
Orgs / Teams / Bookings
Orgs / Teams / Conferencing
- POSTConnect your conferencing application to a team
- GETGet OAuth conferencing app's auth url for a team
- GETList team conferencing applications
- POSTSet team default conferencing application
- GETGet team default conferencing application
- DELDisconnect team conferencing application
- GETSave conferencing app OAuth credentials
Orgs / Teams / Event Types
Orgs / Teams / Memberships
Orgs / Teams / Routing forms
Orgs / Teams / Routing forms / Responses
Orgs / Teams / Users / Schedules
Orgs / Users / Bookings
Orgs / Users / OOO
Orgs / Users / Schedules
Orgs / Webhooks
Api Keys
Bookings
- GETGet all bookings
- POSTCreate a booking
- GETGet a booking
- POSTReschedule a booking
- POSTCancel a booking
- POSTMark a booking absence
- POSTReassign a booking to auto-selected host
- POSTReassign a booking to a specific host
- POSTConfirm a booking
- POSTDecline a booking
- GETGet 'Add to Calendar' links for a booking
- GETGet 'Booking References' for a booking
Calendars
Conferencing
Destination Calendars
Event Types
Event Types / Webhooks
Managed Orgs
OAuth Clients
Organization Team Verified Resources
- POSTRequest Email Verification Code
- POSTRequest Phone Number Verification Code
- POSTVerify an email for an org team.
- POSTVerify a phone number for an org team.
- GETGet list of verified emails of an org team.
- GETGet list of verified phone numbers of an org team.
- GETGet verified email of an org team by id.
- GETGet verified phone number of an org team by id.
Organizations/Teams Stripe
Routing forms
Schedules
Selected Calendars
Slots
Teams / Event Types
Teams / Memberships
Teams Verified Resources
- POSTRequest Email Verification Code
- POSTRequest Phone Number Verification Code
- POSTVerify an email for a team.
- POSTVerify a phone number for an org team.
- GETGet list of verified emails of a team.
- GETGet list of verified phone numbers of a team.
- GETGet verified email of a team by id.
- GETGet verified phone number of a team by id.
Verified Resources
Orgs / Teams / Event Types
Create an event type
POST
/
v2
/
organizations
/
{orgId}
/
teams
/
{teamId}
/
event-types
curl --request POST \
--url https://api.cal.com/v2/organizations/{orgId}/teams/{teamId}/event-types \
--header 'Content-Type: application/json' \
--data '{
"lengthInMinutes": 60,
"lengthInMinutesOptions": [
15,
30,
60
],
"title": "Learn the secrets of masterchief!",
"slug": "learn-the-secrets-of-masterchief",
"description": "Discover the culinary wonders of the Argentina by making the best flan ever!",
"bookingFields": [
{
"type": "name",
"label": "<string>",
"placeholder": "<string>",
"disableOnPrefill": true
}
],
"disableGuests": true,
"slotInterval": 123,
"minimumBookingNotice": 123,
"beforeEventBuffer": 123,
"afterEventBuffer": 123,
"scheduleId": 123,
"bookingLimitsCount": {
"day": 1,
"week": 2,
"month": 3,
"year": 4,
"disabled": false
},
"onlyShowFirstAvailableSlot": true,
"bookingLimitsDuration": {
"day": 60,
"week": 120,
"month": 180,
"year": 240
},
"bookingWindow": {
"type": "businessDays",
"value": 5,
"rolling": true
},
"offsetStart": 123,
"bookerLayouts": {
"defaultLayout": "month",
"enabledLayouts": [
"month"
]
},
"confirmationPolicy": {
"type": "always",
"noticeThreshold": {
"unit": "minutes",
"count": 30
},
"blockUnconfirmedBookingsInBooker": true
},
"recurrence": {
"interval": 10,
"occurrences": 10,
"frequency": "yearly"
},
"requiresBookerEmailVerification": true,
"hideCalendarNotes": true,
"lockTimeZoneToggleOnBookingPage": true,
"color": {
"lightThemeHex": "#292929",
"darkThemeHex": "#fafafa"
},
"seats": {
"seatsPerTimeSlot": 4,
"showAttendeeInfo": true,
"showAvailabilityCount": true
},
"customName": "{Event type title} between {Organiser} and {Scheduler}",
"destinationCalendar": {
"integration": "<string>",
"externalId": "<string>"
},
"useDestinationCalendarEmail": true,
"hideCalendarEventDetails": true,
"successRedirectUrl": "https://masterchief.com/argentina/flan/video/9129412",
"hideOrganizerEmail": true,
"schedulingType": "collective",
"hosts": [
{
"userId": 123,
"mandatory": true,
"priority": "lowest"
}
],
"assignAllTeamMembers": true,
"locations": [
{
"type": "address",
"address": "123 Example St, City, Country",
"public": true
}
]
}'
{
"status": "success",
"data": {
"id": 1,
"lengthInMinutes": 60,
"lengthInMinutesOptions": [
15,
30,
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>",
"disableOnPrefill": true,
"isDefault": true,
"slug": "<string>",
"required": true
}
],
"disableGuests": true,
"slotInterval": 60,
"minimumBookingNotice": 0,
"beforeEventBuffer": 0,
"afterEventBuffer": 0,
"recurrence": {
"interval": 10,
"occurrences": 10,
"frequency": "yearly"
},
"metadata": {},
"price": 123,
"currency": "<string>",
"lockTimeZoneToggleOnBookingPage": true,
"seatsPerTimeSlot": 123,
"forwardParamsSuccessRedirect": true,
"successRedirectUrl": "<string>",
"isInstantEvent": true,
"seatsShowAvailabilityCount": true,
"scheduleId": 123,
"bookingLimitsCount": {},
"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": 2,
"customName": "<string>",
"destinationCalendar": {
"integration": "<string>",
"externalId": "<string>"
},
"useDestinationCalendarEmail": true,
"hideCalendarEventDetails": true,
"hideOrganizerEmail": true,
"teamId": 123,
"ownerId": 123,
"parentEventTypeId": 123,
"hosts": [
{
"userId": 123,
"mandatory": true,
"priority": "lowest",
"name": "John Doe",
"avatarUrl": "https://cal.com/api/avatar/d95949bc-ccb1-400f-acf6-045c51a16856.png"
}
],
"assignAllTeamMembers": true,
"schedulingType": "roundRobin",
"team": {
"id": 123,
"slug": "<string>",
"bannerUrl": "<string>",
"name": "<string>",
"logoUrl": "<string>",
"weekStart": "<string>",
"brandColor": "<string>",
"darkBrandColor": "<string>",
"theme": "<string>"
}
}
}
Headers
For non-platform customers - value must be Bearer <token>
where <token>
is api key prefixed with cal_
For platform customers - OAuth client secret key
For platform customers - OAuth client ID
Body
application/json
Response
201 - application/json
The response is of type object
.
Was this page helpful?
curl --request POST \
--url https://api.cal.com/v2/organizations/{orgId}/teams/{teamId}/event-types \
--header 'Content-Type: application/json' \
--data '{
"lengthInMinutes": 60,
"lengthInMinutesOptions": [
15,
30,
60
],
"title": "Learn the secrets of masterchief!",
"slug": "learn-the-secrets-of-masterchief",
"description": "Discover the culinary wonders of the Argentina by making the best flan ever!",
"bookingFields": [
{
"type": "name",
"label": "<string>",
"placeholder": "<string>",
"disableOnPrefill": true
}
],
"disableGuests": true,
"slotInterval": 123,
"minimumBookingNotice": 123,
"beforeEventBuffer": 123,
"afterEventBuffer": 123,
"scheduleId": 123,
"bookingLimitsCount": {
"day": 1,
"week": 2,
"month": 3,
"year": 4,
"disabled": false
},
"onlyShowFirstAvailableSlot": true,
"bookingLimitsDuration": {
"day": 60,
"week": 120,
"month": 180,
"year": 240
},
"bookingWindow": {
"type": "businessDays",
"value": 5,
"rolling": true
},
"offsetStart": 123,
"bookerLayouts": {
"defaultLayout": "month",
"enabledLayouts": [
"month"
]
},
"confirmationPolicy": {
"type": "always",
"noticeThreshold": {
"unit": "minutes",
"count": 30
},
"blockUnconfirmedBookingsInBooker": true
},
"recurrence": {
"interval": 10,
"occurrences": 10,
"frequency": "yearly"
},
"requiresBookerEmailVerification": true,
"hideCalendarNotes": true,
"lockTimeZoneToggleOnBookingPage": true,
"color": {
"lightThemeHex": "#292929",
"darkThemeHex": "#fafafa"
},
"seats": {
"seatsPerTimeSlot": 4,
"showAttendeeInfo": true,
"showAvailabilityCount": true
},
"customName": "{Event type title} between {Organiser} and {Scheduler}",
"destinationCalendar": {
"integration": "<string>",
"externalId": "<string>"
},
"useDestinationCalendarEmail": true,
"hideCalendarEventDetails": true,
"successRedirectUrl": "https://masterchief.com/argentina/flan/video/9129412",
"hideOrganizerEmail": true,
"schedulingType": "collective",
"hosts": [
{
"userId": 123,
"mandatory": true,
"priority": "lowest"
}
],
"assignAllTeamMembers": true,
"locations": [
{
"type": "address",
"address": "123 Example St, City, Country",
"public": true
}
]
}'
{
"status": "success",
"data": {
"id": 1,
"lengthInMinutes": 60,
"lengthInMinutesOptions": [
15,
30,
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>",
"disableOnPrefill": true,
"isDefault": true,
"slug": "<string>",
"required": true
}
],
"disableGuests": true,
"slotInterval": 60,
"minimumBookingNotice": 0,
"beforeEventBuffer": 0,
"afterEventBuffer": 0,
"recurrence": {
"interval": 10,
"occurrences": 10,
"frequency": "yearly"
},
"metadata": {},
"price": 123,
"currency": "<string>",
"lockTimeZoneToggleOnBookingPage": true,
"seatsPerTimeSlot": 123,
"forwardParamsSuccessRedirect": true,
"successRedirectUrl": "<string>",
"isInstantEvent": true,
"seatsShowAvailabilityCount": true,
"scheduleId": 123,
"bookingLimitsCount": {},
"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": 2,
"customName": "<string>",
"destinationCalendar": {
"integration": "<string>",
"externalId": "<string>"
},
"useDestinationCalendarEmail": true,
"hideCalendarEventDetails": true,
"hideOrganizerEmail": true,
"teamId": 123,
"ownerId": 123,
"parentEventTypeId": 123,
"hosts": [
{
"userId": 123,
"mandatory": true,
"priority": "lowest",
"name": "John Doe",
"avatarUrl": "https://cal.com/api/avatar/d95949bc-ccb1-400f-acf6-045c51a16856.png"
}
],
"assignAllTeamMembers": true,
"schedulingType": "roundRobin",
"team": {
"id": 123,
"slug": "<string>",
"bannerUrl": "<string>",
"name": "<string>",
"logoUrl": "<string>",
"weekStart": "<string>",
"brandColor": "<string>",
"darkBrandColor": "<string>",
"theme": "<string>"
}
}
}