Where to find it
The Employee Schedule is the grid that shows who's working when — one row per employee, one column per day of the week, with colored shift bars in each cell. From the sidebar, click Schedules (this opens the Calendar), then switch to the Employees tab that sits right next to Calendar. You can also go straight to `/app/staff-schedule` if you've bookmarked it — it's the exact same page either way, just lazy-loaded inside the tab so the customer Calendar tab still loads fast for people who never open it.
Adding and editing shifts
Click any empty day cell for an employee to open Add shift, pre-filled with that date and that employee already selected. Click an existing colored shift bar to open Edit shift, which adds a Delete button (with a confirmation prompt) alongside Save. The toolbar's ← Today → controls move you a week at a time, and + Add shift opens a blank dialog defaulted to the first employee in your list. If your shop has zero employees yet, the grid doesn't render at all — you'll see "No employees yet — invite teammates from Settings → Team," and Add shift stays disabled until at least one teammate exists.
In the dialog itself: Employee is a dropdown of your shop's members, Date/Start/End set the shift window, Label is a free-text field (e.g. "Front of house" or "Tint bay 2," 128 characters max) that prints under the time on the shift bar, Color is six swatches purely for visually telling shifts apart on the grid (no behavior is tied to which one you pick — it defaults to green), and Notes is an internal 500-character field for anything the manager should know about that shift.
Repeat patterns only apply when creating
When you're adding a new shift, a Repeat dropdown appears (Don't repeat, Every day, Mon–Fri, Mon–Sat, Same day each week) along with a "For how many weeks" field (1–12) once you pick anything but "Don't repeat" — this lets you schedule someone Mon–Fri for the next month in one dialog instead of dozens of clicks. This option disappears entirely when you edit an existing shift, because each shift created this way is its own independent row with no link back to a "series" — editing one never touches the others, and there's no way (yet) to bulk-edit a whole repeating set at once. One quirk worth knowing: if you anchor a Mon–Fri or Mon–Sat repeat on a day later than Monday (say you start it on a Wednesday), the earlier days that week are simply skipped rather than pushed to the following week — so your first week may come out shorter than the following ones.
Copy week and the double-booking guard
The Copy week → button clones every shift currently visible into the same weekday/time next week, keeping the same employee, label, color, and notes — it always asks you to confirm the shift count and destination week first, so a mis-click can't silently double the schedule. Underneath both this button and the Add/Edit dialog is a guard that blocks scheduling the same employee for two shifts that overlap in time; if you try, you'll get a conflict error rather than a saved shift. That check is scoped to one person at a time — it's completely normal for several different employees to have overlapping shifts. There's currently no way to override it from this screen (the underlying system supports a force flag for a deliberate double-role shift, but neither this dialog nor Copy week exposes it), so a genuine two-role overlap for one person has to be handled by shortening one of the times. This also means Copy week can partially fail: if some destination slots already have a shift for that employee, those specific copies are skipped while the rest go through, and the toast will call out how many failed as likely duplicates.
The coverage overlay — and why this schedule matters more than it looks
Toggling Show bookings adds a row above the employee grid showing, per day, how many customer appointments are booked and a coverage chip: green "Covered" when scheduled shift-hours meet or exceed booked hours, amber "Tight" between 50–99%, red "Short" under 50%, or a plain dash on days with no bookings. It's off by default so the page loads fast, and turning it on triggers a separate fetch of that week's appointments; clicking any day in that row opens the Calendar tab (it currently just switches you to Calendar rather than jumping to that specific date, so you may need to navigate to the day yourself once there). The bigger thing to know: this schedule isn't just an internal planning tool. Once your shop has entered even a single shift, ever, for anyone, the booking system treats your shop as actively using shift scheduling — and it starts hiding public booking slots for any staff member whose shift doesn't fully cover that time window. Before your first shift exists, every active staff member reads as bookable during business hours regardless of this page. The moment you add shift #1, that changes shop-wide: any employee with no shift entered for a given day will stop showing up as available to customers that day, even if they're normally working. In practice, that means once you start using the Employee Schedule at all, you need to keep it current for everyone who takes bookings — a half-finished schedule can quietly make people un-bookable rather than leaving things as they were.