Positions
The roles you schedule people into, such as Server, Chef or Host. Each has a colour and an optional default hourly rate. A shift always belongs to a position.
Shifts & scheduling turns your team into a working weekly rota. You create the positions people work (Server, Chef, Host), drop shifts onto a week grid, publish the week to email everyone their schedule, and then track who actually clocked in against what you planned, including labour cost. Your staff get their own My Shifts view to see upcoming shifts, clock in and out, set their availability, and request time off.
Before you start clicking, it helps to know the five building blocks and how they connect.
Positions
The roles you schedule people into, such as Server, Chef or Host. Each has a colour and an optional default hourly rate. A shift always belongs to a position.
Shifts
A single work slot: a position, a date, a start and end time, an optional break, and either an assigned employee or “open” (unassigned). Shifts are draft until you publish them.
Coverage targets
How many people of each position you want on the floor for each service period (for example, three servers for Dinner). The grid then flags days that fall short.
Time off & availability
Employees tell you the days and hours they can (or cannot) work, and request whole days off. You approve or deny the requests.
Timesheets
Once shifts are published, staff clock in and out. The timesheet compares scheduled hours to actual hours, works out labour cost from pay rates, and lets you approve the period.
Everything you build in the week grid starts as a draft. Draft shifts are visible only to managers, so you can rearrange the week freely without confusing anyone. When you are happy, you publish the week: the draft shifts become published, they appear in each employee’s My Shifts view, and every affected employee is emailed. Publishing is the moment the schedule becomes real for your team.
A position is a role someone works. You need at least one before you can add shifts, so this is the natural first step.
The position form has these fields:
#6b7280 used to tint the position’s shifts on the grid so the week is easy to read at a glance.Worked example. A small bistro creates three positions: Server (green), Host (blue) and Chef (red). Later they take on a seasonal Runner position for summer, then switch its Active toggle off in autumn — the summer shifts stay on the record, but Runner no longer clutters the shift form.
You can edit a position (pencil icon), toggle it active or inactive (the switch), or delete it (trash icon). Deleting only hides it from new shifts; historical shifts keep it.
The Schedule grid is a seven-column week, one column per day. Each row is a position (or an employee — see the toggle below), and every cell is a day you can drop a shift into.

The toolbar across the top gives you:

A few things worth knowing about shifts:
To change or remove a shift, click it to reopen the dialog, edit the fields, and Save — or use Delete.
Coverage targets tell the grid how many people you want per position for each service period, so understaffed days jump out at you. You set service periods up under Bookings; coverage targets reuse them.
Once targets are set, each day on the grid shows a small coverage summary per service period — how many shifts are published, how many are still open, and how many guests are booked — so you can staff up to match demand.
Worked example. A restaurant sets its Dinner service period to need 3 Servers and 1 Host. When they build Friday and see only two servers scheduled for Dinner, the coverage summary flags the shortfall, and they add a third open shift for someone to pick up.
Two separate things flow in from your team, and both help you build a fair rota.
Availability is a recurring pattern — the days and hours a person generally can or cannot work (for example, “available Mon–Fri 5pm–11pm”, “unavailable Sundays”). Employees set this themselves in My Shifts.
Time off is a specific request for whole days off (a holiday, an appointment). Employees submit these, and a manager approves or denies them.
If approving a request clashes with a shift that person is already scheduled for, you get a Scheduling conflict notice. It is advisory only — the approval still goes through, and it is up to you to reassign or cancel the overlapping shift.
Publishing is what makes the schedule official.
Every draft shift for the week flips to published, appears in each assigned employee’s My Shifts view, and each affected employee receives an email with their schedule. You can keep editing after publishing — add, move or remove shifts and publish again to send the updates.
After a week is published and worked, the Timesheet shows scheduled hours next to what actually happened, and turns it into a labour-cost figure.

Each row carries a status so you can see at a glance what needs attention:
You can correct records directly:
Labour cost comes from each employee’s hourly pay rate. Rates are kept as an append-only history, so a raise is a new rate from a chosen date rather than an overwrite.
If an employee has no rate of their own, the position’s Default hourly rate is used. If there is no rate anywhere, that row is counted as “without a pay rate” in the totals so you know to fill the gap.
Worked example. At the end of the week a manager opens the timesheet for Monday–Sunday. Two servers each worked slightly over their scheduled hours (a positive variance), one shift shows Missing because someone forgot to clock in — the manager adds a manual entry — and the total labour cost reads €1,240.00. They click Approve range: the completed entries lock, and the manual entry they just added is approved with them.
Staff without manager permissions get a focused My Shifts page with three tabs. This is also what you see if you are testing the employee experience.

A week-by-week list of the employee’s published shifts, each with its date, times, position and any break or note. When a shift is happening now, a Clock in button appears; after clocking in, an elapsed timer runs and the button becomes Clock out. Clocking out asks for an optional Break (minutes). An employee already clocked in on another shift cannot clock into a second one.
The employee adds recurring availability windows: a Start time and End time, the Days of week it applies to, whether it means Available or Unavailable, and an optional note. This is the pattern you build the rota around.
The employee submits a request with a Start date, End date and optional Reason, then sees all their requests below with a status of Pending, Approved or Denied. They can cancel a request while it is still pending.