All features

Time

From timer to invoice

A running timer, a single manual line or the whole weekly timesheet at once: hours go in however it suits you, and a half-filled line stays put as a draft. Approving, flagging billable and watching what is left of the budget all happen in one place, with nothing retyped. What comes out the far end is a list of approved hours the invoice is assembled from.

However the work happens

Start the timer and let it run, or type a line in afterwards with a start, an end and a break in minutes. The duration field thinks along: 1:30 and 90m both come out as ninety minutes, and an end time before the start simply rolls into the next day, so night work adds up without a trick. The weekly timesheet lays your week out as a grid, per client, project and task, with day totals and a week total underneath. Whether you see the full week or only the working week (Mon–Fri) is a personal preference, not a setting your colleagues inherit.

  • One running timer per person, with start, stop and the current total.
  • Manual lines with date, duration, client, project and task.
  • Entry types (Work, Email, or your own labels) are configured under Instellingen → Uren-typen (Settings → Time types).
  • Every picker offers "+ add": a client or project that did not exist yet is created without leaving the form.

What the timesheet adds by itself

Anything you type while you are still working is saved as that day's draft after a second; you see it sitting there labelled Concept with the time it was saved. A draft counts nowhere: not in the day totals, not in approval, not in invoicing. You either finish it or discard it, and stale drafts are cleared by the nightly job. Approved leave and active public holidays appear as their own row in the timesheet, so your week adds up without anyone entering leave as a time entry and having it counted twice.

Hours left while you log

Pick a project and the "Beschikbare uren" panel shows what is left for this period straight away, before you save rather than on some screen afterwards. When a subscription covers the hours, it names the agreement they come from. The burn colours track it: below 75% your own brand colour, amber up to 100%, red once the budget is full, and the figure keeps counting past it so you can see how far over you are. Non-billable work eats the budget too, because an hour is an hour. The billable flag is seeded by the project, so work on a project a retainer already pays for starts non-billable instead of being corrected afterwards.

Speak it, or type one sentence

With an AI provider configured under Instellingen → AI (Settings → AI), the time screen gains "Snel toevoegen": you type "yesterday 14:00-16:30 website Jansen, homepage call" and the form fills itself, with the client, project, task, times and description looked up in your own data. Beside that field sits a microphone, so an entry can be spoken instead of typed. "Vul mijn dag aan" compares your day with your schedule and proposes lines where something is missing, with its reasoning attached. In all three cases nothing is stored: you get a filled-in form and you press save. With no provider configured, there is no AI control on this screen at all.

Approve, lock and invoice

The hours overview (Overzicht → Uren) gathers the whole team's time and filters on employee, client, project, period, type, billable, approved and invoiced. The totals along the bottom add up the entire filter set, not just the page you happen to be looking at. A manager approves there in bulk; approved hours are then locked for anyone who may not approve, so a signed-off week stays as it was signed off. Undoing an approval takes the invoiced flag back with it, so those two can never contradict each other. On Monday morning anyone whose previous week stayed empty gets one reminder, and whoever was on approved leave that whole week is skipped.

  • A status pill per line: to approve, approved, to invoice, invoiced, with the name of whoever approved it.
  • Mark a selection as invoiced in bulk, or take it back.
  • "Nog te factureren uren" turns approved, billable, not-yet-invoiced hours into an invoice.
  • Your own columns: date, employee, client, project, task, description, type, duration, billable, status, approved by, invoiced on.

Where the hours turn up next, and what the module costs

Hours do not stay on the time screen. The client page gets an "Uren" panel with the total and the ten most recent entries from the whole team, plus a quick action that already carries the client; the project page puts the entries behind the budget bar. My Day shows "Uren vandaag" (with the running timer) and "Team deze maand". Overzicht → Productiviteit lines up hours, billable share, approval and active days per employee, and Overzicht → Omzet shows this year's months beside last year's with your biggest clients alongside. A whole filter set travels out as a spreadsheet, and a sheet of hours comes back in the same way. Time tracking is an extension module: the core of schakl. is open source (AGPL) and modules like this one run on a licence key you install under Instellingen → Licentie (Settings → License). When it lapses the module goes read-only: reading and exporting keep working, only writing waits for a new key.

Want to know more?

The documentation describes every module in detail, from installation to permissions.

The demo is on its way

The live demo isn't ready yet. We're working hard on it and are excited to share it here as soon as it's done.

Go to the docs

More features