Staff Shifts
Staff shift scheduling allows you to manage when team members are working, with a weekly calendar view.
Route: /dashboard/staff-shifts
Overview
The staff shifts page provides a weekly calendar for scheduling team members across your branches. It supports:
- Weekly view (Monday to Sunday)
- Per-branch shift management
- Role labels for each shift
- Notes for special instructions
- Status tracking (scheduled, cancelled)
Access
Permissions
Staff shift management requires:
- Branch management permission (
manage_branches) - Admin or owner role
Billing
Staff shift scheduling may require a specific billing plan. If your plan does not include it, an upgrade prompt will be displayed.
Shift Properties
| Property | Description |
id | Unique shift identifier |
memberId | The staff member assigned to the shift |
memberName | Display name of the staff member |
startsAt | Shift start date and time (ISO 8601) |
endsAt | Shift end date and time (ISO 8601) |
roleLabel | Optional role description (e.g. "Server", "Chef", "Manager") |
notes | Optional notes or special instructions |
status | scheduled (active) or cancelled |
Managing Shifts
Viewing the Schedule
- Go to Dashboard > Staff Shifts (
/dashboard/staff-shifts). - The current week is displayed by default (Monday to Sunday).
- Use the Previous Week / Next Week buttons to navigate.
- The week selector shows the date range (e.g. "Jul 21 - Jul 27, 2026").
Adding a Shift
- Navigate to the desired week.
- Click Add Shift.
- Fill in the shift details:
- Team Member: Select from available staff
- Date: Choose the date (defaults to today)
- Start Time: Shift start time (defaults to 17:00)
- End Time: Shift end time (defaults to 23:00)
- Role Label: Optional , e.g. "Server", "Chef", "Manager"
- Click Save.
Deleting a Shift
- Find the shift on the calendar.
- Click the Delete button (trash icon).
- Confirm deletion.
Shift Status
- New shifts are created with
scheduledstatus. - Cancelled shifts remain visible for record-keeping.
- There is no edit option , delete and recreate to modify a shift.
Team Members
The staff member picker shows all team members associated with the business:
- Members are loaded from the business's team roster.
- Each member displays their full name or email.
- Only members with appropriate roles are available for scheduling.
Calendar View
The weekly calendar displays shifts organized by day:
```
| Mon Jul 21 | Tue Jul 22 | Wed Jul 23 | ... |
| John: 17-23 | Jane: 17-23 | John: 10-18 | |
| (Server) | (Chef) | (Server) |
```
Each shift card shows:
- Staff member name
- Time range (start - end)
- Role label (if set)
- Delete button
API Endpoints
- GET
/api/branches/{branchId}/staff-shifts?from={iso}&to={iso}, List shifts in a date range - POST
/api/branches/{branchId}/staff-shifts, Create a new shift - DELETE
/api/branches/{branchId}/staff-shifts/{shiftId}, Delete a shift