v1

latestOpenAPI 3.1.02026-07-26294215839.4 KB
Scheduling
Public API

Create Schedule

Creates a new schedule for the company. Rejects duplicate schedule data for the same location and configuration.

OAuth Scopes: scheduling:schedules.write, time_tracking.write

post/api/v1/scheduling/schedules

Request body

namestring required

The name of the schedule

locationIdinteger required

The ID of the location the schedule belongs to

timezonestring nullable

The timezone of the schedule. Required for remote locations. For non-remote locations, the location timezone is used.

startOfWeekstring required

The starting day of the week for the schedule

earlyClockInThresholdinteger

The threshold (in minutes) that an employee is allowed to clock in early to a shift on this schedule

lateClockInThresholdinteger nullable

The threshold (in minutes) after a shift starts before an employee is considered late clocking in

earlyClockOutThresholdinteger nullable

The threshold (in minutes) before a shift ends within which an employee is considered to have clocked out early

lateClockOutThresholdinteger nullable

The threshold (in minutes) after a shift ends before an employee is considered to have clocked out late

managerUserIdsinteger[]

User IDs of managers for this schedule

employeeIdsinteger[]

Employee IDs assigned to this schedule

Example request

{
  "name": "Morning Shift",
  "locationId": 1,
  "timezone": "America/Denver",
  "startOfWeek": "Monday",
  "earlyClockInThreshold": 15,
  "lateClockInThreshold": 10,
  "earlyClockOutThreshold": 5,
  "lateClockOutThreshold": 15,
  "managerUserIds": [
    1,
    2,
    3
  ],
  "employeeIds": [
    10,
    20,
    30
  ]
}

Response

Schedule created successfully

idstring uuid

The UUID of the schedule

namestring

The name of the schedule

locationIdinteger

The ID of the location the schedule belongs to

timezonestring

The timezone of the schedule, provide if location is missing timezone

startOfWeekstring

The starting day of the week for the schedule

earlyClockInThresholdinteger

The threshold (in minutes) that an employee is allowed to clock in early to a shift on this schedule

lateClockInThresholdinteger

The threshold (in minutes) after a shift starts before an employee is considered late clocking in

earlyClockOutThresholdinteger

The threshold (in minutes) before a shift ends within which an employee is considered to have clocked out early

lateClockOutThresholdinteger

The threshold (in minutes) after a shift ends before an employee is considered to have clocked out late

managerUserIdsinteger[]

What users manage this schedule

employeeIdsinteger[]

What employees are assigned to this schedule

createdAtstring date-time

UTC timestamp when the schedule was created

updatedAtstring date-time nullable

UTC timestamp when the schedule was last updated

deletedAtstring date-time nullable

UTC timestamp when the schedule was deleted

Example response

{
  "id": "0199de9b-6bcb-77e7-941d-3caf74b9a372",
  "name": "Main Schedule",
  "locationId": 123,
  "timezone": "America/Denver",
  "startOfWeek": "Monday",
  "earlyClockInThreshold": 10,
  "lateClockInThreshold": 10,
  "earlyClockOutThreshold": 5,
  "lateClockOutThreshold": 15,
  "managerUserIds": [
    1,
    2
  ],
  "employeeIds": [
    10,
    20
  ],
  "createdAt": "2025-01-01T06:00:00Z",
  "updatedAt": "2025-01-01T06:00:00Z",
  "deletedAt": "2025-01-01T06:00:00Z"
}