What This Screen Does
This is the duty schedule calendar where you can see, create, and manage employee shifts. Think of it as a wall planner that shows who is working and when. Each shift appears as a colored block on the calendar showing the time, description, and assigned employee. You can drag shifts around to reschedule them, click on a shift to edit it, or select an empty time slot to create a new one.
How to Get There
Open the dashboard.
In the left-hand menu, click Duty Schedule.
You are now on the Scheduled Shifts calendar screen.
Step-by-Step Guide
1. Choose a Calendar View
At the top-left of the calendar you will find a view selector button. Click it to switch between different layouts:
View | What It Shows |
Month | A full month grid. Each day shows up to 3 shifts before collapsing into a “+more” link. |
Week | A 7-day view with a time axis on the left. Shifts are placed at their exact start and end times. |
Day | A single day with a detailed time axis. Best for seeing exactly who is scheduled and when. |
Agenda | A flat list of upcoming shifts sorted by date. Useful for a quick overview without the grid layout. |
On mobile devices the view selector is hidden. The calendar automatically adjusts to fit your screen.
2. Navigate Between Dates
Use the left arrow (←) to go to the previous period (previous month, week, or day depending on your view).
Use the right arrow (→) to go to the next period.
Click the red Today button to jump back to today’s date.
The current date range is displayed as a heading between the arrows.
3. Read a Shift Block
Each shift on the calendar shows:
Time — the start and end time in HH:mm format (e.g. 08:00 – 16:00).
Description — what the shift is about (e.g. “Morning Reception”).
Employee name — who is assigned.
Employee avatar — a small profile picture in the top-right corner of the block.
Color — each shift can have its own tint, making it easy to tell shifts apart at a glance.
4. Create a New Shift
There are two ways to create a shift:
Option A — Click and drag on the calendar: 1. Click on an empty time slot and drag to select a range. 2. A dialog will open with the start and end times pre-filled. 3. Fill in the shift details (see the form fields below). 4. Click Save Changes.
Option B — Use the Scheduling button: 1. Click the Scheduling button in the top-right corner of the page. 2. This takes you to the class templates screen where you can set up recurring schedules.
5. Fill In the Shift Form
When you create or edit a shift, a dialog appears with the following fields:
Field | Required | What to Enter |
Description | Yes | A short label for the shift, such as “Morning Shift” or “Evening Reception”. This is what appears on the calendar. |
Employee | No | Pick the staff member assigned to this shift from the dropdown. You can clear the selection if no one is assigned yet. |
Wage Rate | No | Select the pay rate that applies to this shift. Wage rates are set up separately under Wage Rates settings. |
Begins | Yes | The date and time the shift starts. Use the date-time picker (format: dd/MM/yyyy HH:mm, 24-hour clock). |
Ends | No | The date and time the shift ends. Must be later than the start time. |
Number of Repetitions | No | Only shown when creating a new shift. Enter a number to repeat this shift multiple times (e.g. enter 5 to create the same shift for 5 consecutive occurrences). Must be at least 1 if filled in. |
6. Edit an Existing Shift
Click on any shift block on the calendar.
The shift form dialog opens with all fields pre-filled.
Make your changes and click Save Changes.
The dialog title will read Edit shift so you know you are editing, not creating.
7. Reschedule a Shift by Dragging
Click and hold a shift block on the calendar.
Drag it to a new date or time slot.
Release the mouse button.
The system automatically saves the new time — no dialog needed.
You will see a green “Update success!” notification.
8. Resize a Shift
In the Week or Day view, hover over the bottom edge of a shift block.
A resize handle appears.
Drag it up or down to shorten or extend the shift.
The new end time is saved automatically.
9. Delete a Shift
Click on the shift to open the edit dialog.
Click the trash bin icon (🗑) at the bottom-left of the dialog.
The shift is deleted immediately.
You will see a green “Delete success!” notification.
10. Navigate to a Linked Class
If a shift is linked to a class, a Go to class button appears in the edit dialog.
Click it to navigate to that class’s detail page.
11. Filter Results
If color or date filters are active, a filter summary bar appears above the calendar showing how many results match.
Click the X on any filter chip to remove that filter.
Click the Clear button to remove all filters at once.
What Happens Behind the Scenes
Loading Shifts
You open the Shifts page (or navigate to a new date range)
|
v
API call: GET /api/shifts ({ fromDate, toDate, pageSize, pageNumber })
|
v
Server returns a list of shifts for that date range
|
v
Shifts are mapped into calendar events and displayed on the calendar
Creating a Shift
You fill in the form and click "Save Changes"
|
v
Form validates all fields (Yup schema)
|
v
API call: ShiftsService.create({ body: formData })
|
v
Shift record is created on the server
|
v
Success notification: "Create success!"
|
v
Dialog closes, calendar reloads shifts for the current date range
Editing a Shift
You update the form and click "Save Changes"
|
v
Form validates all fields (Yup schema)
|
v
API call: ShiftsService.update({ id, body: formData })
|
v
Shift record is updated on the server
|
v
Success notification: "Update success!"
|
v
Dialog closes, calendar reloads shifts for the current date range
Dragging a Shift to a New Time
You drag a shift block and drop it on a new time slot
|
v
API call: ShiftsService.update({ id, body: { ...existingShift, begins: newStart, ends: newEnd } })
|
v
Shift record is updated on the server
|
v
Success notification: "Update success!"
|
v
Calendar reloads shifts for the current date range
Deleting a Shift
You click the trash bin icon in the edit dialog
|
v
API call: ShiftsService.remove({ id })
|
v
Shift record is deleted from the server
|
v
Success notification: "Delete success!"
|
v
Dialog closes, calendar reloads shifts for the current date range
Troubleshooting
“I do not see any shifts on the calendar”
Make sure you are looking at the correct date range. Click the Today button to jump to the current date.
Check that you have the right gym/location selected in the top navigation. Shifts are filtered by the currently selected gym.
Shifts may simply not exist for the date range you are viewing. Try navigating to a different week or month.
“I filled in the form but the Save button does not work”
The Description field is required. Make sure it is not empty.
The Begins date is required. Make sure you have selected a start date and time.
If you entered an Ends time, it must be later than the Begins time. Check that the end is not before or equal to the start.
Look for red error text below the fields — it will tell you exactly what needs to be fixed.
“I dragged a shift but it snapped back to its original position”
The drag-and-drop triggers an API call to update the shift. If the call fails (for example, due to a network error), the shift will not move.
Check your internet connection and try again.
If the error persists, open the shift by clicking on it and update the times manually in the form.
“I cannot see the Employee or Wage Rate options in the dropdowns”
The employee list and wage rates are loaded when the dialog opens. If the dropdowns are empty, try closing the dialog and opening it again.
Make sure you have employees set up in the system (under the Employees section) and that they are marked as active.
Make sure you have wage rates configured (under Wage Rates settings).
If the problem continues, refresh the page. The data may not have loaded due to a network issue.
“The calendar is showing a loading bar that never finishes”
A thin progress bar appears at the top of the calendar while shifts are being fetched. If it stays indefinitely, the API call may have stalled.
Refresh the page to retry.
Check your internet connection.
If the issue persists, contact your system administrator — the shifts API may be experiencing issues.
“I deleted a shift by accident”
Shift deletion is immediate and cannot be undone from this screen.
You will need to recreate the shift manually by clicking on the appropriate time slot and filling in the details again.
If the shift was part of a recurring schedule, check with your administrator about restoring it.
“The times on the calendar look wrong or are in the wrong time zone”
The calendar uses the time zone of your currently selected gym. If you switch gyms, the displayed times adjust accordingly.
Make sure the correct gym is selected in the global gym selector at the top of the dashboard.
If the gym’s time zone is misconfigured, update it in the Gym settings.
“I want to create a recurring shift but do not see the repetitions field”
The Number of Repetitions field only appears when creating a new shift. It is not shown when editing an existing shift.
To create a recurring shift, open a new shift dialog (click on an empty time slot) and enter the desired number of repetitions.
“I clicked the Scheduling button but it did not create a shift”
The Scheduling button navigates you to the Class Templates screen, which is used for setting up recurring schedules and templates — it does not directly create a single shift.
To create a single shift, click on an empty time slot on the calendar instead.
“The shift colors all look the same”
Shift colors (tints) are assigned per shift, often based on the employee or shift type. If no color has been set, shifts default to a neutral tone.
To change a shift’s color, the tint needs to be configured at the employee or shift level in the system. This is not editable directly from the calendar form.
