Create a holiday calendar

POST
/v1/scheduling/holiday_calendars

Applies a country's public holidays, or your own feed, to some hosts as ordinary out of office entries, kept up to date by coss.com. A host who removes one keeps it removed.

Authorization

bearerAuth
headerAuthorizationBearer <token>

A secret API key from the dashboard: coss_live_… for production environments, coss_test_… for sandbox environments.

Header Parameters

Coss-Version?"2026-10-10"

The API version (a date) to use for this request. Defaults to your organization's version, pinned to the latest one when it first used the API and upgraded from the dashboard. The SDK always sends the version it was built for.

Value in"2026-10-10"

Request Body

application/json
  1. body
name*string
Length1 <= length <= 200
country?string

A code from the list of holiday calendars, such as GB.

ics_url?string

Your own feed, https or webcal, read in live environments. Stored encrypted.

Formaturi
Lengthlength <= 2000
hosts?array<string>

These hosts, by id or uid.

Itemsitems <= 1000
host_filter?

Everyone matching these attributes, asked again at every sync.

regions?array<>

Which regional holidays apply, matched against how the calendar names them, such as England. Without this, all of them do; empty, only nationwide ones.

Itemsitems <= 50
delegates?array<string>

Who can be booked in their place on those days, by id or uid, in order.

Itemsitems <= 10
existing_bookings?string

What happens to bookings already on a holiday. leave (the default) only reports them. reassign moves them.

Value in"leave""reassign"

Response Body

The calendar.

application/json
  1. response
object*"scheduling.holiday_calendar"
Value in"scheduling.holiday_calendar"
id*string
name*string
source*string
Value in"country""ics"
country*string|null
hosts*array<string>|null
host_filter*|null
regions*array<string>|null
delegates*array<string>
existing_bookings*string
Value in"leave""reassign"
last_read_at*string|null
last_error*|

Why its feed couldn't be read.

created_at*string
updated_at*string
import { Coss } from "coss";const coss = new Coss({  apiKey: process.env.COSS_API_KEY,  baseUrl: "https://api.coss.com",});const { data, error } = await coss.scheduling.holidayCalendars.create({  name: "UK team",  country: "GB",  host_filter: {    team: "london",  },});
{  "object": "scheduling.holiday_calendar",  "id": "hcal_01kd2m9a0b1c2d3e4f5g6h7j8m",  "name": "UK team",  "source": "country",  "country": "GB",  "hosts": null,  "host_filter": {    "team": "london"  },  "regions": [    "England"  ],  "delegates": [],  "existing_bookings": "leave",  "last_read_at": "2027-01-01T10:00:00.000Z",  "last_error": null,  "created_at": "2027-01-01T10:00:00.000Z",  "updated_at": "2027-01-01T10:00:00.000Z"}