Skip to main content

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

FieldDescription
ScheduleWhich schedule this override applies to
Covering UserThe technician who will cover the shift
Covering ForThe technician whose shift is being covered (optional but recommended for record keeping)
Start AtOverride begins (date + time in schedule's timezone)
End AtOverride ends (date + time in schedule's timezone)
ReasonFree-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).

ℹ️The override management UI (the /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

StatusDescription
pendingOverride created; awaiting approval from manager
approvedOverride approved; will activate at start_at
rejectedOverride denied; original rotation is unchanged
activeOverride is currently active; this user is on call
completedOverride 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 SettingsOverride Approval.

Manager Approval Flow

If override approval is required:

  1. Technician creates an override (status: pending)
  2. Managers receive an email notification: "Override request from [technician] for [schedule] from [start] to [end]"
  3. Manager opens the override detail and clicks Approve or Reject
  4. Technician receives an email with the decision
  5. 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
💡For planned absences (vacations, conferences), create overrides at least 48 hours in advance so the covering technician has time to prepare and the manager has time to approve.

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.