Skip to main content
A schedule is a named container for a period of shifts. Schedules have states: draft (visible only to supervisors/admins) or published (visible to everyone).

The Schedules page

Path: /app/admin/schedules. Four sections:
1

New schedule

Create a new schedule with name, start date, end date.
2

Schedules list

Table of existing schedules with status, period, and published-at timestamp. Draft schedules show a Publish button.
3

Quick-add shift

Add a single shift directly — user, date, shift definition or custom times, role label. Good for filling a gap without building a whole new schedule.
4

Shift definitions

View, add, and edit reusable shift templates (Day 0800–1800, Night 2200–0600, etc.).

Create a schedule

1

Name it

“May 2026”, “Q3 2026 Rotation A”, etc.
2

Set start and end dates

Typically a full calendar month, or a bidding period.
3

Click Create

The schedule is created in draft state. Now build the shifts — Quick-add is fastest for small schedules; a future version will add bulk import and pattern-application.

Publishing

Click Publish next to a draft. All its shifts become visible to their assigned users. The app records who published it and when. Published schedules stay published — publishing is one-way (but you can delete individual shifts if you need to retract).
Employees get an in-app message when you publish (plus email if SMTP is on). Double-check before clicking — it’s fine to re-publish the same schedule, but you don’t want to spam three times in a row.

Quick-add a shift

Fill the form:
  • Employee — required
  • Date — required
  • Shift definition — pick a predefined code (Day, Night, etc.) or leave blank and enter custom times
  • Start / End — required if no shift definition
  • Role label — optional text like “Primary” or “Trainer”
Click Add shift. The shift is created; the employee sees it on their calendar right away (if the schedule is published).

Shift definitions

Use the inline row at the bottom to add a new definition:
  • Code — short (e.g. “D8”, “N”, “M”)
  • Label — human-readable (e.g. “Day 0800–1800”)
  • Start / End — time range
  • Crosses midnight — check for overnight shifts
  • +$/hr — differential (0 for standard)
Shift definitions aren’t required — you can always type custom start/end times — but they save typing and keep things consistent.

Required permissions

  • schedule.view.all — view the page
  • schedule.publish — create + publish schedules
  • shifts.manage — quick-add + delete individual shifts
  • shift_patterns.manage — edit shift definitions
Supervisor has all of these. Admin also. Leads have view-only.