curl --request POST \
--url https://api.cal.com/v2/organizations/{orgId}/users/{userId}/schedules \
--header 'Content-Type: application/json' \
--data '
{
"name": "Catch up hours",
"timeZone": "Europe/Rome",
"isDefault": true,
"availability": [
{
"days": [
"Monday",
"Tuesday"
],
"startTime": "17:00",
"endTime": "19:00"
},
{
"days": [
"Wednesday",
"Thursday"
],
"startTime": "16:00",
"endTime": "20:00"
}
],
"overrides": [
{
"date": "2024-05-20",
"startTime": "18:00",
"endTime": "21:00"
}
]
}
'{
"status": "success",
"data": {
"id": 254,
"ownerId": 478,
"name": "Catch up hours",
"timeZone": "Europe/Rome",
"availability": [
{
"days": [
"Monday",
"Tuesday"
],
"startTime": "17:00",
"endTime": "19:00"
},
{
"days": [
"Wednesday",
"Thursday"
],
"startTime": "16:00",
"endTime": "20:00"
}
],
"isDefault": true,
"overrides": [
{
"date": "2024-05-20",
"startTime": "18:00",
"endTime": "21:00"
}
]
}
}curl --request POST \
--url https://api.cal.com/v2/organizations/{orgId}/users/{userId}/schedules \
--header 'Content-Type: application/json' \
--data '
{
"name": "Catch up hours",
"timeZone": "Europe/Rome",
"isDefault": true,
"availability": [
{
"days": [
"Monday",
"Tuesday"
],
"startTime": "17:00",
"endTime": "19:00"
},
{
"days": [
"Wednesday",
"Thursday"
],
"startTime": "16:00",
"endTime": "20:00"
}
],
"overrides": [
{
"date": "2024-05-20",
"startTime": "18:00",
"endTime": "21:00"
}
]
}
'{
"status": "success",
"data": {
"id": 254,
"ownerId": 478,
"name": "Catch up hours",
"timeZone": "Europe/Rome",
"availability": [
{
"days": [
"Monday",
"Tuesday"
],
"startTime": "17:00",
"endTime": "19:00"
},
{
"days": [
"Wednesday",
"Thursday"
],
"startTime": "16:00",
"endTime": "20:00"
}
],
"isDefault": true,
"overrides": [
{
"date": "2024-05-20",
"startTime": "18:00",
"endTime": "21:00"
}
]
}
}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
"Catch up hours"
Timezone is used to calculate available times when an event using the schedule is booked.
"Europe/Rome"
Each user should have 1 default schedule. If you specified timeZone when creating managed user, then the default schedule will be created with that timezone.
Default schedule means that if an event type is not tied to a specific schedule then the default schedule is used.
true
Each object contains days and times when the user is available. If not passed, the default availability is Monday to Friday from 09:00 to 17:00.
Show child attributes
Array of days when schedule is active.
Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday ["Monday", "Tuesday"]startTime must be a valid time in format HH:MM e.g. 08:00
"08:00"
endTime must be a valid time in format HH:MM e.g. 15:00
"15:00"
[
{
"days": ["Monday", "Tuesday"],
"startTime": "17:00",
"endTime": "19:00"
},
{
"days": ["Wednesday", "Thursday"],
"startTime": "16:00",
"endTime": "20:00"
}
]Need to change availability for a specific date? Add an override.
[
{
"date": "2024-05-20",
"startTime": "18:00",
"endTime": "21:00"
}
]success, error "success"
Show child attributes
254
478
"Catch up hours"
"Europe/Rome"
Show child attributes
Array of days when schedule is active.
Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday ["Monday", "Tuesday"]startTime must be a valid time in format HH:MM e.g. 08:00
"08:00"
endTime must be a valid time in format HH:MM e.g. 15:00
"15:00"
[
{
"days": ["Monday", "Tuesday"],
"startTime": "17:00",
"endTime": "19:00"
},
{
"days": ["Wednesday", "Thursday"],
"startTime": "16:00",
"endTime": "20:00"
}
]true
[
{
"date": "2024-05-20",
"startTime": "18:00",
"endTime": "21:00"
}
]Was this page helpful?