curl --request PUT \
--url https://api-{region}.sesametime.com/schedule/v1/vacation-calendars/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"daysOff": [
{
"date": "<string>"
}
],
"maxDaysOff": 123,
"onlyWithSchedule": true
}
'{
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"employee": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"firstName": "Lucas",
"lastName": "García",
"email": "jsmith@example.com",
"workStatus": "online",
"imageProfileURL": "https://sesame-v2-prod-companies.s3.eu-west-3.amazonaws.com/48351485-1659-413d-bf7f-3ca34fadb521/public-read/g892f1fb-55a3-4e32-9cc9-7c19faa70gaa.png",
"code": 1,
"pin": 1000,
"phone": "+34 111 11 11 11",
"company": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"notificationEmail": "jsmith@example.com",
"language": "<string>",
"createdAt": "2020-01-01T10:00:00+01:00",
"updatedAt": "2020-01-01T10:00:00+01:00"
},
"gender": "female",
"contractId": "<string>",
"nid": "<string>",
"identityNumberType": "dni",
"secondaryIdentityNumberType": "dni",
"secondaryNid": "<string>",
"ssn": "<string>",
"pricePerHour": 123,
"accountNumber": "<string>",
"dateOfBirth": "2023-12-25",
"customFields": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"companyId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"slug": "<string>",
"type": "<string>",
"value": "<string>",
"createdAt": "2020-01-01T10:00:00+01:00",
"updatedAt": "2020-01-01T10:00:00+01:00"
}
],
"createdAt": "2020-01-01T10:00:00+01:00",
"updatedAt": "2020-01-01T10:00:00+01:00",
"status": "active",
"children": 2,
"disability": 25,
"address": "<string>",
"postalCode": "<string>",
"city": "<string>",
"province": "<string>",
"country": "ES",
"nationality": "ES",
"nationalities": [
"ES",
"FR"
],
"personalMail": "jsmith@example.com",
"maritalStatus": "<string>",
"emergencyPhone": "<string>",
"description": "<string>",
"salaryRange": "<string>",
"studyLevel": "<string>",
"professionalCategoryCode": "<string>",
"professionalCategoryDescription": "<string>",
"bic": "<string>",
"jobChargeId": "<string>",
"jobChargeName": "<string>",
"jobChargeDescription": "<string>",
"jobChargeCompetencies": "<string>",
"language": "es-ES",
"workPhone": "+34 111 11 11 11",
"mainRecruiter": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"firstName": "Lucas",
"lastName": "García",
"imageProfileURL": "https://sesame-v2-prod-companies.s3.eu-west-3.amazonaws.com/48351485-1659-413d-bf7f-3ca34fadb521/public-read/g892f1fb-55a3-4e32-9cc9-7c19faa70gaa.png",
"email": "jsmith@example.com",
"workStatus": "online",
"workCheckTypeColor": "#FF0000",
"workCheckTypeName": "Remote"
},
"nfc": "<string>",
"contributionGroupId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"daysOff": [
{
"date": "2023-12-25",
"seconds": 123
}
],
"maxDaysOff": 123,
"year": 123,
"vacationConfiguration": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"employeeRequestEnabled": true,
"needsValidation": true,
"company": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"notificationEmail": "jsmith@example.com",
"language": "<string>",
"createdAt": "2020-01-01T10:00:00+01:00",
"updatedAt": "2020-01-01T10:00:00+01:00"
},
"dayType": "business_day",
"maxDaysOff": 123,
"isDefault": true,
"notAllowedDateRanges": [
{
"from": "<string>",
"to": "<string>"
}
],
"creationDateNextYear": "<string>",
"createdAt": "2020-01-01T10:00:00+01:00",
"updatedAt": "2020-01-01T10:00:00+01:00",
"deletedAt": "<string>"
},
"createdAt": "2020-01-01T10:00:00+01:00",
"updatedAt": "2020-01-01T10:00:00+01:00",
"deletedAt": "2020-01-01T10:00:00+01:00"
},
"meta": {
"currentPage": 1,
"lastPage": 1,
"total": 1,
"perPage": 1
}
}DEPRECATED: This endpoint replaces all days off and has destructive behavior. Use atomic endpoints instead: POST /vacation-calendars/days-off to add days, DELETE /vacation-calendars//days-off to remove specific days, PATCH /vacation-calendars//max-days-off to adjust limits.
curl --request PUT \
--url https://api-{region}.sesametime.com/schedule/v1/vacation-calendars/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"daysOff": [
{
"date": "<string>"
}
],
"maxDaysOff": 123,
"onlyWithSchedule": true
}
'{
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"employee": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"firstName": "Lucas",
"lastName": "García",
"email": "jsmith@example.com",
"workStatus": "online",
"imageProfileURL": "https://sesame-v2-prod-companies.s3.eu-west-3.amazonaws.com/48351485-1659-413d-bf7f-3ca34fadb521/public-read/g892f1fb-55a3-4e32-9cc9-7c19faa70gaa.png",
"code": 1,
"pin": 1000,
"phone": "+34 111 11 11 11",
"company": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"notificationEmail": "jsmith@example.com",
"language": "<string>",
"createdAt": "2020-01-01T10:00:00+01:00",
"updatedAt": "2020-01-01T10:00:00+01:00"
},
"gender": "female",
"contractId": "<string>",
"nid": "<string>",
"identityNumberType": "dni",
"secondaryIdentityNumberType": "dni",
"secondaryNid": "<string>",
"ssn": "<string>",
"pricePerHour": 123,
"accountNumber": "<string>",
"dateOfBirth": "2023-12-25",
"customFields": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"companyId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"slug": "<string>",
"type": "<string>",
"value": "<string>",
"createdAt": "2020-01-01T10:00:00+01:00",
"updatedAt": "2020-01-01T10:00:00+01:00"
}
],
"createdAt": "2020-01-01T10:00:00+01:00",
"updatedAt": "2020-01-01T10:00:00+01:00",
"status": "active",
"children": 2,
"disability": 25,
"address": "<string>",
"postalCode": "<string>",
"city": "<string>",
"province": "<string>",
"country": "ES",
"nationality": "ES",
"nationalities": [
"ES",
"FR"
],
"personalMail": "jsmith@example.com",
"maritalStatus": "<string>",
"emergencyPhone": "<string>",
"description": "<string>",
"salaryRange": "<string>",
"studyLevel": "<string>",
"professionalCategoryCode": "<string>",
"professionalCategoryDescription": "<string>",
"bic": "<string>",
"jobChargeId": "<string>",
"jobChargeName": "<string>",
"jobChargeDescription": "<string>",
"jobChargeCompetencies": "<string>",
"language": "es-ES",
"workPhone": "+34 111 11 11 11",
"mainRecruiter": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"firstName": "Lucas",
"lastName": "García",
"imageProfileURL": "https://sesame-v2-prod-companies.s3.eu-west-3.amazonaws.com/48351485-1659-413d-bf7f-3ca34fadb521/public-read/g892f1fb-55a3-4e32-9cc9-7c19faa70gaa.png",
"email": "jsmith@example.com",
"workStatus": "online",
"workCheckTypeColor": "#FF0000",
"workCheckTypeName": "Remote"
},
"nfc": "<string>",
"contributionGroupId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"daysOff": [
{
"date": "2023-12-25",
"seconds": 123
}
],
"maxDaysOff": 123,
"year": 123,
"vacationConfiguration": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"employeeRequestEnabled": true,
"needsValidation": true,
"company": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"notificationEmail": "jsmith@example.com",
"language": "<string>",
"createdAt": "2020-01-01T10:00:00+01:00",
"updatedAt": "2020-01-01T10:00:00+01:00"
},
"dayType": "business_day",
"maxDaysOff": 123,
"isDefault": true,
"notAllowedDateRanges": [
{
"from": "<string>",
"to": "<string>"
}
],
"creationDateNextYear": "<string>",
"createdAt": "2020-01-01T10:00:00+01:00",
"updatedAt": "2020-01-01T10:00:00+01:00",
"deletedAt": "<string>"
},
"createdAt": "2020-01-01T10:00:00+01:00",
"updatedAt": "2020-01-01T10:00:00+01:00",
"deletedAt": "2020-01-01T10:00:00+01:00"
},
"meta": {
"currentPage": 1,
"lastPage": 1,
"total": 1,
"perPage": 1
}
}API token obtained from Sesame HR Dashboard > Settings > Integrations > API
Calendar ID
Vacation Calendar object that needs to be updated
array of VacationCalendarDayOff
Show child attributes
This limit will have priority over the Vacation Configuration maxDaysOff limit
When enabled (true), the behavior matches Sesame web and app functionality. Days off are auto-accepted if the employee has no manager, generating a history record in the auto-accepted requests log. The manager is assigned to the first owner found (required for accepted requests). With this parameter enabled, days off added via PUT or POST will always be assigned to the first available calendar, not the calendar corresponding to the selected year. This replicates the current panel behavior according to business rules.
Suggestions