DEV Community

Cover image for 10 Best Self-Hosted On-Call Scheduling Tools
Yathartha Shekhar
Yathartha Shekhar

Posted on Originally published at fluidify.ai

10 Best Self-Hosted On-Call Scheduling Tools

Cross-posted from the Fluidify blog. Disclosure: I build FluidifyAI Regen, one of the tools below.

If you're looking for a commercial, proprietary on-call tool you can run on your own infrastructure, the answer is that almost none exist. PagerDuty, Opsgenie, incident.io, xMatters, and most of the category are SaaS-only, no on-premise license at any price. The tools that do run on your own infrastructure are, with rare exception, open source, so "self-hosted" and "open-source" end up covering nearly the same ground here.

So this list only asks one question: how good is each tool at the scheduling job (rotation types, overrides, calendar sync, timezones), and what does it take to run and back up yourself. For the full feature picture across the same tools, see the open-source on-call tools comparison.

Scheduling comparison at a glance

Tool License Rotations Overrides / leave Calendar sync (iCal) Self-host footprint Status (2026)
FluidifyAI Regen AGPLv3 Layered, primary/secondary, multi-timezone Overrides, leave, auto public holidays In-app calendar only Postgres + Redis, optional HA Active
GoAlert Apache-2.0 Hourly/daily/weekly rotations Overrides, temporary schedules Yes, subscription feeds Single Go binary + Postgres Active
LinkedIn Oncall + Iris BSD-2-Clause Rotations, follow-the-sun Overrides, swaps Yes, per user and team Two services + MySQL Low activity
Grafana OnCall AGPLv3 Layered rotations Overrides Yes, import and export Several services Archived March 2026
Keep MIT core None, delegates to an on-call tool None No Containers Active
Zabbix AGPLv3 None Maintenance windows only No Full monitoring stack Active
Icinga 2 GPLv2 None Time periods only No Full monitoring stack Active
Alerta Apache-2.0 None None No API + database Low activity
Cabot MIT None None No Django app Dormant
Alertmanager + Karma Apache-2.0 None Silences only No Two small binaries Active

What actually differs on the scheduling side

Rotation types: weekly handoff is table stakes. Layered rotations (a primary layer plus a secondary layer, each rotating independently), follow-the-sun across timezones, and custom rotation lengths separate a full scheduling engine from a basic one.

Override handling: swapping a single shift without editing the underlying rotation, and treating holidays and planned leave as first-class exceptions rather than manual one-off edits.

Calendar sync: whether the schedule publishes an iCal feed that Google Calendar, Outlook, or Apple Calendar can subscribe to.

Timezone handling: a follow-the-sun rotation needs each person to see their own shift in their own local time, not everyone reading the same UTC-anchored schedule.

Backup and data ownership: self-hosting means you own the backup story: what database the schedule lives in, and what disaster recovery looks like if it's lost.

Scheduling depth, tool by tool

1. FluidifyAI Regen (AGPLv3): layer-based schedules with primary/secondary layers, overrides, and leave as first-class concepts (mark someone unavailable and the rotation skips them), public holidays pulled in automatically for several countries, and per-schedule timezones with each person seeing shifts in their own local time. Runs on Postgres and Redis, with documented PostgreSQL HA (Patroni) and Redis Sentinel support for more than one node. Imports schedules from Grafana OnCall, PagerDuty, or Opsgenie in one step. Also does escalation and incident coordination. The gap: shifts show in Regen's own calendar view, but as of v1.0 there's no iCal feed for Google Calendar or Outlook.

2. GoAlert (Apache-2.0): built by Target. Hourly, daily, and weekly rotations, overrides that add, remove, or replace someone on a shift, temporary schedules for one-off coverage, and per-user iCal subscriptions. A single Go binary plus Postgres, so one database to snapshot. Scheduling and escalation only, no incident coordination layer.

3. LinkedIn Oncall (BSD-2-Clause, paired with Iris for escalation): a dedicated scheduling calendar with follow-the-sun support, override and swap events, and iCal feeds per user and team. Proven at scale at LinkedIn. Two services to run and back up, on MySQL, and the last Oncall commit was August 2025.

4. Grafana OnCall (AGPLv3, archived March 2026): had layered rotations, overrides, and iCal import and export. Still runs if deployed, but the repo is archived, so no future fixes for a new deployment. Regen can import its schedules, except ones defined as an external iCal URL.

5. Keep (MIT core, separately licensed ee/): alert correlation and workflows, not a scheduler. No rotation engine; it hands alerts to an on-call tool that owns the schedule.

6. Zabbix (AGPLv3 since 7.0): escalation steps and maintenance windows, but no rotation concept. Who gets notified is a static user-group setting.

7. Icinga 2 (GPLv2): notification rules with time periods, but no automatic handoff. Rotations usually mean a script rewriting config.

8. Alerta (Apache-2.0): alert deduplication and routing API, no scheduling at all.

9. Cabot (MIT): lightweight checks with an on-call hook, no schedule engine, no commits since 2023.

10. Prometheus Alertmanager + Karma (Apache-2.0): routing trees and silences, with Karma as the triage UI. Routes by label, not by who's on shift.

For 5 through 10 you'd be building rotation logic yourself on top, usually a cron job or external scheduler feeding config in.

Self-hosting operational checklist

Before picking any of these: what's the backup schedule for the underlying database, what's the recovery time if it's lost, does the tool support more than one instance for availability, and who owns the upgrade process. Budget for this regardless of which one you pick. If you want rotation definitions in version control too, see escalation policies as code.

FAQ

Is there really no commercial self-hosted on-call scheduling tool? Not one we found with genuine on-premise deployment as a standard offering. A few vendors do bespoke on-prem for large enterprise contracts, but that's a custom deal, not a product on a pricing page.

Which of these has the deepest scheduling engine? FluidifyAI Regen and GoAlert: Regen for breadth of rotation types, leave, and timezone handling, GoAlert for a clean, focused implementation in a smaller footprint with iCal built in.

Which ones sync shifts to Google Calendar or Outlook? GoAlert and LinkedIn Oncall publish iCal feeds. Grafana OnCall did, but it's archived. Regen doesn't publish an iCal feed as of v1.0.

Should I pick based on scheduling depth alone? Only if scheduling is your whole need. If you also want escalation and incident coordination in the same tool, see the broader open-source on-call tools comparison.

Choosing between them

If scheduling depth and full incident coordination both matter, FluidifyAI Regen covers the most ground in one self-hosted tool; the installation guide gets a single node running. If you want the smallest footprint and iCal sync out of the box, and are fine with escalation and coordination logic elsewhere, GoAlert's rotation and override handling is solid on its own.

Top comments (0)