# TimeOff.Management vs Who's OOO: Open Source Leave Management Compared

> Comparing TimeOff.Management vs Who's OOO? Full open source leave management comparison: stack, Slack sync, LDAP, API, and which self-hosted tool fits your team.

If you run a small team and want an open source leave tracker, two credible options come up: [TimeOff.Management](https://github.com/timeoff-management/timeoff-management-application) and [Who's OOO](https://github.com/igornast/who-is-out-of-office). This open source leave management comparison covers stack, Slack integration, LDAP, accruals, and deployment, so you can pick the right self-hosted leave tracker for your team.

Who's OOO is AGPL-3.0 licensed, TimeOff.Management is MIT. Both are free to self-host. Both solve the core team absence management problem. I built Who's OOO, so I have a bias, but I'll tell you where TimeOff.Management is the better choice.

## Feature comparison: Who's OOO vs TimeOff.Management

| Feature | Who's OOO | TimeOff.Management |
|---|---|---|
| License | AGPL-3.0 | MIT |
| Self-hostable | Yes (Docker Compose) | Yes |
| Managed hosting option | [€4.5/month on fortrabbit](https://www.fortrabbit.com/pricing?php=xs&database=xs&storage=xs&traffic=xs&backups=xs&jobs=xs&key-value-store=off) | [$1/user/month](https://timeoff.management/pricing) |
| Stack | PHP 8.5 / Symfony 7.4 | Node.js / Sequelize (MySQL or SQLite) |
| Slack integration | Yes (notifications + status sync) | No (email notifications only) |
| Slack status auto-sync | Yes | No |
| iCal export | Yes | Yes |
| Public holidays | Auto-import, 100+ countries | Manually managed |
| LDAP authentication | No | Yes |
| REST API | No | Yes |
| Leave accruals / carry-over | No | Yes |
| Dark mode | Yes (+ 4 palettes) | No |
| Mobile app | No | No |
| Latest release | Active development | [v1.4.5, Jan 2024](https://github.com/timeoff-management/timeoff-management-application/releases) |

If you want to try Who's OOO, deploy it on [fortrabbit for €4.5/month](https://www.fortrabbit.com/pricing?php=xs&database=xs&storage=xs&traffic=xs&backups=xs&jobs=xs&key-value-store=off) or self-host with Docker Compose. See the [installation guide](/docs) or [star it on GitHub](https://github.com/igornast/who-is-out-of-office).

## Where Who's OOO is the better choice

Slack status sync is the feature nobody else has. On approved leave days, Who's OOO sets the employee's Slack status to "On leave" automatically, and clears it at midnight on the last day. Teammates don't need to check a team absence calendar. The information appears passively in the tool they already have open. TimeOff.Management has no Slack integration at all; its notifications are email-only, so nothing shows up in the chat tool your team already lives in.

The stack is modern PHP. If your team runs PHP or Symfony, Who's OOO fits your deployment stack. You can read the code, open a PR, and understand what's running: Symfony 7.4 on PHP 8.5, PHPStan Level 8, 95%+ test coverage with Pest.

Deployment is Docker-first. Who's OOO ships with a Docker Compose file and is designed to run in containers from day one. TimeOff.Management ships a Dockerfile too, but there's no Compose file and the README doesn't mention Docker, so the documented path is still the manual one: clone the repo, install Node and SQLite, run the migrations yourself.

Leave visibility is controlled per type. Each leave type has a toggle for whether it appears on the team calendar, so sick leave can be approved without being visible to the full team.

Database choice stays portable. Who's OOO is developed primarily with MySQL, but the codebase keeps the infrastructure layer cleanly separated from the domain logic, so swapping in PostgreSQL or SQLite is a configuration change, not a rewrite. To be fair, TimeOff.Management is flexible here too: it uses the Sequelize ORM and its production config actually defaults to MySQL, though only the SQLite driver ships by default, so pointing it at another database means installing the driver yourself. Call this one roughly even.

## Where TimeOff.Management is the better choice

LDAP authentication is the big one. TimeOff.Management supports LDAP login. Who's OOO has no SSO, LDAP, or SAML support right now. If your team uses Active Directory or any centralized identity provider, TimeOff.Management is the clear choice.

It also has a REST API with an auto-generated token. Who's OOO has no API at all. If you need to integrate leave data into another system, like HR workflows or custom reporting scripts, TimeOff.Management wins.

Leave accruals and carry-over are built in. TimeOff.Management has per-department accrued allowances and a carry-over calculation. Who's OOO tracks balances but has no accrual or carry-over engine. If your leave policy involves rollover or monthly accruals, TimeOff.Management handles it natively.

The project is older. TimeOff.Management has been around since 2015 and has 1,000+ GitHub stars, so more troubleshooting threads exist online. One caveat worth knowing before you commit: its [last release was v1.4.5 in January 2024](https://github.com/timeoff-management/timeoff-management-application/releases), with no commits since, so in 2026 it reads as largely dormant.

Managed hosting is available at [$1/user/month](https://timeoff.management/pricing). Who's OOO can be deployed on [fortrabbit](https://www.fortrabbit.com/pricing?php=xs&database=xs&storage=xs&traffic=xs&backups=xs&jobs=xs&key-value-store=off) for a flat €4.5/month regardless of team size, or self-hosted with Docker Compose. Whether per-user or flat-rate is cheaper depends on your team size: past roughly five people, the flat €4.5 wins.

And if your team is JavaScript-first, TimeOff.Management's Node.js stack fits your deployment workflow and is easier to contribute to.

## Self-hosting in practice: what setup actually looks like

For Who's OOO, the simplest option is [fortrabbit](https://www.fortrabbit.com/pricing?php=xs&database=xs&storage=xs&traffic=xs&backups=xs&jobs=xs&key-value-store=off): deploy with `git push`, €4.5/month for the full stack including PHP, MySQL, storage, and backups. We run our own instance there. Alternatively, clone the repo, copy `.env.example`, run `docker compose up`. The full PHP 8.5 + Symfony stack runs containerised, so no host PHP or Composer is required. Setup takes under 10 minutes either way.

TimeOff.Management is a Node.js application, so it needs Node on the host or a manually configured Docker setup. Its own hosted service covers the no-ops route at $1/user/month, and its longer history means more troubleshooting threads to search, though the codebase itself has been quiet since early 2024.

If fast, low-effort deployment is a priority, Who's OOO on fortrabbit or Docker gets you there with less setup.

## Which is the best open source leave management tool?

Neither is universally better. The right answer depends on your stack and which features you need today. If you need LDAP or accruals, TimeOff.Management is the best self-hosted leave tracker for those requirements. If Slack status sync, Docker-first deployment, and a modern PHP/Symfony codebase matter more, Who's OOO is the stronger fit as an employee leave tracker.

For teams evaluating PTO management software that stays open source, run both in a test environment before committing.

## Who should use which

Use Who's OOO if:
- Your team runs Symfony or PHP and you want a codebase you can read and contribute to
- Slack status sync matters, so absences should appear passively in Slack without anyone checking
- You want Docker-first deployment on MySQL (with PostgreSQL or SQLite reachable via config when you need it)
- You don't need LDAP or leave accruals today

Use TimeOff.Management if:
- You need LDAP or SSO authentication now
- You need leave accruals or carry-over rules
- You need a REST API to integrate leave data with other systems
- You want optional managed hosting at $1/user/month
- Your team is Node.js-first

## The honest summary

If you need LDAP or leave accruals today, TimeOff.Management is the better choice. Who's OOO doesn't have those yet. If you want Slack status sync, a Docker-first self-hosted HR tool, and a modern Symfony codebase, Who's OOO covers a gap TimeOff.Management doesn't address.

Try Who's OOO: [GitHub repo](https://github.com/igornast/who-is-out-of-office) · [Installation guide](/docs) · [Deploy on fortrabbit](https://www.fortrabbit.com/pricing?php=xs&database=xs&storage=xs&traffic=xs&backups=xs&jobs=xs&key-value-store=off)

## Related guides

- [Self-hosted vs SaaS leave management: how to decide](/blog/self-hosted-vs-saas-leave-management)
<!-- Unhide each link once the target post is published (currently published: false):
- [Who's OOO vs Timetastic: free self-hosted vs $1.50/user/month SaaS](/blog/whos-ooo-vs-timetastic)
- [OrangeHRM is probably too much: a simpler open source alternative](/blog/orangehrm-alternative-simpler) -->

