Docs Company Admin Guide Building a Weekly Shift Schedule

Company Admin Guide

Building a Weekly Shift Schedule

Drag-and-drop the week ahead, mark leave, track headcount

Plan-gated feature. Same flag as Workers and Shifts: requires Workforce Management.

Opening the schedule

Go to a site's detail page → Open shift schedule. The grid shows one row per worker, seven columns (Mon–Sun), with chips on the right showing each shift template defined for the site.

Assigning a shift

Three equivalent ways:

  • Drag a shift chip from the right panel onto a cell.
  • Drag a badge from one cell to another to move the assignment. Hold Shift while dragging to copy instead.
  • Click a cell → opens a modal where you pick from a dropdown of shifts and click Add. Same modal lets you mark absent or remove existing assignments.

Multi-shift days

A worker can stack multiple shifts on the same day (e.g. Morning + Afternoon + a one-off "additional"). Same shift twice on the same day is a no-op — you won't get duplicate rows.

Color-coded shifts

Each shift template gets a stable colour from an 8-colour palette, ordered deterministically by start time. So Morning is always blue, Afternoon always amber, etc. — no jumping colours week-to-week.

Marking absent (leave)

Click a cell → in the modal, scroll to Mark absent, choose a reason (annual leave / sick / unpaid / other), set the date range (defaults to that single day), optionally add a note, and Save. Absent days show a grey badge in the grid; the headcount footer re-computes excluding absent workers.

Filter bar — for big workforces

The header has four controls:

  • Search — name / ID / phone substring filter on rows.
  • ScopeSite regulars (default — workers active at this site in the last 60 days + active assignees this week) vs. All company workers (every active membership at the company).
  • Window — how many days back to count "site regulars" (7–365, default 60).
  • Pin — admins can ad-hoc pin a worker to the visible schedule via the + Add worker button. Pinned workers stay visible across week navigation. Hit Reset to unpin them.

+ Add worker (typeahead)

Click + Add worker at the bottom of the schedule (or the inline link in the header). A modal opens; type a name, ID, or phone. Pick a worker from the dropdown — they're staged with a preview. Click Add to schedule to pin them. The page reloads with ?pin=<id> appended; their row appears in the grid and follows you across week navigation.

If a shift has min/max workers configured, the footer shows actual/min per day. Red + ⚠ means under the minimum; amber means over the maximum. It's purely informational — never blocks check-ins.

Out-of-pattern assignments

If a shift template's days list is changed after assignments exist (e.g. Afternoon was Mon–Sat, you change it to Mon–Fri, leaving stale Saturday assignments), those orphan rows are hidden on the grid but surfaced in the cell modal under "Out-of-pattern (hidden on grid)". Click Remove to clean them up.

In-place cell editing

The cell modal submits via standard form POST and the response is the updated cell HTML — the grid reflects the change in place without a full reload. Filter context (week / scope / search / window / pin) is preserved across edits.

Was this helpful?

Last updated: May 6, 2026