---
title: "Create a holiday"
method: POST
path: "/holidays"
tags: ["Holidays"]
---

# Create a holiday

`POST /holidays`

## Request

- Base URL: `https://api.thrivedesk.com/v1`
- URL: `https://api.thrivedesk.com/v1/holidays`
- Auth: HTTP bearer

Administrators and the account owner only. Ranges may overlap an existing holiday.

Personal access token only. The API supports a second, partner-issued token class that is not part of the public surface. This endpoint does not accept that class.

## Request body

- HolidayCreate
  - `name` string, required
  - `start_date` string, date, required
  - `end_date` string, date, required: Must be on or after `start_date`. Equal dates make a single-day holiday.

## Response `201`

Success.

- HolidayResponse
  - `data` Holiday, required: A dated closure. Inclusive of both endpoints.
    - `id` string, uuid
    - `name` string
    - `start_date` string, date
    - `end_date` string, date
    - `status` 'upcoming' | 'active' | 'past': Derived from today's date in the organization's timezone.
    - `created_at` string, date-time
    - `updated_at` string, date-time

## Other responses

- `401`: Missing or invalid bearer token.
- `403`: Token is valid but does not include a required scope, or the user does not have access to the resource.
- `404`: Resource not found.
- `422`: Request body failed validation.
- `429`: Rate limit exceeded. The `Retry-After` header indicates how long to wait before retrying. See [Pagination and rate limits](/get-started/pagination) for the full rate-limit policy.
- `500`: Unexpected server error.

---

[API](https://skmtc.dev/thrivedesk/apis/thrivedesk-public-api.md) - [All operations](https://skmtc.dev/thrivedesk/apis/thrivedesk-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/thrivedesk/apis/thrivedesk-public-api/revisions/dce9c632a018?raw)
