Self-hosted · For teams that run 24/7

Everyone your teams work with — availability, on-call, and alerts, in one place.

Team Planner is a self-hosted platform for organizations where multiple teams (yours, other departments', outsourced) have to stay coordinated around the clock. Native Entra ID SSO, Personio and Workday leave sync, Outlook Out-of-Office, Jira alerts and Teams/Slack notifications — all configured from one admin console, all running inside your own cluster.

Coverage alert:availability drops to 71% on Jul 22 – Jul 24
Team member
14
T
15
W
16
T
17
F
18
S
19
S
20
M
21
T
22
W
23
T
JM

Jordan Marr

Platform Engineer

On-call
SL

Sana Levent

SRE

Annual leave
DK

Devin Kwan

Backend Engineer

Training
PR

Priya Ramos

DevOps Lead

Annual leave
AT

Aiden Thorpe

Platform Engineer

Team capacity

Today · 100%

100
100
100
100
86
86
71
71

Product tour

See what "coordinated" looks like

Two minutes. A day in the life of a team lead using Team Planner to keep three teams on the same page.

Curious about a specific integration? Jump to Integrations →

Built on four principles

Self-hosted, your infrastructure

Runs on your own Kubernetes via a versioned Helm chart. Your data stays inside your network — no third-party SaaS holding it.

Human coordination, not another calendar

Not another team calendar. A layer that turns availability data from every source into the one answer your teams actually need: is coverage okay for the next two weeks?

Every integration is post-deployment

Teams, Slack, Jira, Entra ID and Outlook are all configured by your own admin from one screen. No redeploys.

One place for planning, alerting, and cross-team visibility

Capacity, on-call rotations, HR-sourced leave, Outlook OOO, and Jira alerts share the same teams, the same schedule, the same channels.

Planning

The capacity, availability and on-call layer

Everything your team needs to plan leave, on-call and coverage — with record integrity, RBAC and auditability built for enterprise use.

Live team capacity

See who's working, who's out, and today's availability across every team — leave, sickness, project work, on-call and training all in one view.

Sprint-aligned capacity

Pulls sprint boundaries straight from Jira and reports team capacity per sprint, not just per calendar week — planning that matches how your teams actually work.

Leave & event workflows

Leave, sick, project work, on-call and training entries with configurable manager approval flows. Reductions flow into capacity automatically.

On-call rotations

Automatic daily, weekly or biweekly rotations with manual overrides for any period, and full audit history.

Role-based access, per team

Four roles — admin, manager, user, viewer — assigned per team, not just globally. Users only see and act on what they should.

Delegated manager rights

A manager can hand a teammate the ability to run a team's settings — approvals, on-call, alerts — without making them the org-chart manager or touching the real reporting line.

Org hierarchy modeling

Model your real reporting structure: member → manager → director → VP → C-level. Powers approval routing and management views.

Accurate historical rosters

Scroll the calendar back to any past date and see exactly who was on the team then — departed members and old team assignments show correctly, badged, never deleted.

Historical record integrity

Entries from before today lock automatically for regular users — only admins can amend history. Reporting numbers stay trustworthy.

Capacity thresholds & alerts

Warning and critical thresholds per team, with coverage-gap detection ahead of critical weeks and on-call/leave conflict warnings.

Cross-team resource requests

One team can request spare capacity from another for a defined delivery window — a real request/accept flow, not a Slack DM nobody remembers.

Admin console

Branding & white-label, CSV import/export via the Import Center, full audit log and a system health panel — all in one place.

Alerts & Ops

The alerting engine most companies rebuild every year, already inside your planner

Scheduled capacity alerts, scheduled Jira JQL alerts, and push-driven real-time Jira events — all rendered by templates you write, delivered to Teams or Slack.

Scheduled

Capacity & on-call conflict alerts

Capacity-drop alerts, overlapping-unavailability warnings, and on-call/leave conflict alerts that @mention the affected on-call engineer and their manager — on your schedule.

Scheduled

Jira JQL alerts

Write any JQL — "P1 tickets unassigned for over an hour" — and get notified on your own schedule. Works for plain Jira Software and Jira Service Management alike.

Real-time

Jira Webhook Relay

A native Jira Automation rule pushes the event to Team Planner the instant it happens — new P1 landing, SLA about to breach, ticket reopened — and we relay it to Teams or Slack in seconds.

No-code

Flexible message templates

Write your own message with placeholders for whatever Jira sends — priority, issue key, summary, customer, assignee (with an automatic "Unassigned" fallback), SLA remaining, any custom field. No fixed schema.

Scheduled

On-call/leave conflict detection

If someone is scheduled for on-call the same week they're on leave, Team Planner catches it days in advance and @mentions both the on-call engineer and their manager. Cross-references your on-call rotation with leave records from HR — the two data sources that usually don't talk.

acme-support / #on-call-alertsnow
Team Planner · Jira Webhook Relay
Priority
P1 — Critical
Issue
SUP-4821 · Checkout returns 500 for EU customers
Customer
Halcyon Retail (Enterprise)
Assignee
Unassigned — routing to on-call
SLA breach in
23 min
On-call now
@Priya Ramos · Platform team

One channel field. Teams or Slack, auto-detected.

Every alert type — scheduled or real-time — accepts a Microsoft Teams or Slack incoming webhook URL. The channel type is auto-detected. No separate Slack configuration screen, no separate Teams screen.

Microsoft TeamsSlackAuto-detected

Integrations

Connects to the identity, HR and ops tools you already run

Every integration is added post-deployment from Admin › Integrations. No code changes, no Kubernetes secrets, no redeploys.

Microsoft Entra ID SSO

SSO / OIDC

Sign in with your corporate identity. Optional — local login is always available as a fallback so you're never locked out.

Microsoft Graph directory sync

Graph API

Automatically imports your org structure, teams and manager hierarchy from Microsoft Graph. No manual CSV upkeep. Scheduled or on-demand.

Personio

HR API

Sync leave requests and out-of-office from Personio directly into every team's calendar. Approvals in Personio flow through to Team Planner without a second data entry.

Workday

HCM API

Sync absence and leave records from Workday HCM. Ideal for larger organizations where Workday is the system of record for time-off.

Outlook Out-of-Office sync

Graph API

When someone sets an OOO auto-reply in Outlook, Team Planner writes it to the calendar automatically. Roll out org-wide, or let members opt in themselves.

Calendar feeds (ICS)

ICS

Personal and per-team ICS calendar links your users can subscribe to from Outlook, Google Calendar or Apple Calendar. One-way, read-only.

Microsoft Teams

Webhook

Incoming webhook. Daily digests, capacity alerts and every Jira alert type delivered straight to a Teams channel.

Slack

Webhook

Same one-field setup as Teams. Auto-detected from the webhook URL — no separate configuration path.

Jira Cloud

API token

One API token powers both scheduled JQL alerts and the real-time Webhook Relay. Works with Jira Software and Jira Service Management.

Deployment

Self-hosted on your own Kubernetes cluster

Team Planner ships as a versioned Helm chart, separate from the application source. Your data, your cluster, your control plane.

Versioned Helm chart

A dedicated, versioned chart tracks releases independently from the app image. Upgrade on your own cadence.

Secure-by-default values

Auto-generated secrets for a fast first deploy. Every credential and identity-specific value is a clearly labeled placeholder for production customization.

You own the data

Runs entirely inside your cluster. No vendor telemetry, no data egress, no shared control plane.

White-label out of the box

Every customer sets their own company name and logo. Nothing hardcoded — the product is neutral by design.

Licensing

Start free. Upgrade when you're ready.

Team Planner is self-hosted — you run the image, we handle licensing. Start with the free tier and no license at all. When you need identity sync, HR integrations, and unlimited users, request a trial license.

No license required

Free

Free forever

  • Up to 20 users, 2 teams
  • CSV import
  • Teams / Slack notifications (outbound webhook)
  • Jira alerts
  • Community support (GitHub issues & docs)

Identity sync (SSO, MS Graph, Personio, Workday, Outlook) unlocks in Trial and Paid.

Get started
3 months

Trial

Free for 3 months

  • Unlimited users, unlimited teams
  • All integrations unlocked (SSO, MS Graph, Personio, Workday, Outlook)
  • All alert types
  • Direct email support from the team
Request a trial license
Yearly

Paid

Contact us for pricing

  • Everything in Trial
  • Annual license, priority support
  • Installation assistance if needed
  • Custom feature discussions
Talk to sales

For organizations that need custom integrations, air-gapped deployments, or dedicated SLAs, we offer an Enterprise arrangement. Reach out through the portal above.

No customer data ever leaves your cluster.
We only receive server ID + license usage counts (opt-out available).
Docker image is public on Docker Hub.
You can export all your data at any time.

How it works

From helm install to first Teams alert

01

Deploy the Helm chart

Pull the image and install the versioned chart into your own Kubernetes cluster. Secrets are auto-generated for the first boot.

docker pull teamplanner21/team-planner:latest
02

Set up teams & roles

Sync your org from Microsoft Entra ID or import via the CSV Import Center. Assign per-team admin, manager and viewer roles.

03

Connect Jira, Teams, Slack

From Admin › Integrations, paste one API token and one or more webhook URLs. Channel types are auto-detected.

04

Write your alerts

Define JQL rules, capacity thresholds, and message templates. Point Jira Automation at the Webhook Relay for real-time events.

Use cases

One product for planning and paging

Platform & SRE

Rotations that stay covered — and alerts that actually reach the right person

  • Weekly on-call rotations with overrides and audit history
  • Real-time P1 alerts routed to the current on-call engineer
  • Automatic conflict detection when on-call clashes with leave
Support & customer ops

SLA breaches surfaced before customers notice

  • JQL alerts for unassigned tickets over any threshold
  • Real-time SLA-remaining relays to Teams or Slack
  • Assignee "Unassigned" fallback so nothing gets swallowed
People ops & IT

One source of truth for who is where, this week

  • Leave, sick, training and project tracking with approvals
  • Entra ID sync for the real reporting structure
  • Per-team roles: admin, manager, member, viewer

Get in touch

Talk to us through our customer portal

Open a request in our Jira Service Management portal. We'll track it, respond in-thread, and reach out to schedule a walkthrough of your specific setup.

  • Track your request status anytime
  • Get replies directly in the portal
  • No credit card, no obligation

Open customer portal

Open a request in our Jira Service Management portal. We'll track it, respond in-thread, and reach out to schedule a walkthrough of your specific setup.

Open customer portal

Prefer email? Write to contact@team-planner.net