Every day

PTO and leave

Leave is requested where people already talk, decided by rules you set, and excused from every score the moment it is approved.

Requesting leave

  • In a direct message with the bot, a command or a plain sentence.
  • A labelled form in the team’s PTO room; the bot posts a public notice that the request is awaiting approval and clears it when decided.
  • From the dashboard or the installable app, with an optional hand-off colleague and note.
  • A manager can create leave on someone’s behalf.
pto 2026-08-11 to 2026-08-13 family trip
sick today
Type: vacation
Date: 11, 12 and 13 August
Reason: family trip

Writing the dates

  • A year-less date is this year unless next year’s occurrence is within 90 days. Sick days are never rolled forward; people legitimately report one that already happened.
  • Clock times and parentheticals are stripped first, so 6 August (flight 11:30) files 6 August.
  • A request older than one day of grace is flagged backdated and always needs an explicit admin decision.
  • Editing a request message supersedes the original; an already-approved request is never silently unwound, admins get a review notification instead.
13 August13 Aug
Thursday, Aug 66 Aug
11, 12, and 13 August11 Aug to 13 Aug
4 & 5 October4 Oct to 5 Oct
from 11 August to 17 August11 Aug to 17 Aug
2026-08-11 to 2026-08-1311 Aug to 13 Aug
30 December and 2 January30 Dec to 2 Jan, next year

Auto-approval guardrails

Off by default. When enabled, a request auto-approves only when every check passes; otherwise it routes to a human with the reasons listed.

pto.requires_approver
pto.max_consecutive_days
pto.require_handover
Lengthat most 2 days
Noticeat least 3 days
Typepto, vacation or half-day; sick and other always route
Balancemust fit the remaining annual balance (20 days by default)
Coverageno more than 30% of the team off on those days
On-callthe requester is not rostered on-call with no backup
Hand-overoptionally, no open tasks in the requester’s own standups

Six ways to approve, one guarantee

The dashboard button, an approve or deny reply in chat, the Slack button, the rules above, the neural engine, and admin inaction past a configurable timeout all decide a request. Every route writes the same leave record, clears the room notice and announces the decision, so an approved request can never sit in the system as an absence. Discretionary leave beyond the balance is refused by the dashboard and never granted by the two routes where no human decided.

approve 42
deny 42 coverage too thin that week

Leave and the score

  • Approved leave, sick days and holidays are removed from expected days and expected hours entirely.
  • If leave leaves less than half of a person’s normal week (minimum two days), the week is drawn as a gap in the trend, never as a low score.
  • A planned leave that begins in the window must have a hand-off recorded or it lowers Reliability; sudden and sick leave are exempt.
  • Approve promptly: until a request is decided the person is still expected on those days. Pending requests sit on the Requests page and the bot-message gate already treats pending days as off.

Patterns and calendars

  • Every Monday a job flags suspicious sick patterns to admins: six or more sick days in 60 days, or three or more on the same weekday.
  • Holiday calendars are generated offline per country and region and assigned per team; an org-wide list applies to everyone.
  • Approved leave counts working days only; half days weigh half.