The staff time & attendance tracker: working-hour records before the law makes them mandatory
Clock-ins, working-time limits and time-off requests on your own server — ready for Belgium's 1 January 2027 recording law, useful for any hourly team today
- Staff actually clock in and out — a shared tablet by the door, a phone, or a kiosk PIN; the record is only as good as that habit
- A machine that stays on around the clock — a mini PC, NAS or small VPS, not a laptop that sleeps overnight
- Daily/weekly working-time limits decided up front, ideally checked with your accountant or payroll advisor — this blueprint stores hours, it does not interpret the law for you
- A domain with HTTPS if staff clock in from their own phones off-site
Version history
A clock-in record for your team that lives on your own server — built for the working-hours law landing on every Belgian employer in 2027, useful for any hourly team today.
The problem
From 1 January 2027, every employer in Belgium — no exceptions for size or sector — must be able to show how many hours each employee actually worked. It was announced in the November 2025 federal budget agreement, it sits on top of the 1971 Labour Act, and the exact technical rules are still coming in a Royal Decree that hasn't been published yet. It isn't a Belgian quirk either: the EU's top court ruled back in 2019 that member states must require an "objective, reliable and accessible" system for recording daily working time. Belgium is simply one of the last to turn that into a hard deadline. Most small teams today track hours with a paper sheet taped near the till, a WhatsApp message, or nothing at all — none of which survives a pay dispute or a labour inspector asking to see the record. This blueprint doesn't interpret the law for you. It gets the record itself in place, so the day someone asks, it already exists.
The architecture
▼
[ TimeTracker (self-hosted, Docker) — the working-hours record ]
│ every clock-in/out timestamped and tied to one person
│ daily/weekly hour limits checked automatically, with an email alert near the cap
│ time-off requests logged and routed for approval
▼
[ n8n (self-hosted) — the Friday owner digest ]
├─ who's close to their weekly hours cap
└─ which time-off requests are still waiting on you
Sent to Telegram or email. The record exists the moment someone clocks in — nothing to reconstruct from memory.
Two boxes, one job split cleanly. TimeTracker owns the record — the thing that has to be accurate, timestamped, and exportable on demand. n8n owns the one thing an owner actually wants during the week: a short list of what needs attention, not a login they have to remember to check.
Tool choices — and why
TimeTracker (GPL-3.0, 613 stars, active — v5.10.1 shipped 24/07/2026) is the engine. It's a self-hosted Flask + PostgreSQL app built by a small Belgian dev shop, and as of its v5.7.0 release it ships exactly the two features this blueprint needs: workday clock-in/out sessions with a kiosk endpoint for a shared tablet, and configurable daily/weekly working-time limits with email alerts plus an employee justification workflow when someone goes over. It also does company holidays, time-off requests with PDF export, idle detection, and a REST API — all in one Docker container, SQLite by default with PostgreSQL if you outgrow it. It was not built as a compliance product first; it was built as a time-and-billing tool that grew a workforce-and-attendance module, which is exactly the kind of tool you want here — actively maintained for a real, still-growing feature set, not a single-purpose HR product that stops getting updates the year after launch.
n8n (Sustainable Use License — free for internal business use, 199k stars, releases most weeks) reads TimeTracker's API once a week and sends you one message: who's near their cap, who's waiting on a time-off decision. You already use n8n elsewhere in this library if you've built the no-show reminder or the low-stock alarm — the same instance can run all three.
Monthly cost. Software: €0, both tools. Hosting: one small VPS at ~€5–12/month runs both containers comfortably for a team under 20 people. No per-seat fee, ever — the SaaS alternatives in this category typically charge €3–8 per employee per month, which is real money the moment a team passes ten people.
Setup outline
1. Deploy TimeTracker via Docker Compose on a small VPS or a mini PC that stays on around the clock — the official quick-start gets a working instance up in minutes, production hardening (HTTPS via a reverse proxy, a real domain) takes longer.
2. Create one account per employee. Decide up front whether people clock in on a shared tablet by the door (kiosk mode, PIN-based) or on their own phone — mixing both is fine, pick per person.
3. Set your daily and weekly hour limits in the working-time-limits settings. This is a number you or your payroll advisor decides, not something the software guesses — get it right before staff start relying on the alerts.
4. Load your company holiday calendar so time-off requests and public holidays don't collide with the hour-limit math.
5. Run a two-week pilot with one or two people clocking in for real before rolling it out to the whole team. This surfaces the habits that break records — forgetting to clock out is the single biggest one.
6. Deploy n8n alongside it (or reuse an existing instance) and build one workflow: a weekly scheduled trigger → call TimeTracker's API for pending justifications and time-off requests → format a short message → send to Telegram or email.
7. Export a sample PDF record for one employee and check it actually reads the way you'd want to hand it to someone who asked for it.
Pitfalls — the real ones
This is not legal advice, and the rulebook isn't finished. Belgium's Royal Decree defining the exact technical requirements for the 2027 obligation hadn't been published as of late 2025 — what counts as "objective, reliable and accessible" in practice is still being worked out. Getting a solid, exportable, per-employee hour record in place now is good infrastructure regardless of the final technical spec; it is not a substitute for checking the final rules with your accountant or a labour lawyer before the deadline.
A forgotten clock-out quietly wrecks a week. TimeTracker's idle detection catches some of this, but not all of it — someone who clocks in and genuinely forgets to clock out at the end of a 9-hour shift will show up as working 14 hours, which then trips your weekly-cap alert for the wrong reason. Spot-check the week's totals against what actually happened, at least until the habit is solid.
Don't self-diagnose payroll math from this tool. TimeTracker records hours and flags limits; it does not calculate overtime pay, holiday pay, or anything else your national payroll rules require. Feed the exported record to whoever already runs your payroll — don't ask the tool to do their job.
Kiosk mode is a shared device, which means shared risk. If staff clock each other in on a shared tablet, the record is only as trustworthy as the honesty at that tablet. A PIN per person is the minimum; a badge or QR-code scan is stronger if disputes are a real risk in your team.
SQLite is fine for a pilot, not forever. Once you're past a handful of employees and multiple years of history, move to PostgreSQL per TimeTracker's own deployment notes — test the migration on a copy first.
Verified repos
TimeTracker — GPL-3.0, 613 stars, active (v5.10.1, July 2026)
n8n — Sustainable Use License (free self-hosted internal use), 199k stars, active (weekly releases)
Get the next blueprint as it publishes — free, practical, verified tooling only.
Get this blueprint tailored to your business — free
Tell us what you run and where. We research your sector's specifics — rules, tools, customer habits — and send you a version of this blueprint rebuilt for your situation, usually within 24 hours.