Key takeaways
- "Self-hosted" and "open-source" are nearly the same list in this category. We looked for commercial on-call tools that offer genuine on-premise deployment, not just SaaS, and found essentially none beyond the open-source options already out there.
- This list is scoped differently from a general open-source comparison: it ranks on scheduling depth specifically (rotation types, override handling, calendar sync, timezone support), plus what each one actually takes to run and back up yourself.
- FluidifyAI Regen has the deepest scheduling feature set of the group (layered rotations, overrides, automatic public holidays, leave, per-schedule timezones) alongside full escalation and incident coordination, without per-seat pricing. GoAlert and LinkedIn Oncall are the two to pick if calendar sync via iCal is a hard requirement today.
Why self-hosted and open-source overlap almost completely here
If you're specifically 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 a "self-hosted" list and an "open-source" list end up covering nearly the same ground. Don't spend long hunting for a proprietary self-hosted option; in this market it mostly doesn't exist.
That's why this piece overlaps with our 10 best open-source on-call management tools: same tools, different question. That list compares the full feature picture (escalation, incident coordination, alert routing). This one only asks how good each tool is at the scheduling job, since that's the part self-hosting is usually chosen for: keeping the rotation logic and the underlying data under your own control. If you also want SaaS platforms in the comparison, see the 10 best on-call management tools for 2026.
What actually differs on the scheduling side
Rotation types: weekly handoff is table stakes. Layered rotations (a primary layer plus a secondary/escalation 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 handling holidays and planned leave as first-class exceptions rather than manual one-off edits, matters once a team runs on-call for more than a few months.
Calendar sync: whether the schedule publishes an iCal feed that Google Calendar, Outlook, or Apple Calendar can subscribe to, so people see their on-call shifts where they already look instead of needing to open a separate tool.
Timezone handling: a distributed team on 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 and doing the math themselves.
Backup and data ownership: self-hosting means you own the backup story. What database does the schedule live in, how do you back it up, and what does disaster recovery actually look like if that database is lost.
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 |
Scheduling depth, tool by tool
1. FluidifyAI Regen (AGPLv3): a layer-based schedule model with primary/secondary layers, overrides, and leave as first-class concepts (marking someone unavailable makes the rotation skip them, no manual swap needed), public holidays pulled in automatically for several countries, plus multi-timezone support so a follow-the-sun rotation shows each person their own local hours. Runs on Postgres and Redis, with documented PostgreSQL HA (Patroni) and Redis Sentinel support if you need more than a single node. Schedules can be imported from Grafana OnCall, PagerDuty, or Opsgenie in one step instead of rebuilt by hand. Also does full escalation and incident coordination, not scheduling alone. 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. Pricing is free self-hosted with unlimited users and schedules.
2. GoAlert (Apache-2.0): built by Target. Hourly, daily, and weekly rotations, overrides that add, remove, or replace someone on a shift, and temporary schedules for one-off coverage. Each user can create an iCal subscription to their shifts, which makes it one of the two strongest calendar-sync options here. A single Go binary plus Postgres, one of the simplest backup stories on this list (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 per team. Proven at real scale internally at LinkedIn. Two separate services to run and back up, on MySQL rather than Postgres, and activity has slowed: the last Oncall commit was in August 2025.
4. Grafana OnCall (AGPLv3, archived March 2026): had solid layered rotations, overrides, and iCal import and export when it was actively developed. Still runs if deployed, but the repository is now archived, so a new deployment means no future fixes if the scheduling logic has a bug you hit. If you're already on it, Regen's one-step schedule import is one way off, though schedules defined as an external iCal URL in Grafana OnCall need recreating by hand.
5. Keep (MIT core, with a separately licensed ee/ directory): an alert correlation and workflow tool, not a scheduler. It has no rotation engine of its own; it routes alerts to an on-call tool (it ships providers for Grafana OnCall and PagerDuty, among others) that owns the schedule. Useful upstream of a scheduler, not instead of one.
6. Zabbix (AGPLv3 since 7.0): escalation steps and maintenance windows tied to check failures, but no shift or rotation concept. Who gets notified is a static user-group setting you'd have to rewrite for each handoff.
7. Icinga 2 (GPLv2): notification rules with time periods, so you can express "this group, these hours", but not a rotation that hands off automatically. Rotations are usually generated by a script that rewrites the config.
8. Alerta (Apache-2.0): a clean alert deduplication and routing API, with no scheduling at all. Pair it with a scheduler downstream.
9. Cabot (MIT): lightweight checks with an on-call notification hook, but no real schedule engine, and the repository hasn't seen a commit since 2023.
10. Prometheus Alertmanager + Karma (Apache-2.0): mature routing trees and silences, with Karma as a far better triage UI. Routing is by label, not by who's on shift, so most teams put one of the top four downstream of it.
The pattern across 5 through 10: none of them has a real rotation engine. You'd be building that logic yourself on top, usually with a cron job or an external scheduler feeding configuration in. Not a fit if scheduling depth is what you're optimizing for.
Self-hosting operational checklist
Before picking any of these, know the answers for your own setup: what's the backup schedule for the underlying database, what's the recovery time if that database is lost, does the tool support running more than one instance for availability, and who owns the upgrade process when a new version ships. None of that is specific to any one tool on this list. It's the operational cost of self-hosting anything, so budget for it regardless of which one you pick. If you want the rotation definitions themselves under 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 in 2026. A few vendors will do bespoke on-prem for large enterprise contracts, but that's a custom deal, not a product you can evaluate off a pricing page.
Which of these has the deepest scheduling engine specifically? FluidifyAI Regen and GoAlert, for different reasons: Regen for the breadth of rotation types, leave and holiday handling, and timezone support, GoAlert for a clean, focused implementation of the same core job in a smaller footprint, with iCal subscriptions built in.
Which self-hosted tools sync on-call shifts to Google Calendar or Outlook? GoAlert and LinkedIn Oncall both publish iCal feeds you can subscribe to. Grafana OnCall did too, but it's archived. Regen shows shifts in its own calendar view but doesn't publish an iCal feed as of v1.0.
What's the best self-hosted replacement for Grafana OnCall's scheduling? Regen if you want to import existing schedules in one step and keep escalation and incident coordination in the same tool; GoAlert if you want the smallest footprint and are fine rebuilding schedules by hand. More detail in our Opsgenie migration walkthrough, which covers the same import flow.
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, factor that in. Our broader open-source on-call tools comparison covers the full feature picture across the same tools.
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 possible footprint and iCal sync out of the box, and are comfortable with escalation and coordination logic elsewhere, GoAlert's rotation and override handling is solid on its own. Everything past that is a step down in scheduling depth in exchange for a narrower, simpler tool, or a monitoring platform where scheduling was never really the point.
