People
The record behind the personal page
My page sits in the profile menu, not in the navigation: it is about you, not about a module. It holds your leave balance, your running contract and your dossier documents by category. This is employee data — the users and memberships of your own organisation — and never a client's contact people.
My page, in the profile menu
My page does not belong in the sidebar: the sidebar is about modules and this page is about you. You open it from the profile menu. At the top sit your leave balance — statutory and extra-statutory vacation shown as one figure — and your running contract with the start date, the hours per week and an end date where there is one; both blocks come from the leave module and appear only when it is on. Below them is the dossier itself, which works with or without leave. Personeelsdossier is a licensed extension module: the core of schakl. is open source (AGPL), modules like this one require a license key, and you switch it on under Instellingen → Modules.
Six categories, one upload form
The dossier has a fixed shape, so a signed contract never lands in the same pile as a bonus agreement. You file a document with a category, a name of your own ("Contract 2026", say) and an optional note. Each row shows the date and who filed it; that name is snapshotted at upload time, so it stays readable even after the account behind it is gone. Deleting removes the dossier row and the file for good, and both filing and removing land on the dossier's activity trail.
- Contract
- Growth plans
- Bonus agreements
- Terms & benefits
- CAO (collective agreement)
- Other
Two permissions, and a route of its own for the files
Reading a dossier and filing into it are two separate permissions: "Personeelsdossier bekijken" (your own, or anyone's) and "Dossierdocumenten beheren". So letting someone manage work schedules does not quietly let them read contracts. Every employee sees their own dossier; whoever may read all of them picks a colleague from the employee picker at the top. The bytes do not travel the ordinary file route but one of their own, which re-checks the dossier permission on every single download and answers "not found" rather than "forbidden" — a document id never confirms that a colleague holds that paper.
A contract is a period, not a field
An employment contract runs from a start date to an end date, or it runs on. Someone moving from 32 to 38 hours gets a new row, never an edit of the old one, because last year's accrual hangs off the old period. Terminating records the end date and nothing else; the row stays as history. Contract hours are the legal number you type in, independent of how many hours are actually rostered, and the gap to the full-time norm is exactly what can accrue as free time. Contract, working week and free time are one three-step wizard, reached from Instellingen → Team & gebruikers and from the team roster under Verlof → Team.
The working week hangs off the contract, so it resolves per date
The working week is not a loose field on the person but a property of the employment period, because a schedule change usually is a contract change. Pricing leave looks the week up per day, so a request that crosses a contract boundary is measured against the right week on either side. That is what keeps last year's leave priced at last year's roster, even after someone moved from four days to five in March. An empty week on a contract means "inherit", not "not filled in yet": the fallback is explicit and runs in one order.
- The contract covering that day
- otherwise the employee's own schedule (Instellingen → Team & gebruikers)
- otherwise the organisation's default week (Instellingen → Verlof)
A contract change reprorates the balance on the spot
Creating, correcting or terminating a contract re-derives that employee's generated yearly entitlements in the same transaction: the change and the new balance commit together, or neither does. Someone leaving mid-year therefore keeps a prorated balance instead of a full year, and a raise applied as "terminate the old contract, add a new one" folds both periods in. Manual corrections are left alone and the past stays frozen: a closed year is never re-priced, and approved leave is never retroactively recalculated. If the change leaves already-scheduled free days that no longer fit the balance, the screen lists them with a button to take them back — nothing is ever cancelled silently.
Not everyone on the roster is on the payroll
Whether a period is employment or a freelance engagement is a property of that period rather than of the person: a changed arrangement is a new row, exactly as changed hours are, so last year stays priced under the arrangement it was actually worked. It decides precisely one thing: accrual. A freelance period earns no statutory holiday and no free time, because a contractor invoices their hours and a pot would go negative the first week they took off. Nothing else changes: that period still carries a working week, still shows on the team roster, and an agreed number of paid days is recorded as a manual entitlement. And because plenty of contractors work per assignment, hours per week may be left empty there; on an employment period that same field is refused, because an invented 16 is a number every capacity figure afterwards quotes as if somebody had agreed to it.
- A contractor records their own availability: a day they will work, a day they will not, or a swap as a pair
- A "no" outranks a "yes" on the same day, because booking somebody who said they were away is the worse failure
- The contract is the agency's and the exceptions are the contractor's, and those are two different permissions
Want to know more?
The documentation describes every module in detail, from installation to permissions.