Skip to main content
POST
/
schedule
/
v1
/
vacation-calendars
Create Vacation Calendar
curl --request POST \
  --url https://api-{region}.sesametime.com/schedule/v1/vacation-calendars \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "employeeId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "vacationConfigurationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "year": 2021,
  "daysOff": [
    {
      "date": "2023-12-25"
    }
  ],
  "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
  }
}

Authorizations

Authorization
string
header
required

API token obtained from Sesame HR Dashboard > Settings > Integrations > API

Body

application/json

Create a Vacation Calendar

employeeId
string<uuid>
required
vacationConfigurationId
string<uuid>
required
year
integer<YYYY>
required
Example:

2021

daysOff
object[]
required

array of VacationCalendarDayOff

onlyWithSchedule
boolean
default:true

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.

Response

200 - application/json

Array of Objects

data
object
meta
object