Manual Shift Adjustments¶
After a rota is generated, you will often need to make manual changes: covering unexpected absences, booking locum doctors, correcting errors, or adjusting individual shifts. The Shift Management page is where all of this happens.
The Shift Management Calendar¶
Navigate to Shift Management from the admin dashboard. The page opens to a month-by-month calendar showing every scheduled shift.
Month Navigation¶
Use the Previous and Next buttons at the top of the calendar to move between months. The current month and year are displayed between the two buttons.
Calendar Layout¶
The calendar shows Monday through Friday (working days only). Each day cell displays:
- The date number
- A BH badge if the day is a bank holiday
- A shift count (e.g. "3 shifts")
- An alert icon if the day has staffing issues (red for critical, blue for informational)
- Individual shift blocks, colour-coded by type
Colour Coding and Shift Types¶
Shifts are colour-coded in the calendar so you can tell them apart at a glance:
| Colour | Shift Type | Description |
|---|---|---|
| Blue | Standard | A normal working-day shift |
| Teal | Duty | Duty doctor shift (on-call responsibility) |
| Amber | Study Leave | Clinician is on approved study leave |
| Purple | Coroners | Clinician is doing coroners work |
Additional indicators within each shift block:
- A padlock icon means the shift is pinned (see Pinning and Unpinning).
- An "L" badge (orange) marks a locum booking.
- A sad face icon (red) indicates the clinician is off sick for that shift.
- "1/2" indicates a half-day shift.
- A green tick appears when the shift has been synced to Systm1 (visible only to dashboard admins).
Alerts¶
When a day has staffing alerts, an alert icon appears in the top-right corner of the cell. Red icons indicate critical issues (e.g. understaffing); blue icons are informational warnings. Click the icon to open a modal showing all alerts for that day.
Adding a Shift¶
You can add a shift to any day directly from the calendar.
Standard Workflow¶
- Click on a day cell in the calendar. The sidebar on the right updates to show clinicians who are available (or unavailable) for that date.
- The sidebar lists each clinician with:
- Their name and type (Partner, Salaried, etc.)
- Availability status and the reason if unavailable
- Current weekly shift count versus their target (e.g. "3 / 4 shifts this week")
- Workload status badge (Below Target, At Target, Above Target, No Limit)
- Click on a clinician in the sidebar. A "Create Shift" modal opens.
- Fill in the modal fields:
- Shift Type -- Standard, Duty, Study Leave, or Coroners.
- Duration -- Full Day or Half Day.
- Status -- Scheduled, Completed, or Cancelled.
- Pin this shift -- Checked by default. Pinned shifts survive rota regeneration. See Pinning and Unpinning.
- Click Create Shift.
If the clinician is unavailable for the selected date, a red warning banner appears in the modal explaining the reason (e.g. "Not a working day" or "On annual leave"). You can still create the shift, but the warning draws attention to the scheduling conflict.
Editing a Shift¶
To change an existing shift's properties:
- Click on a shift block in the calendar. A shift actions modal opens showing the clinician name, date, shift type, and duration.
- From the actions modal you can:
- Edit Shift -- Opens the edit form for every editable field: date, type, duration, status, off-sick flag, public note, and pin. (This button was previously labelled "Add Note", which hid the other fields.)
- Mark as Off Sick / Remove Off Sick -- Toggles the sick flag on the shift. Off-sick shifts show a sick icon and do not count toward minimum staffing.
- Delete Shift -- Removes the shift entirely.
- Change to Duty or Change to Standard -- Quick buttons to change the shift type without opening the full edit form.
- The same edit form is reachable from the list view's Edit link (described below).
List View for Editing¶
The shift management list view provides a tabular layout with filtering and sorting at /admin/shift-management/list/. Note: the calendar page currently links only to itself — the list view is reached by typing its address (or bookmarking it) until it is re-linked. The list view lets you:
- Filter by clinician, shift type, status, and date range.
- Sort by date, clinician, type, or duration by clicking the column headers.
- Edit individual shifts by clicking the Edit link in the Actions column. The edit modal allows you to change the shift's date, type, duration, status, off-sick flag, and pin state. The clinician is the only field you cannot change — to move a shift between clinicians, use the swap flow, or delete and re-create the shifts.
Changing the date re-runs the same checks as creating a shift: the clinician must have an active working term on the new date, and they can only hold one scheduled shift per day (locum bookings excepted). A valid move sends a single "date changed" notification instead of the two emails a delete-and-recreate produces, keeps the shift's audit trail and created-by history, and refreshes staffing alerts for both the old and new dates.
Shift Notes¶
Shift notes are edited in the Edit Shift form (the note field is near the bottom) — click a shift on the calendar, then Edit Shift. A note appears on the calendar and in clinicians' calendar feeds — useful for context like "covering for Sanjay". Notes are public by design: anyone who can see the calendar, including via the feed link, can read them.
Removing a Shift¶
Removing a Single Shift¶
- Click on the shift in the calendar to open the actions modal.
- Click Delete Shift.
- A confirmation prompt appears. Confirm to proceed.
Bulk Deleting Shifts¶
For removing many shifts at once (e.g. after recording sick leave, or clearing a clinician's shifts before a period of extended leave):
- Open the Delete Shifts tool (the Delete Shifts button at the top of the Shift Management page).
- Choose what to delete:
- A specific clinician's shifts, or
- All shifts for a working term type (All Partner Shifts, All Salaried Shifts, All Locum Shifts, or All Shifts).
- Set a Start Date and End Date for the range.
- By default, pinned shifts are protected and will not be deleted. If you need to remove pinned shifts as well (e.g. cancelling a locum arrangement), check the option "Also delete pinned shifts."
- Click Delete Shifts to confirm.
A confirmation modal shows the list of shifts being deleted and any staffing warnings for affected dates. Bulk deletes cannot be undone — check the list in the confirmation modal carefully before you confirm (see If You Make a Mistake).
Locum Bookings¶
Locum shifts have special handling in the system. They bypass normal availability validation and are automatically pinned.
Entering Locum Booking Mode¶
- On the Shift Management page, find the Locum Booking Mode toggle in the right sidebar (above the available clinicians list).
- Toggle the switch ON. The sidebar switches from the available clinicians list to the Locum Booking panel.
Booking a Locum Shift¶
- With Locum Booking Mode enabled, click a day cell in the calendar. The date is highlighted with an orange ring and shown in the Locum Booking panel.
- Select a clinician from the dropdown. All active clinicians in the system are listed, regardless of their normal availability or working days. Any clinician can be booked as a locum.
- The panel shows the selected clinician's name, type, and selected date.
- Click one of the quick action buttons:
- Add Duty Doctor Shift -- Creates a Duty-type locum shift.
- Add Standard Shift -- Creates a Standard-type locum shift.
- The shift is created immediately and appears in the calendar with an "L" badge.
Alternatively, after selecting a clinician from the locum dropdown, you can click the quick action buttons in the sidebar panel. These open the standard Create Shift modal with the Locum Booking flag set. The modal displays an orange banner confirming the shift will be pinned and bypass availability checks. The "Pin this shift" checkbox is locked to checked.
What Makes Locum Bookings Different¶
- Validation bypass: Locum shifts skip weekly shift limits, working term checks, and fixed working day restrictions.
- Auto-pinned: Every locum shift is automatically pinned so it survives rota regeneration.
- Double-booking prevention: A clinician (including locums) can only have one scheduled shift per date. If one already exists, the system rejects the creation.
- Staffing counts: Locum shifts count toward minimum staffing requirements just like regular shifts.
- Visibility: Locum shifts appear in the public calendar, admin calendar, and ICS calendar feed alongside normal shifts.
Prerequisites for Locum Booking¶
Before booking shifts for a locum clinician, ensure:
- The clinician exists in the system with Active status.
- The clinician has a WorkingTerm with type "LOCUM" covering the shift date. Without a working term, the system will not allow shift creation.
Pinning and Unpinning¶
What Pinning Does¶
A pinned shift is protected from being altered during rota regeneration. When you run the rota generation process, pinned shifts are left in place while all unpinned shifts are replaced by the new rota.
When to Pin¶
Pin a shift when:
- You have manually arranged cover (especially locum bookings) and need it preserved through the next rota generation.
- A clinician has a confirmed commitment on a specific date that must not be overwritten.
- You have manually corrected a shift and want to prevent the generator from changing it back.
When to Unpin¶
Unpin a shift when:
- The original reason for pinning no longer applies (e.g. the locum cover was cancelled).
- You want the next rota generation to reconsider that date.
How Pinning Works in the Interface¶
- When creating a shift: The "Pin this shift" checkbox is checked by default in the Create Shift modal. Uncheck it if you want the shift to be replaceable.
- After creation: The edit modal has the same "Keep this shift when regenerating the rota" checkbox, so a shift can be pinned or unpinned at any time (for example, pin a shift you have manually corrected, or unpin a locum arrangement that was cancelled). Changing the pin alone sends no notification — it is rota metadata, not a change of working time.
- Locum bookings: Always automatically pinned at creation. The checkbox is disabled and locked to checked in the locum flow, but the shift can be unpinned later from the edit modal.
- In the calendar: Pinned shifts display a small padlock icon next to the clinician's name.
- Bulk delete: Pinned shifts are protected by default. You must explicitly check "Also delete pinned shifts" to remove them.
If You Make a Mistake¶
There is no bulk undo in the dashboard. Bulk deletions and approved swaps are permanent as soon as you confirm them — there is no "undo history" to reverse them from. The recovery options that do exist are:
- Reverse it yourself, manually. For a mistaken bulk delete, re-create the missing shifts by hand (see Adding a Shift) or re-run the relevant rota generation phase over the affected dates (see Generating a Rota). For a mistaken swap approval, ask the two clinicians to swap back, or delete and re-create the two shifts.
- AI transactions can still be discarded. If the change came from the AI API, it waits as a staged transaction on the AI Approvals page until someone reviews it — rejecting it discards the staged shifts without touching the live rota. This only applies before approval; once applied, it is a normal (unundoable) change.
- A full database restore is a superadmin job. Restoring the database from a backup reverts everything — not just your mistake — and is done at server level by a superadmin, not from the dashboard. In practice this is a last resort; ask Sean if it is ever needed.
Because there is no undo, the confirmation modals list exactly what will be deleted — read them before confirming.
Shift Swaps¶
All swaps are clinician-initiated. A clinician offers one of their shifts against a colleague's shift on the calendar; the colleague accepts or declines; the accepted request then arrives for you to approve on the Swap Approvals page. Nothing changes until you approve it.
If two shifts genuinely need to move between clinicians and neither clinician can initiate the swap, the manual route is to delete each shift and re-create it against the other clinician (the edit modal cannot change a shift's clinician — see List View for Editing).
Swaps are permanent once approved — there is no undo (see If You Make a Mistake).
SystmOne Sync¶
Shifts that have been entered into the clinical system (SystmOne) are marked with a green tick on the calendar and can no longer be swapped. To mark shifts as synced in bulk — or to correct a sync status — use the SystmOne Sync button at the top of the Shift Management page: paste or select the shifts, then Mark as Synced or update their sync status. An individual shift's sync flag can also be toggled from its actions modal on the calendar.