Self-hosted · Native Microsoft 365 integration

Enterprise team capacity, leave and on-call planning — on your own infrastructure.

Team Planner is a self-hosted platform built for mid-to-large Microsoft 365 organizations. Entra ID SSO, Microsoft Graph directory sync, Outlook Out-of-Office sync and ICS calendar feeds — so your identity, org chart and availability stay in sync without a third-party SaaS holding your data.

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

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.

Native to Microsoft 365

SSO via Entra ID, directory sync via Microsoft Graph, Outlook Out-of-Office sync and ICS calendar feeds. Uses the identity infrastructure you already own.

Self-service integrations

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

Planning and alerting, one product

Capacity, on-call and real-time 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.

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.

Org hierarchy modeling

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

Historical record integrity

Entries older than 7 days 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.

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.

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

Native to your Microsoft 365 stack — plus the ops tools you already use

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.

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.

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.

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 hello@teamplanner.app