PingParrot / On-Call Guide

Guide

On-Call Guide

Set up rotations, define escalation chains, and ensure every critical alert reaches the right person — automatically.

On-call management in PingParrot is built around two independent concepts that pair naturally:

On-Call Schedules

Define who is responsible at any given time. Pages sent to a schedule are automatically routed to whoever is currently on duty.

Escalation Policies

Define what happens if a page goes unacknowledged. Chain steps together — page a backup, then a lead, then the whole group — each with its own timer.

Both are optional and independent. You can page someone directly without a schedule, use a schedule without a policy, or combine both for a fully automated response chain.

Key Concepts

Schedule

A named list of time windows, each assigned to a team member. At any moment, exactly one person (or nobody) is "on call" for a given schedule.

Entry

A single time window within a schedule, assigned to one user. Entries can repeat on any weekly interval — weekly, every 5 weeks, or any interval from 1–52 weeks.

Override

A temporary change to who is on call. Overrides take priority over all schedule entries and expire automatically.

Policy

A named sequence of escalation steps. When attached to a page, each step fires in order if the page remains unacknowledged.

Step

One node in an escalation policy. A step has a target (user or group), a delay in minutes, and an optional repeat setting.

Creating a Schedule

Schedules are created and managed from the web portal. Organization owners and members can both create schedules.

1

Open On-Call Schedules

Navigate to On-Call Schedules in the left sidebar.

2

Enter a name

Choose a descriptive name like Database Team Rotation or Infra On-Call. The name appears in the page creation form when selecting a schedule.

3

Click Create

The schedule appears in the list, empty. Add entries in the next step.

4

Add schedule entries

Use the Add Entry form under the schedule to define who is on call and when.

Schedule Entries

Each entry assigns one team member to a time window. You can have multiple entries per schedule — they can overlap or leave gaps.

Field Required Description
user Yes The team member on call during this window
starts_at Yes When this window begins (your local timezone)
ends_at Yes When this window ends — must be after starts_at
repeat_weeks No How often this entry repeats, in weeks. Leave blank for one-time; enter 1 for weekly, 2 for bi-weekly, up to 52
Tip — Entries do not need to cover all 24 hours or all 7 days. If no entry matches the current time, PingParrot considers "nobody on call" and will return an error when a page targets that schedule.

Recurrence

The repeat_weeks field controls how often an entry repeats. Leave it blank to create a one-time entry; enter any integer from 1–52 to repeat every N weeks from the original start date.

repeat_weeks Label Behavior
(blank) One-time Active only during the exact dates specified. Never repeats.
1 Weekly Repeats every 7 days from the original start. A window from Mon 08:00–Mon 17:00 is active every Monday 08:00–17:00 indefinitely.
2 Bi-weekly Repeats every 14 days. Useful for teams alternating between two on-call engineers every other week.
3 – 52 Custom Repeats every N × 7 days. Enter 4 for monthly-ish rotations, 6 for six-week cycles, etc.
Note — Recurrence is calculated from the original starts_at date. The day-of-week is fixed to whichever day you originally set. To model a Monday–Friday shift for multiple engineers, create separate entries for each person.

How On-Call Resolves

When a page targets a schedule, PingParrot evaluates it in this order:

1.

Active override?

If a member has set an active Cover Now override on this schedule, they receive the page. Schedule entries are ignored while an override is active.

2.

Matching schedule entry?

PingParrot looks for an entry whose window contains the current time, factoring in recurrence. If multiple entries match, the most recently created one is used.

3.

Nobody on call

If neither an override nor a matching entry exists, PingParrot rejects the page with an error. Ensure your schedule has coverage for the hours you expect to page it.

Cover Now

Any team member can temporarily step up as on-call without changing the schedule. This is useful for shift swaps, sick cover, or emergency situations.

On the web portal

1

Go to On-Call Schedules and find the schedule you want to cover.

2

Select a duration from the Duration dropdown (1 hour to 24 hours).

3

Click Cover Now. You immediately appear as on call for that schedule. The schedule header shows an amber "Override" badge with the expiry time.

Auto-expiry — Overrides expire automatically at the end of the duration you selected. The schedule resumes its normal rotation without any action required. You do not need to remember to "End Now".

End Now

If your situation changes before your override expires, you can cancel it early. The schedule immediately resumes its normal rotation.

On the web portal, the Cover Now button is replaced by an End Now button while you have an active override. Click it to cancel immediately.

On the mobile app, the same button swap occurs on the On-Call tab.

Owner Assignments

By default, clicking Cover Now sets you as the override. Organization owners have an additional Who dropdown that lets them assign coverage to any team member.

This is useful for managers who need to arrange cover on behalf of a colleague who isn't currently logged in — for example, assigning an engineer to cover a sick teammate's shift.

Permission model — Regular members can only set overrides for themselves. Organization owners can set overrides for any member. Both can cancel any override on a schedule they have access to (owners can cancel anyone's override; members can only cancel their own).

Escalation Policies

An escalation policy is a named chain of steps that fire in sequence when a page goes unacknowledged. Each step targets a specific person or group, and each step has its own delay timer.

Creating a policy

1

Go to Escalation Policies in the sidebar.

2

Enter a name (e.g. Engineering On-Call) and click Create.

3

Add steps using the Add Step form that appears below the policy.

Policy Steps

Each step in a policy has three settings:

Setting Description
Target A single user or a group. When targeting a group, all current members are paged simultaneously.
Delay (minutes) How long after the previous step fires before this step triggers. Step 1 always fires immediately (delay = 0 means "as soon as the page is sent"). A step 2 delay of 5 means "5 minutes after step 1 fired".
Repeat page If enabled, PingParrot re-pages this step's target on the page's configured repeat interval. Useful for keeping pressure on the current step's target while waiting for the next step's delay to expire.
How steps sequence — Steps fire in order, keyed off the previous step's fire time, not off the page creation time. Step 1 fires when the page is sent. Step 2 fires X minutes after step 1. Step 3 fires X minutes after step 2. If the page is acknowledged at any point, the escalation chain stops immediately.

Example Policy

A three-step policy for a web engineering team. Step 1 pages the on-call engineer immediately. If they don't respond in 5 minutes, the backup is paged. After another 10 minutes with no acknowledgement, the entire group is paged.

Policy: "Web Engineering On-Call"

1

Alex — On-Call Engineer

Fires immediately

Repeat enabled · pages every 30s until acknowledged or step 2 fires

5 minutes with no acknowledgement
2

Sam — Backup Engineer

+5 min

Repeat enabled · pages every 30s until acknowledged or step 3 fires

10 more minutes with no acknowledgement
3

Engineering Group

+10 min

Broadcast to all group members · 15 minutes total from page creation

If Alex acknowledges the page at any point — whether during step 1 or step 2 — the chain stops and Sam and the group are never paged. The clock resets if no one responds.

On-Call Delivery Mode

When creating a page, you can send it directly to whoever is currently on call on a schedule, without knowing in advance who that is.

1

Open Send a Page and fill in the subject, message, and priority.

2

Set Delivery Mode to On-Call. A schedule picker appears.

3

Select a schedule. The picker shows who is currently on call for each schedule in real time.

4

Send the page. PingParrot resolves the current on-call person (checking for overrides first) and delivers to them.

Nobody on call — If no one is on call at the time you send the page, the send will fail with an error message. Make sure your schedule has an active entry or override covering the current time before sending.

Attaching an Escalation Policy

Any page — regardless of delivery mode — can have an escalation policy attached to it. When the page is sent, the policy steps fire in sequence if the page goes unacknowledged.

On the Send a Page form, expand the Escalation Policy section. Select a policy from the dropdown — the steps preview automatically updates to show the chain.

Policies are independent of delivery mode. You can attach a policy to a direct page, a group broadcast, or an on-call schedule delivery.

Recommended combination

On-Call Delivery handles who gets paged first — whoever is currently on duty. Escalation Policy handles what happens next if they don't respond. Together they give you a fully automated response chain that adapts to whoever is on call that week.

Mobile App — On-Call Tab

The mobile app has a dedicated On-Call tab in the bottom navigation bar alongside the Pages feed.

The On-Call tab lists every schedule in your organization. For each schedule you can see:

  • Who is currently on call (their name in teal)
  • Whether an override is active (amber "Override" badge)
  • How long an active override lasts (e.g. "Until 3:00 PM")
  • Whether you are currently covering (shows your end time in a teal box)

Pull down to refresh the list at any time, or use the refresh button in the top right corner.

Mobile Overrides

You can set and end overrides directly from the mobile app — no need to open a browser.

Cover Now

1

On the On-Call tab, find the schedule you want to cover and tap Cover Now.

2

A duration picker appears with chip options: 1h, 2h, 4h, 8h, 12h, 24h. Tap your chosen duration.

3

Tap Cover Now to confirm. The schedule refreshes immediately — your name appears as on call across all devices.

End Now

While you have an active override, the Cover Now button changes to End Now. Tap it to cancel your override immediately. The scheduled rotation resumes on every device in your organization in real time.

Real-time updates — Override changes made on mobile are immediately reflected on the web portal and on all other team members' devices. There is no delay — whoever is on call is always current.

Notification Priority Levels

The page priority you choose controls more than who gets notified first — it determines how aggressively the notification cuts through the recipient's device settings. PingParrot uses two tiers on iOS, backed by Apple Critical Alerts Entitlement.

Critical High

Apple Critical Alerts — bypasses silent mode & DND

Pages at critical or high priority use Apple's Critical Alerts Entitlement, which Apple grants only after a review process. The notification plays at full volume even when the device is silenced or Do Not Disturb is on. The ringer switch and Focus modes are overridden entirely. This is the strongest delivery tier available on iOS.

Normal Low

Time-Sensitive — breaks through Focus filters

Pages at normal or low priority use iOS Time-Sensitive delivery. These notifications break through Focus modes (such as Sleep or Work Focus) but respect the ringer switch and your volume setting. If the device is silenced, the notification arrives visually and vibrates but does not play audio.

Android — On Android, pages at critical or high priority are delivered to high-priority notification channels and trigger full-screen intents when the screen is off. Priority channels are created at install time; if a user dismisses the channel permission, they can re-enable it in Settings → Apps → PingParrot → Notifications.
Tip — For pages that require immediate response regardless of device state, use Critical or High priority. For informational pages where the recipient should be aware but can respond at their convenience, Normal or Low is appropriate.

Calendar Subscribe

Every on-call schedule has a personal subscribe URL that exports the rotation as a live iCal feed. Add it to Google Calendar, Apple Calendar, Outlook, or any CalDAV client and it stays up to date automatically.

Finding the URL

Open On-Call → Schedules and expand any schedule. Directly above the Override panel you'll find a Subscribe section with the unique URL for that schedule. Click the copy button to copy it.

GET /ical/schedule/{token} Public — no login required

Adding to Google Calendar

  1. 1. Open Google Calendar and click the + next to Other calendars.
  2. 2. Choose From URL.
  3. 3. Paste the subscribe URL and click Add calendar.
  4. 4. Google will poll the feed periodically. Events show who is on call for the next 6 months.

Adding to Apple Calendar

  1. 1. In Apple Calendar, choose File → New Calendar Subscription.
  2. 2. Paste the subscribe URL and click Subscribe.
  3. 3. Set Auto-refresh to Every hour for timely updates.
Tip — The URL is public but unguessable — treat it like a calendar invite link. If a schedule is deleted and recreated, a new token is issued and the old URL stops working.

Maintenance Windows

Maintenance windows suppress pages during planned downtime so your team isn't flooded with alerts during a scheduled maintenance event or deployment.

How they work

  • An Org-wide window suppresses all group and broadcast pages for your entire organization.
  • A Group window suppresses pages targeted at one specific group only.
  • On-call delivery is never suppressed — escalation chains continue to fire even during a maintenance window. Direct (single-user) pages are also unaffected.
  • Suppressed pages are saved with status suppressed and logged so you have a full audit trail.

Managing windows

Go to Maintenance in the sidebar (owners and managers only). Windows are grouped into Active, Upcoming, and Past. Create a window by providing a name, start time, end time, and scope. Delete a window at any time — if it was active, suppression ends immediately.

Note — Maintenance windows are time-bounded and scheduled in advance. For ad-hoc "pause my alerts" needs, use the Snooze toggle in your profile sidebar instead.
Snooze & on-call — If you snooze yourself and then come on-call based on your schedule, PingParrot automatically removes your snooze when your on-call window starts. This ensures you are never silenced when your rotation is active. You can re-snooze manually once your shift ends.