Holiday Calendars

A Holiday Calendar defines site-wide holiday dates and optional partial-day windows that scheduled resources skip.

List Holiday Calendars

SDK Method

HolidayCalendar.List();

Return Object

FilesList<HolidayCalendar>

Authorization Requirement

Requires a Site-Wide API key, or a User API key or session from a Site Administrator.

Additional Arguments

Example Request

using FilesCom.Models;

try
{
    var holidayCalendarIterator = HolidayCalendar.List();
    await foreach (HolidayCalendar holidayCalendar in holidayCalendarIterator.ListAutoPagingAsync()) {
        // Operate on holidayCalendar
    }
}
catch (FilesCom.NotAuthenticatedException e)
{
    Console.WriteLine($"Authentication Error Occurred ({e.GetType().Name}): " + e.Message);
}
catch (FilesCom.SdkException e)
{
    Console.WriteLine($"Unknown Error Occurred ({e.GetType().Name}): " + e.Message);
}

Show Holiday Calendar

SDK Method

HolidayCalendar.Find();

Return Object

HolidayCalendar

Authorization Requirement

Requires a Site-Wide API key, or a User API key or session from a Site Administrator.

Method Arguments

ArgumentDescription
id
int64
Required
Holiday Calendar ID.

Example Request

using FilesCom.Models;

try
{
    var holidayCalendar = await HolidayCalendar.Find(1L);
    // Operate on holidayCalendar
}
catch (FilesCom.NotAuthenticatedException e)
{
    Console.WriteLine($"Authentication Error Occurred ({e.GetType().Name}): " + e.Message);
}
catch (FilesCom.SdkException e)
{
    Console.WriteLine($"Unknown Error Occurred ({e.GetType().Name}): " + e.Message);
}

Create Holiday Calendar

SDK Method

HolidayCalendar.Create();

Return Object

HolidayCalendar

Authorization Requirement

Requires a Site-Wide API key, or a User API key or session from a Site Administrator.

Method Arguments

ArgumentDescription
definition
object
Required
Holiday rules for the calendar.
name
string
Required
Holiday Calendar name.

Example Request

using FilesCom.Models;

var parameters = new Dictionary<string, object>();
parameters.Add("definition", new Dictionary<string, object> { { "months", new Dictionary<string, object> { { "0", new object[] { new Dictionary<string, object> { { "name", "Good Friday" }, { "function", "easter(year)" }, { "function_modifier", -2 } } } }, { "1", new object[] { new Dictionary<string, object> { { "name", "New Year's Day" }, { "mday", 1 }, { "observed", "to_weekday_if_weekend(date)" } }, new Dictionary<string, object> { { "name", "Third Monday" }, { "week", 3 }, { "wday", 1 } } } }, { "11", new object[] { new Dictionary<string, object> { { "name", "Thanksgiving" }, { "week", 4 }, { "wday", 4 } } } }, { "12", new object[] { new Dictionary<string, object> { { "name", "Christmas Eve Early Close" }, { "mday", 24 }, { "start_time", "13:00" }, { "end_time", "17:00" }, { "year_ranges", new Dictionary<string, object> { { "from", 2026 } } } } } } } } });
parameters.Add("name", "Company Holidays");

try
{
    var holidayCalendar = await HolidayCalendar.Create(parameters);
    // Operate on holidayCalendar
}
catch (FilesCom.NotAuthenticatedException e)
{
    Console.WriteLine($"Authentication Error Occurred ({e.GetType().Name}): " + e.Message);
}
catch (FilesCom.SdkException e)
{
    Console.WriteLine($"Unknown Error Occurred ({e.GetType().Name}): " + e.Message);
}

Update Holiday Calendar

SDK Method

holidayCalendar.Update();

Return Object

HolidayCalendar

Authorization Requirement

Requires a Site-Wide API key, or a User API key or session from a Site Administrator.

Method Arguments

ArgumentDescription
definition
object
Holiday rules for the calendar.
name
string
Holiday Calendar name.

Example Request

using FilesCom.Models;

var parameters = new Dictionary<string, object>();
parameters.Add("definition", new Dictionary<string, object> { { "months", new Dictionary<string, object> { { "0", new object[] { new Dictionary<string, object> { { "name", "Good Friday" }, { "function", "easter(year)" }, { "function_modifier", -2 } } } }, { "1", new object[] { new Dictionary<string, object> { { "name", "New Year's Day" }, { "mday", 1 }, { "observed", "to_weekday_if_weekend(date)" } }, new Dictionary<string, object> { { "name", "Third Monday" }, { "week", 3 }, { "wday", 1 } } } }, { "11", new object[] { new Dictionary<string, object> { { "name", "Thanksgiving" }, { "week", 4 }, { "wday", 4 } } } }, { "12", new object[] { new Dictionary<string, object> { { "name", "Christmas Eve Early Close" }, { "mday", 24 }, { "start_time", "13:00" }, { "end_time", "17:00" }, { "year_ranges", new Dictionary<string, object> { { "from", 2026 } } } } } } } } });

try
{
    // Find the holidayCalendar object by its id.
    var holidayCalendar = await HolidayCalendar.Find(1L);
    await holidayCalendar.Update(parameters);
}
catch (FilesCom.NotAuthenticatedException e)
{
    Console.WriteLine($"Authentication Error Occurred ({e.GetType().Name}): " + e.Message);
}
catch (FilesCom.SdkException e)
{
    Console.WriteLine($"Unknown Error Occurred ({e.GetType().Name}): " + e.Message);
}

Delete Holiday Calendar

SDK Method

holidayCalendar.Delete();

Return Object

No return value.

Authorization Requirement

Requires a Site-Wide API key, or a User API key or session from a Site Administrator.

Example Request

using FilesCom.Models;

var parameters = new Dictionary<string, object>();

try
{
    // Find the holidayCalendar object by its id.
    var holidayCalendar = await HolidayCalendar.Find(1L);
    await holidayCalendar.Delete(parameters);
}
catch (FilesCom.NotAuthenticatedException e)
{
    Console.WriteLine($"Authentication Error Occurred ({e.GetType().Name}): " + e.Message);
}
catch (FilesCom.SdkException e)
{
    Console.WriteLine($"Unknown Error Occurred ({e.GetType().Name}): " + e.Message);
}

The HolidayCalendar Object

Some of the methods above return a HolidayCalendar object. The attributes of this object are listed below.

AttributeDescription
id
int64
Holiday Calendar ID. Set a scheduled resource's holiday_region to custom_ followed by this ID to make it skip the days in this calendar.
name
string
Holiday Calendar name.
definition
object
Holiday rules for the calendar.
created_at
date-time
Creation time.
updated_at
date-time
Last update time.

definition

Holiday rules grouped by month. A definition may contain at most 366 rules and its encoded JSON may be at most 65535 bytes.

AttributeDescription
months
object
Required
Keys 1 through 12 contain rules for that month. Key 0 contains calculated-date rules. At most 366 rules are allowed across all months.

Example definition

{
  "months": {
    "0": [
      {
        "name": "Good Friday",
        "function": "easter(year)",
        "function_modifier": -2
      }
    ],
    "1": [
      {
        "name": "New Year's Day",
        "mday": 1,
        "observed": "to_weekday_if_weekend(date)"
      },
      {
        "name": "Third Monday",
        "week": 3,
        "wday": 1
      }
    ],
    "11": [
      {
        "name": "Thanksgiving",
        "week": 4,
        "wday": 4
      }
    ],
    "12": [
      {
        "name": "Christmas Eve Early Close",
        "mday": 24,
        "start_time": "13:00",
        "end_time": "17:00",
        "year_ranges": {
          "from": 2026
        }
      }
    ]
  }
}

Rule types

Common rule options

Year restrictions