On-Call
On-Call scheduling lets your team define who is responsible for after-hours and out-of-coverage support, page the right person when something needs attention, and keep an auditable record of every change.
Overview
The On-Call module lets you:
- See who is on-call right now and when the next handoff happens
- Build repeating rotations that drive the base schedule
- Generate concrete schedule shifts from a rotation for any date range
- Swap a specific shift with an override, or add a one-off exception for ad-hoc coverage outside a rotation
- Define escalation policies that page additional members in steps when an alert goes unacknowledged
- Review alert history and acknowledge, resolve, or silence alerts
- Manage holidays and closures that affect coverage
- Audit every on-call change in the Activity trail
Navigate to On-Call
Open the On-Call item under the PSA section of the left sidebar
(/on-call).
Sections
The page is organized into tabs across the top:
| Tab | What it shows |
|---|---|
| Overview | Active alert banner, the "On-Call Now" widget, and the schedule calendar |
| Rotations | Create, edit, and delete rotations, and generate schedule entries |
| Escalation | Build escalation policies with ordered notification steps |
| Alert History | Past and active alerts with acknowledge/resolve actions |
| Holidays & Closures | Federal holidays and custom org closures that affect coverage |
| Activity | Audit trail of all on-call changes |
The scheduling model
On-call scheduling is built around three concepts:
- Rotation — the repeating base schedule. A rotation cycles through an ordered list of members.
- Override — a one-time swap that hands a specific generated shift to a different member.
- Exception — ad-hoc, one-off coverage outside any rotation (for example, a gap fill or holiday backup).
Overview tab
The Overview tab opens to a snapshot of current coverage:
- Active alert banner — appears at the top when there is an unacknowledged alert, with a link to view its detail.
- On-Call Now widget — shows the member currently on-call. If no one is scheduled, it reads No one on-call.
- Schedule calendar — a Week or Month view of generated shifts, overrides, and exceptions, color-coded per team member. Use the < / Today / > controls to move between periods. A Gap marker highlights days that are not fully covered.
- Print — produces a printable view of the visible schedule.
Members with the override permission also see a Configuration panel with quick links to Manage Rotations, Escalation Policies, and Alert History, plus an Add Exception button.
Add an exception
- Click Add Exception (or the + on a calendar day).
- In the Add Schedule Exception dialog, choose the member, set the start and end date/time, and optionally add a note.
- Save. The exception appears on the calendar as one-off coverage.
Create an override (swap a shift)
- Click a rotation-generated shift in the calendar.
- Select the covering member, optionally add a reason, and confirm the time window.
- Save. The override replaces the original member for that shift. You can cancel an override later from the same shift.
Rotations tab
Rotations define the base repeating schedule.
- Click New Rotation (or Create Rotation when none exist yet).
- Fill in the rotation details:
| Field | Description |
|---|---|
| Name | The rotation name (required) — e.g. "Tier 1 On-Call" |
| Description | Optional notes |
| Rotation Type | Weekly (7-day shifts) or Custom (1-day shifts) |
| Handoff Time | Local time of day the rotation hands off (e.g. 09:00) |
| Timezone | The timezone the handoff time is interpreted in |
| Members (rotation order) | The ordered list of members the rotation cycles through; reorder with the up/down controls |
- Save the rotation. Each rotation shows an Active / Inactive badge and its handoff time and timezone.
Generate schedule entries
A rotation is just a definition until you generate concrete shifts from it:
- On a rotation, click Generate Schedule.
- Choose a Start Date and End Date.
- Click Preview Schedule to see the shifts that would be created.
- Click Save Schedule to write the generated entries to the calendar.
Generated shifts then appear in the Overview calendar and can be overridden individually.
Escalation tab
Escalation policies decide who gets paged, and when, if an alert is not acknowledged.
- Give the policy a Policy Name.
- The first step (Step 1) is always notified immediately when the alert triggers — choose its Notify members.
- Click Add Escalation Step to add later steps. For each additional step,
set:
- Escalate after (minutes) — how long to wait, measured from when the alert was triggered, before this step fires.
- Notify members — the members paged at this step.
When an alert with an attached policy stays in the Triggered state, a recurring background check advances through the steps whose delay has elapsed and notifies each step's members. Notifications are delivered both in-app and by email according to each recipient's notification preferences.
Alert History tab
The Alert History tab lists alerts and lets you act on them.
- Filter by status using the dropdown: All statuses, Triggered, Acknowledged, Resolved, or Silenced.
- Click Refresh to reload.
- Click an alert to open its detail view, where you can Acknowledge, Resolve, or Silence it.
Alert statuses:
| Status | Meaning |
|---|---|
| Triggered | The alert is active and escalating |
| Acknowledged | Someone has taken ownership; escalation stops |
| Resolved | The alert is closed |
| Silenced | Escalation is paused for a chosen number of minutes, after which the alert automatically returns to Triggered |
When you silence an alert you choose a duration in minutes (the default is 60). Once that window expires, the alert is flipped back to Triggered so escalation resumes.
How on-call ties into tickets
When a new ticket is created while on-call coverage is active, the member currently on-call is notified ("On-Call: New Ticket #…"). Ascent uses the same coverage resolver everywhere — the On-Call Now widget, ticket notifications, and alert routing all agree on who is on-call at a given moment. Coverage is considered active based on your SLA business hours combined with weekend, holiday, and closure rules.
Holidays & Closures tab
This tab manages the dates that affect coverage:
- Federal holidays — toggle and rename the standard set of holidays per org.
- Org closures — create custom closure records for your organization.
These dates feed into coverage calculations so the right person is on-call during days your office is closed.
Activity tab
The Activity tab is an audit trail of every on-call operation. Filter by entity type:
- Rotations
- Overrides
- Schedule Entries
- Escalation Policies
- Alerts
- Coverage Rules
- Holiday / Closures
Each row records the action, the user, and a timestamp. Results are paginated.
Permissions
On-call capabilities are governed by RBAC across four resources:
| Resource | Typical actions |
|---|---|
On-Call Rotations (on_call_rotations) | Create, read, update, delete, generate |
On-Call Schedule (on_call_schedule) | Read, override |
On-Call Escalation Policies (on_call_escalation_policies) | Create, read, update, delete |
On-Call Alerts (on_call_alerts) | Create, read, acknowledge, resolve, silence |
Schedule-changing controls (adding exceptions, creating overrides) require the override permission on the on-call schedule, which is granted to Owners and Admins by default but can be delegated through Roles & Permissions. The Activity audit trail requires read access to on-call rotations.
Tips
- Build a rotation first, then Generate Schedule for the period you want covered — overrides and exceptions are easiest to apply on top of generated shifts.
- Watch for the Gap marker on the calendar; it flags days where coverage is incomplete.
- Attach an escalation policy to alerts so an unacknowledged page reaches the next person automatically instead of sitting idle.