Time Off
Public API

Create Time Off Category

Changed on

Creates a time off category. Category names are unique among all of the company's categories, including disabled and deleted ones; a name collision returns a 409 that identifies the conflicting category so the caller can resolve it (for example by choosing a different name).

OAuth Scopes: time_off:categories.write

post/api/v1/time-off/categories

Request

Request body

namestring required

The name of the time off category. Must be unique among the company's active categories.

unit'HOURS' | 'DAYS' required

The unit of measurement for the time off category.

color'4AADA4' | '56AFDD' | 'B185DA' | 'E8454D' | 'F96422' | 'EEF448' | '6A6A6A' nullable

The color for the category, as a six character hex code without a leading "#". Must be one of the supported category colors. Omit or send null to use the company color.

iconstring nullable

The icon for the category. Omit to use the default icon.

paidboolean

Whether time off in this category is paid.

includeInPayrollboolean

Whether this category should be included in payroll. Only takes effect when the company has payroll with timecard auto sync enabled; otherwise the created category is not included in payroll.

Example request

{
  "name": "Volunteer Time",
  "unit": "HOURS",
  "color": "4AADA4",
  "icon": "palm-trees",
  "paid": true
}

Response

The created time off category.

idinteger

The unique identifier for the time off category.

namestring

The name of the time off category.

unit'HOURS' | 'DAYS'

The unit of measurement for the time off category, in either days or hours.

colorstring nullable

The color associated with the time off category.

iconstring

The icon representing the time off category.

paidboolean

Indicates if the time off category is paid.

includeInPayrollboolean

Indicates if the time off category should be included in payroll.

enabledboolean

Indicates if the time off category is currently in use. A disabled category is retained for historical records but cannot be selected on new time off requests.

createdAtstring date-time

UTC timestamp when the time off category was created.

updatedAtstring date-time nullable

UTC timestamp when the time off category was last updated.

deletedAtstring date-time nullable

UTC timestamp when the time off category was deleted.

Example response

{
  "id": 1,
  "name": "Vacation",
  "unit": "DAYS",
  "color": "00FFAA",
  "icon": "calendar-light",
  "paid": true,
  "includeInPayroll": true,
  "enabled": true,
  "createdAt": "2026-01-01T06:00:00Z",
  "updatedAt": "2026-01-01T06:00:00Z",
  "deletedAt": "2026-01-01T06:00:00Z"
}

Changes