Skip to main content
A shift definition is a reusable template for a recurring shift time. Once defined, you can reference it everywhere:
  • Quick-adding a shift on the Schedules page
  • Shift patterns that auto-generate shifts in rotation
  • Coverage plans that require N people on shift X

Seeded examples

CodeLabelTimesCrosses midnightDifferential
D8Day 0800-180008:00–18:00No$0
EEvening 1400-220014:00–22:00No$12/hr
NNight 2200-060022:00–06:00Yes$24/hr
MMorning 0600-140006:00–14:00No$0

Where to manage

All in one place: Admin → Schedules (/app/admin/schedules), at the bottom under “Shift definitions”. Add new via the inline row.

Fields

code
string
required
Short unique code. Conventionally letters+digits, e.g. D8, N10, E12.
label
string
required
Human-readable name, e.g. “Day 0800-1800”. Shown in dropdowns.
start_time
time
required
24-hour time, e.g. 08:00.
end_time
time
required
24-hour time.
crosses_midnight
boolean
default:"false"
Check if end time is on the next day (e.g. a 22:00–06:00 night shift).
pay_differential
number
default:"0"
Extra $/hr above base. Used in pay estimates and shown on OT posts.

When to add one

  • You have a recurring shift time that doesn’t fit the existing set (e.g. your org runs 12-hour shifts: add D12 and N12)
  • You want a new differential tier (e.g. E+ with higher pay for a hard-to-fill evening)

When to edit one

Rarely — changing a definition doesn’t retroactively change existing shifts. It only affects new shifts created using the definition.

Required permission

shift_patterns.manage — on Supervisor and Admin by default.