A built-in time-off system that talks to the on-call schedule, not a separate tool you have to sync.

Most on-call platforms treat PTO as someone else's problem — and that's how people on vacation get paged. OpShift ships with a PTO module that lives inside the same database as your schedule, so approved time-off and live rotations are reconciled at every scheduling step.

Requests, policies, balances

  • Policies — define accrual rates, carryover limits, and which leave types your team supports (vacation, sick, parental, unpaid).
  • Requests — engineers submit start/end dates and a leave type; admins approve or deny.
  • Balances — accrued, used, and remaining hours per policy, computed live so engineers always know what they have.
  • Templates — reusable presets for common request patterns (single-day, half-day, holiday block).

Cross-check with on-call

When a PTO request is approved, the system iterates over the affected on-call schedule slots. For each slot it asks: is this engineer the one on duty? If yes, the slot is flagged with a conflict marker the team can resolve before the shift starts. When auto-swap is enabled, the slot is reassigned to the next available engineer in the rotation.

Blackout dates

Launches, migrations, and freeze windows are the inverse of PTO — times when you need someone available. Mark those windows as blackouts and PTO requests overlapping them require an explicit admin override.