Schedule Overrides
Schedule overrides allow you to temporarily substitute a different technician for a specific time window — without changing the underlying rotation. Use overrides for vacations, sick days, emergencies, and one-off coverage swaps.
What an Override Does
An override replaces the normally scheduled on-call user for a defined time window. When the override is active, On-Call's on-call resolution logic returns the override user instead of the rotation-calculated user.
The override does not change the schedule — when the override ends, the normal rotation resumes automatically from wherever it would have been.
Override Fields
| Field | Description |
|---|---|
| Schedule | Which schedule this override applies to |
| Covering User | The technician who will cover the shift |
| Covering For | The technician whose shift is being covered (optional but recommended for record keeping) |
| Start At | Override begins (date + time in schedule's timezone) |
| End At | Override ends (date + time in schedule's timezone) |
| Reason | Free-text reason (e.g., "PTO", "conference", "emergency") |
Creating an Override
Via the API
The override API is fully functional. Use the following endpoint:
POST /api/overrides
Authorization: Bearer <hub_token>
Content-Type: application/json
{
"schedule_id": "sch_abc123",
"user_id": "usr_covering",
"original_user_id": "usr_being_covered",
"start_at": "2026-03-15T18:00:00Z",
"end_at": "2026-03-22T18:00:00Z",
"reason": "PTO"
}
The response includes the override ID and status (pending by default if approval is required, active if auto-approved).
/overrides route in the web app) is currently a placeholder. Override management is available via the API directly. A full UI is on the roadmap.Override Status Workflow
| Status | Description |
|---|---|
pending | Override created; awaiting approval from manager |
approved | Override approved; will activate at start_at |
rejected | Override denied; original rotation is unchanged |
active | Override is currently active; this user is on call |
completed | Override window has passed; normal rotation resumed |
Who Can Create Overrides
- Managers and admins can create overrides for any technician on any schedule
- Technicians (members) can create overrides for their own shifts (self-service)
Self-service overrides may require manager approval depending on your organization's settings. Configure the approval requirement in Settings → Override Approval.
Manager Approval Flow
If override approval is required:
- Technician creates an override (status:
pending) - Managers receive an email notification: "Override request from [technician] for [schedule] from [start] to [end]"
- Manager opens the override detail and clicks Approve or Reject
- Technician receives an email with the decision
- If approved, the override activates automatically at
start_at
Listing and Managing Overrides
Via API
List all overrides:
GET /api/overrides
List overrides for a specific schedule:
GET /api/overrides?schedule_id=sch_abc123
Update an override:
PATCH /api/overrides/:overrideId
Delete an override:
DELETE /api/overrides/:overrideId
Coverage Gap Consideration
When creating overrides, ensure the covering user is available for the full window. An approved override where the covering user cannot respond creates a gap in effective coverage.
If no covering user is available, consider:
- Adjusting the escalation policy to reach a backup technician sooner
- Temporarily updating the schedule rotation to fill the gap
- Creating a manager-covers override as a last resort
Override Notifications
When an override is approved and activates:
- The covering technician receives an email confirming they are now on call
- The covered technician receives an email confirming they are off call
When an override ends:
- The original technician resumes their on-call rotation automatically (no notification sent by default)
Override Impact on Escalation
Escalation policies that reference a schedule will resolve to the override user (if an override is active) rather than the rotation user. This is automatic — you do not need to update the escalation policy when an override is in place.
This means if your escalation policy Step 1 targets Tier 1 On-Call Schedule and Alice has an override covering Bob for the next week, Step 1 will page Alice, not Bob.