Scheduling
Public API

Update Schedule

Changed on

Partially updates an existing schedule by its UUID. Fields not provided retain their existing values.

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

patch/api/v1/scheduling/schedules/{id}

Request

Path parameters

idstring uuid required

The schedule UUID

Request body

namestring

The name of the schedule

locationIdinteger

The ID of the location the schedule belongs to

timezonestring

The timezone of the schedule. Required if location does not have a timezone. Error if location already has a 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[]

User IDs of managers for this schedule

employeeIdsinteger[]

Employee IDs assigned to this schedule

claimsRequireApprovalDefaultboolean

Whether a claim on a shift created under this schedule requires manager approval by default. Only applies at shift creation time; changing this value never affects existing shifts.

autoPublishLeadTimeUnit'weeks' | 'days' nullable

Auto-publish lead time unit. Optional — omit to leave the existing value unchanged. After merging with the schedule's existing values, the resolved unit and autoPublishLeadTimeQuantity must both be null or both be non-null; a request that would leave the resolved pair partially set is invalid.

autoPublishLeadTimeQuantityinteger nullable

Auto-publish lead time quantity. Optional — omit to leave the existing value unchanged. After merging with the schedule's existing values, the resolved quantity and autoPublishLeadTimeUnit must both be null or both be non-null; a request that would leave the resolved pair partially set is invalid. Must not exceed 8 when the resolved autoPublishLeadTimeUnit is 'weeks', or 56 when it is 'days'.

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
  ],
  "claimsRequireApprovalDefault": true,
  "autoPublishLeadTimeUnit": "weeks",
  "autoPublishLeadTimeQuantity": 2
}

Response

Schedule updated 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

claimsRequireApprovalDefaultboolean

Whether a claim on a shift created under this schedule requires manager approval by default. Only applies at shift creation time; changing this value never affects existing shifts.

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

autoPublishLeadTimeUnit'weeks' | 'days' nullable

The unit of the auto-publish lead time. Null when auto-publish is not enabled for this schedule.

autoPublishLeadTimeQuantityinteger nullable

The quantity of the auto-publish lead time. Null when auto-publish is not enabled for this schedule.

nextAutoPublishAtstring date-time nullable

UTC timestamp of the next scheduled auto-publish run. Null when auto-publish is not enabled for this schedule.

lastAutoPublishAtstring date-time nullable

UTC timestamp of the most recent successful auto-publish run. May be set even when auto-publish is not currently enabled.

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,
  "claimsRequireApprovalDefault": true,
  "managerUserIds": [
    1,
    2
  ],
  "employeeIds": [
    10,
    20
  ],
  "createdAt": "2025-01-01T06:00:00Z",
  "updatedAt": "2025-01-01T06:00:00Z",
  "deletedAt": "2025-01-01T06:00:00Z",
  "autoPublishLeadTimeUnit": "weeks",
  "autoPublishLeadTimeQuantity": 2,
  "nextAutoPublishAt": "2026-07-05T06:00:00Z",
  "lastAutoPublishAt": "2026-06-28T06:00:00Z"
}

Changes

    • breaking

      request property list-of-types was narrowed by removing types null from media type application/json

    • breaking

      request property list-of-types was narrowed by removing types null from media type application/json

    • breaking

      request property list-of-types was narrowed by removing types null from media type application/json

    • info

      the security scope scheduling:schedules.write was added to the endpoint's security scheme oauth

    • info

      the security scope time_tracking.write was removed from the endpoint's security scheme oauth

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status