Get an event type
curl --request GET \
--url https://api.cal.com/v2/event-types/{eventTypeId} \
--header 'Authorization: <authorization>' \
--header 'cal-api-version: <cal-api-version>'import requests
url = "https://api.cal.com/v2/event-types/{eventTypeId}"
headers = {
"cal-api-version": "<cal-api-version>",
"Authorization": "<authorization>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'cal-api-version': '<cal-api-version>', Authorization: '<authorization>'}
};
fetch('https://api.cal.com/v2/event-types/{eventTypeId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.cal.com/v2/event-types/{eventTypeId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"cal-api-version: <cal-api-version>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.cal.com/v2/event-types/{eventTypeId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("cal-api-version", "<cal-api-version>")
req.Header.Add("Authorization", "<authorization>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.cal.com/v2/event-types/{eventTypeId}")
.header("cal-api-version", "<cal-api-version>")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cal.com/v2/event-types/{eventTypeId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["cal-api-version"] = '<cal-api-version>'
request["Authorization"] = '<authorization>'
response = http.request(request)
puts response.read_body{
"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
}
],
"disableGuests": true,
"recurrence": {
"interval": 1,
"occurrences": 10,
"frequency": "yearly",
"disabled": false
},
"metadata": {},
"price": 123,
"currency": "<string>",
"lockTimeZoneToggleOnBookingPage": true,
"forwardParamsSuccessRedirect": true,
"successRedirectUrl": "<string>",
"isInstantEvent": true,
"scheduleId": 123,
"hidden": true,
"bookingRequiresAuthentication": true,
"ownerId": 10,
"users": [
{
"id": 123,
"uuid": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
"name": "<string>",
"username": "<string>",
"avatarUrl": "<string>",
"weekStart": "<string>",
"brandColor": "<string>",
"darkBrandColor": "<string>",
"metadata": {}
}
],
"bookingUrl": "https://cal.com/john-doe/30min",
"bookingFields": [
{
"field": "name",
"slug": "name",
"variant": "fullName",
"disableOnPrefill": true,
"label": "<string>",
"placeholder": "<string>"
}
],
"lengthInMinutesOptions": [
15,
30,
60
],
"slotInterval": 60,
"minimumBookingNotice": 0,
"beforeEventBuffer": 0,
"afterEventBuffer": 0,
"seatsPerTimeSlot": 123,
"seatsShowAvailabilityCount": true,
"bookingLimitsCount": {
"day": 1,
"week": 2,
"month": 3,
"year": 4
},
"bookerActiveBookingsLimit": {
"maximumActiveBookings": 3,
"offerReschedule": true
},
"onlyShowFirstAvailableSlot": true,
"bookingLimitsDuration": {
"day": 60,
"week": 120,
"month": 180,
"year": 240,
"disabled": false
},
"bookingWindow": [
{
"type": "businessDays",
"value": 5,
"rolling": true,
"disabled": false
}
],
"bookerLayouts": {
"defaultLayout": "month",
"enabledLayouts": [
"month"
]
},
"confirmationPolicy": {
"type": "always",
"blockUnconfirmedBookingsInBooker": true,
"noticeThreshold": {
"unit": "minutes",
"count": 30
},
"disabled": false
},
"bookingProposalCount": 123,
"requiresBookerEmailVerification": true,
"skipAttendeeEmailDeliverabilityCheck": true,
"emailSettings": {
"disableEmailsToAttendees": true,
"disableEmailsToHosts": true,
"disableProposalEmailsToHosts": true
},
"hideCalendarNotes": true,
"color": {
"lightThemeHex": "#292929",
"darkThemeHex": "#fafafa"
},
"seats": {
"seatsPerTimeSlot": 4,
"showAttendeeInfo": true,
"showAvailabilityCount": true,
"disabled": false
},
"offsetStart": 123,
"customName": "<string>",
"destinationCalendar": {
"integration": "<string>",
"externalId": "<string>"
},
"useDestinationCalendarEmail": true,
"hideCalendarEventDetails": true,
"hideOrganizerEmail": true,
"calVideoSettings": {
"disableRecordingForOrganizer": false,
"disableRecordingForGuests": false,
"redirectUrlOnExit": "<string>",
"enableAutomaticRecordingForOrganizer": false,
"enableAutomaticTranscription": false,
"disableTranscriptionForGuests": false,
"disableTranscriptionForOrganizer": false,
"hideTranscriptionForGuests": false,
"hideTranscriptionForOrganizer": false,
"sendTranscriptionEmails": true,
"disableAttendeeRecordingDownloadEmail": false,
"transcriptionLanguage": "multi"
},
"disableCancelling": {
"disabled": true
},
"disableRescheduling": {
"disabled": true,
"minutesBefore": 60
},
"interfaceLanguage": "<string>",
"weekStart": "<string>",
"allowReschedulingPastBookings": true,
"allowReschedulingCancelledBookings": true,
"showOptimizedSlots": true,
"useIsolatedAvailability": true,
"privateNoteEnabled": true,
"privateNoteMode": "duplicate_event",
"privateNoteTemplate": "<string>"
}
}Event Types
Get an event type
Please make sure to pass in the cal-api-version header value as mentioned in the Headers section. Not passing the correct value will default to an older version of this endpoint.
Returns hidden booking fields only to callers who are allowed to view them. If accessed using an OAuth access token, the EVENT_TYPE_READ scope is required.
GET
/
v2
/
event-types
/
{eventTypeId}
Get an event type
curl --request GET \
--url https://api.cal.com/v2/event-types/{eventTypeId} \
--header 'Authorization: <authorization>' \
--header 'cal-api-version: <cal-api-version>'import requests
url = "https://api.cal.com/v2/event-types/{eventTypeId}"
headers = {
"cal-api-version": "<cal-api-version>",
"Authorization": "<authorization>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'cal-api-version': '<cal-api-version>', Authorization: '<authorization>'}
};
fetch('https://api.cal.com/v2/event-types/{eventTypeId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.cal.com/v2/event-types/{eventTypeId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"cal-api-version: <cal-api-version>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.cal.com/v2/event-types/{eventTypeId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("cal-api-version", "<cal-api-version>")
req.Header.Add("Authorization", "<authorization>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.cal.com/v2/event-types/{eventTypeId}")
.header("cal-api-version", "<cal-api-version>")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cal.com/v2/event-types/{eventTypeId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["cal-api-version"] = '<cal-api-version>'
request["Authorization"] = '<authorization>'
response = http.request(request)
puts response.read_body{
"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
}
],
"disableGuests": true,
"recurrence": {
"interval": 1,
"occurrences": 10,
"frequency": "yearly",
"disabled": false
},
"metadata": {},
"price": 123,
"currency": "<string>",
"lockTimeZoneToggleOnBookingPage": true,
"forwardParamsSuccessRedirect": true,
"successRedirectUrl": "<string>",
"isInstantEvent": true,
"scheduleId": 123,
"hidden": true,
"bookingRequiresAuthentication": true,
"ownerId": 10,
"users": [
{
"id": 123,
"uuid": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
"name": "<string>",
"username": "<string>",
"avatarUrl": "<string>",
"weekStart": "<string>",
"brandColor": "<string>",
"darkBrandColor": "<string>",
"metadata": {}
}
],
"bookingUrl": "https://cal.com/john-doe/30min",
"bookingFields": [
{
"field": "name",
"slug": "name",
"variant": "fullName",
"disableOnPrefill": true,
"label": "<string>",
"placeholder": "<string>"
}
],
"lengthInMinutesOptions": [
15,
30,
60
],
"slotInterval": 60,
"minimumBookingNotice": 0,
"beforeEventBuffer": 0,
"afterEventBuffer": 0,
"seatsPerTimeSlot": 123,
"seatsShowAvailabilityCount": true,
"bookingLimitsCount": {
"day": 1,
"week": 2,
"month": 3,
"year": 4
},
"bookerActiveBookingsLimit": {
"maximumActiveBookings": 3,
"offerReschedule": true
},
"onlyShowFirstAvailableSlot": true,
"bookingLimitsDuration": {
"day": 60,
"week": 120,
"month": 180,
"year": 240,
"disabled": false
},
"bookingWindow": [
{
"type": "businessDays",
"value": 5,
"rolling": true,
"disabled": false
}
],
"bookerLayouts": {
"defaultLayout": "month",
"enabledLayouts": [
"month"
]
},
"confirmationPolicy": {
"type": "always",
"blockUnconfirmedBookingsInBooker": true,
"noticeThreshold": {
"unit": "minutes",
"count": 30
},
"disabled": false
},
"bookingProposalCount": 123,
"requiresBookerEmailVerification": true,
"skipAttendeeEmailDeliverabilityCheck": true,
"emailSettings": {
"disableEmailsToAttendees": true,
"disableEmailsToHosts": true,
"disableProposalEmailsToHosts": true
},
"hideCalendarNotes": true,
"color": {
"lightThemeHex": "#292929",
"darkThemeHex": "#fafafa"
},
"seats": {
"seatsPerTimeSlot": 4,
"showAttendeeInfo": true,
"showAvailabilityCount": true,
"disabled": false
},
"offsetStart": 123,
"customName": "<string>",
"destinationCalendar": {
"integration": "<string>",
"externalId": "<string>"
},
"useDestinationCalendarEmail": true,
"hideCalendarEventDetails": true,
"hideOrganizerEmail": true,
"calVideoSettings": {
"disableRecordingForOrganizer": false,
"disableRecordingForGuests": false,
"redirectUrlOnExit": "<string>",
"enableAutomaticRecordingForOrganizer": false,
"enableAutomaticTranscription": false,
"disableTranscriptionForGuests": false,
"disableTranscriptionForOrganizer": false,
"hideTranscriptionForGuests": false,
"hideTranscriptionForOrganizer": false,
"sendTranscriptionEmails": true,
"disableAttendeeRecordingDownloadEmail": false,
"transcriptionLanguage": "multi"
},
"disableCancelling": {
"disabled": true
},
"disableRescheduling": {
"disabled": true,
"minutesBefore": 60
},
"interfaceLanguage": "<string>",
"weekStart": "<string>",
"allowReschedulingPastBookings": true,
"allowReschedulingCancelledBookings": true,
"showOptimizedSlots": true,
"useIsolatedAvailability": true,
"privateNoteEnabled": true,
"privateNoteMode": "duplicate_event",
"privateNoteTemplate": "<string>"
}
}Headers
Must be set to 2026-06-12. If not set to this value, the endpoint will default to an older version.
Example:
"2026-06-12"
value must be Bearer <token> where <token> is api key prefixed with cal_, managed user access token, or OAuth access token
Path Parameters
Numeric event type ID or its UUID. Accepts the canonical UUID or its short-uuid (Flickr Base58) form, e.g. the one in an app.cal.com/links/{uuid} URL.
Was this page helpful?