On-call scheduling and escalation for your team. Only whoever is on call gets woken up.
Plan rotations, overrides and escalation tiers in one place. Uptimeify pages exactly the person on call right now and escalates on its own until someone acknowledges.
Made and Hosted in the
European Union
GDPR-Compliant Hosting
in Germany
GEO-Redundant Replica
across the EU
Schedules that hand themselves over.
Set once who is in the team, when the handoff happens and which time zone the schedule runs in. From then on, the next weeks are covered. No spreadsheet that goes stale after the next vacation, no group chat asking who has the phone tonight.
- Rotations at your pace: daily, weekly, biweekly, monthly or custom down to the minute, so handoffs happen when your team is at their desks anyway.
- Business hours and time zones built in: weekly windows such as weekdays 09:00 to 18:00 and a time zone per schedule, so office-hours coverage and distributed teams never need a second schedule.
- One calendar for the whole team: see who is on call when, overrides included, so gaps show up before an alert falls into one.

A schedule has exactly one rotation. rotationMode controls the groups: none puts every member on one continuous shift, auto splits the pool into groups of autoRotationSize, explicit takes your groups in your order. The cadence comes from rotationRepeats (daily, weekly, biweekly, monthly, custom), with custom units from minutes to months. The shortest shift is one minute, and handoffs are minute-precise.
Every schedule carries an IANA time zone such as Europe/Berlin. 09:00 means 09:00 local time, across daylight saving changes. Sub-day cadences step in absolute time, so a handoff is never doubled or skipped. Up to 50 weekly windows per schedule, an empty list means 24/7. Shifts are precomputed up to 90 days ahead, so finding who is on call at paging time is a timestamp lookup, not a live calculation. GET /api/im/on-call and GET /api/im/teams/:id/on-call-now read the same shift table and return the same result, overrides included.
No response? The next tier is up.
An escalation chain is the honest answer to what happens when the first person does not pick up. You set tiers, attach one or more schedules to each, and decide after how many minutes the incident moves on. No incident sits waiting because someone is out of signal.
- Tiered escalation with its own wait time: without an acknowledgement, Uptimeify pages the next tier after the set delay, so your response promise never depends on one person.
- Several schedules per tier: Hamburg by day, Lisbon in the evening, both on the same tier, so follow-the-sun works without special logic.
- A dry run instead of a test night: walk the chain for a severity and a point in time and see who would be reached, when and on which channel, without a single phone ringing. Warnings flag missing numbers, missing devices or an empty quota before it matters at night.

Every tier has autoEscalationEnabled (on by default) and autoEscalationAfterMinutes (default 5). autoEscalationStopMode decides whether an acknowledgement stops the chain (acknowledged, default) or only the resolution does (resolved). autoEscalationTimeFilters limits automatic escalation to weekly windows, for example after hours only.
repeats re-pages a tier, and at team level escalationRepeats repeats the whole chain. A tier's on-call set is the union of all its schedules. Creating a tier directly with people creates a 24/7 schedule for them. When no tier is left, the organization's fallback channel is paged. From a live incident, "Escalate now" jumps straight to the next tier.
POST /api/im/teams/:id/escalation-dry-run walks the tiers the way escalation would for an incident with severity arriving at at, and returns person, channel, delay and warnings per tier. Nothing is sent, nothing is stored, no incident is created and round robin does not advance. Organization admins, editors and team admins may call it.
Vacation, sick days, shift swaps. The schedule stays as it is.
Absences go in as overrides: a window in which someone else takes over. The rotation itself stays untouched. After the vacation it simply carries on, and nobody has to remember who swapped with whom.
- Overrides instead of rebuilding: put someone on call for a window or take them off, so the schedule continues cleanly after the absence.
- Give away your own shift: team members hand shifts of up to seven days to a teammate, who gets an email, so not every swap has to go through you.
- One team or all teams: an absence can apply everywhere the person is scheduled, so nobody on vacation gets paged from a second team.

online puts a person on call for the window and replaces everyone else currently on call. offline takes them off, and everyone in coveredByUserIds (up to 200) gets exactly the pages that person would have had. With round robin, the coverers replace the covered person one to one. All of them are paged, including on incidents that are already running. An empty list deliberately leaves a gap that escalation fills from another tier.
applyScope: all_teams applies the override in every team of the person, escalationTierOrder limits it to one tier. There is no priority field: when overrides overlap, the one created later wins. Team overrides without a schedule are possible. Self-service without admin rights is tightly scoped: exactly one coverer from the same team, at most seven days, within your own shifts, at most ten give-aways per hour.
Push first, then SMS, then a call. Acknowledged with 4.
You give your team a default chain, for example push right away, SMS after five minutes, a call after ten. Every new person starts with it and adjusts it if needed. When the phone rings at night, pressing 4 is enough to stop the paging.
- Rules by urgency: high and low urgency get their own chains of push, SMS, voice call and email, so a sev1 rings differently from a sev4.
- A default chain for the whole team: new members start with your setup, and the team view shows who has a verified number and matching rules, so nobody is unreachable on their first night.
- A call that announces itself: it opens with "Uptimeify alert", repeats the message three times and waits for 4. If nobody picks up, it calls back once after a minute, so one missed call is not the end of the chain.

Rules apply per urgency (high for sev1 and sev2, low for sev3 and sev4) as "after delayMinutes, notify via channel X", with a delay from 0 to 1440 minutes. severityChannels blocks channels per severity.
GET/PUT /api/im/notification-template defines what new people start with. It is not retroactive: anyone who already has settings keeps them. Organization admins and organization-wide tokens set a person's settings through PUT /api/im/users/{userId}/notification-settings, phone number included. The last write wins, and lastAdminChangeAt shows when an admin last changed them. SMS and call steps for an unverified number are stored and stay inactive until the number is confirmed with a six-digit code. A banner points this out at login.
It opens with "Uptimeify alert", reads the incident text and the prompt three times, then waits about ten seconds for the key. 4 acknowledges the incident, any other key does not. The phone rings for 45 seconds. Not answered, busy or declined means one more call after a minute, and an acknowledgement in the meantime cancels it. If the primary provider fails, a second provider reads the same text but cannot capture the key. In that case you acknowledge through the link in your SMS, email or push. The test page checks the call too: press 4 and the call confirms that the key reaches us.
SMS and calls draw from the monthly SMS quota, one call counts as one unit. Overage is off by default, and organization admins set a monthly cap themselves. When the quota is used up, push and email keep going and escalation jumps to the next tier at once.
We don't just monitor. We help you sell.
Every Uptimeify subscription includes access to our Success Kit, a collection of battle-tested resources to turn your monitoring into a profit center.
Service Level Agreement templates to define professional boundaries with your clients.
Find the sweet spot for your care plans. Calculate margins based on check frequency and support hours.
Powerpoint Templates that explain 24/7 monitoring to non-technical clients. Close more retainers.
Use automated reports to proactively communicate value, so clients never ask what they're paying for.
Ready to turn monitoring into a profit center?
Claim your Success Kit and start scaling today.
Frequently Asked Questions
The on-call schedule says who is on call at what time. The escalation tier says in which order those schedules get paged during an incident. In Uptimeify, schedules sit under tiers: if the first tier does not respond, the next one is paged. That keeps "who is on call" cleanly apart from "who steps in".
The incident escalates to the next tier automatically after the set wait time, five minutes by default. An unanswered call is retried once before that. Uptimeify can also repeat tiers or the whole chain. When no tier is left, the incident goes to your organization's fallback channel, so it never sits unnoticed.
Yes. An alert call opens with "Uptimeify alert", reads the message three times and then waits for a key. Press 4 and the incident is acknowledged and paging stops for everyone else. If you do not pick up, Uptimeify calls once more after a minute. After that, your chain continues as configured.
No. Incident management is included in your plan at no extra cost, and teams and on-call schedules are not billed per person. Only SMS and calls count against your quota, and one call counts as one SMS. You can put the whole team on call instead of rationing the pager to two people for budget reasons.
No. On-call schedules and escalation tiers are an internal tool for your team, and client logins have no access to incident management. Your clients see the result: a fast response and, if you want, your status page. You sell a reliable response promise without exposing your roster.
For the technical stakeholder
Ready to make on-call predictable?
Create your first team, build the schedule and the escalation chain, and walk it through a dry run before the first night. Your team knows who is on call. Your clients only notice that someone responds.