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

[]*HolidayCalendar

Authorization Requirement

Requires either a Site-Wide API key or User API key or session from a User with Site Admin permissions.

Additional Arguments

Example Request

import (
    "fmt"
    "errors"

    files_sdk "github.com/Files-com/files-sdk-go/v3"
    holiday_calendar "github.com/Files-com/files-sdk-go/v3/holidaycalendar"
)

holidayCalendarIterator, err := holiday_calendar.List(files_sdk.HolidayCalendarListParams{})
if err != nil {
    var respErr files_sdk.ResponseError
    if errors.As(err, &respErr) {
        fmt.Println("Response Error Occurred (" + respErr.Type + "): " + respErr.ErrorMessage)
    } else {
        fmt.Printf("Unexpected Error: %s\n", err.Error())
    }
}

for holidayCalendarIterator.Next() {
    holidayCalendar := holidayCalendarIterator.holidayCalendar()
}
err = holidayCalendarIterator.Err()
if err != nil {
    var respErr files_sdk.ResponseError
    if errors.As(err, &respErr) {
        fmt.Println("Response Error Occurred (" + respErr.Type + "): " + respErr.ErrorMessage)
    } else {
        fmt.Printf("Unexpected Error: %s\n", err.Error())
    }
}

Show Holiday Calendar

SDK Method

holidaycalendar.Find()

Return Object

HolidayCalendar

Authorization Requirement

Requires either a Site-Wide API key or User API key or session from a User with Site Admin permissions.

HolidayCalendarFindParams Fields

FieldDescription
Id
int64
Required
Holiday Calendar ID.

Example Request

import (
    "fmt"
    "errors"

    files_sdk "github.com/Files-com/files-sdk-go/v3"
    holiday_calendar "github.com/Files-com/files-sdk-go/v3/holidaycalendar"
)

holidayCalendar, err := holiday_calendar.Find(files_sdk.HolidayCalendarFindParams{Id: 1})
if err != nil {
    var respErr files_sdk.ResponseError
    if errors.As(err, &respErr) {
        fmt.Println("Response Error Occurred (" + respErr.Type + "): " + respErr.ErrorMessage)
    } else {
        fmt.Printf("Unexpected Error: %s\n", err.Error())
    }
}

Create Holiday Calendar

SDK Method

holidaycalendar.Create()

Return Object

HolidayCalendar

Authorization Requirement

Requires either a Site-Wide API key or User API key or session from a User with Site Admin permissions.

HolidayCalendarCreateParams Fields

FieldDescription
Definition
object
Required
Holiday rules for the calendar.
Name
string
Required
Holiday Calendar name.

Example Request

import (
    "fmt"
    "errors"

    files_sdk "github.com/Files-com/files-sdk-go/v3"
    holiday_calendar "github.com/Files-com/files-sdk-go/v3/holidaycalendar"
)

holidayCalendar, err := holiday_calendar.Create(files_sdk.HolidayCalendarCreateParams{
  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}}]}},
  Name: "Company Holidays"
})
if err != nil {
    var respErr files_sdk.ResponseError
    if errors.As(err, &respErr) {
        fmt.Println("Response Error Occurred (" + respErr.Type + "): " + respErr.ErrorMessage)
    } else {
        fmt.Printf("Unexpected Error: %s\n", err.Error())
    }
}

Update Holiday Calendar

SDK Method

holidaycalendar.Update()

Return Object

HolidayCalendar

Authorization Requirement

Requires either a Site-Wide API key or User API key or session from a User with Site Admin permissions.

HolidayCalendarUpdateParams Fields

FieldDescription
Id
int64
Required
Holiday Calendar ID.
Definition
object
Holiday rules for the calendar.
Name
string
Holiday Calendar name.

Example Request

import (
    "fmt"
    "errors"

    files_sdk "github.com/Files-com/files-sdk-go/v3"
    holiday_calendar "github.com/Files-com/files-sdk-go/v3/holidaycalendar"
)

holidayCalendar, err := holiday_calendar.Update(files_sdk.HolidayCalendarUpdateParams{
  Id: 1,
  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}}]}}
})
if err != nil {
    var respErr files_sdk.ResponseError
    if errors.As(err, &respErr) {
        fmt.Println("Response Error Occurred (" + respErr.Type + "): " + respErr.ErrorMessage)
    } else {
        fmt.Printf("Unexpected Error: %s\n", err.Error())
    }
}

Delete Holiday Calendar

SDK Method

holidaycalendar.Delete()

Return Object

No return value.

Authorization Requirement

Requires either a Site-Wide API key or User API key or session from a User with Site Admin permissions.

HolidayCalendarDeleteParams Fields

FieldDescription
Id
int64
Required
Holiday Calendar ID.

Example Request

import (
    "fmt"
    "errors"

    files_sdk "github.com/Files-com/files-sdk-go/v3"
    holiday_calendar "github.com/Files-com/files-sdk-go/v3/holidaycalendar"
)

err := holiday_calendar.Delete(files_sdk.HolidayCalendarDeleteParams{Id: 1})
if err != nil {
    var respErr files_sdk.ResponseError
    if errors.As(err, &respErr) {
        fmt.Println("Response Error Occurred (" + respErr.Type + "): " + respErr.ErrorMessage)
    } else {
        fmt.Printf("Unexpected Error: %s\n", err.Error())
    }
}

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.
CreatedAt
date-time
Creation time.
UpdatedAt
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.

Definition fields

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