Get DineKit — Free
Staff & rota

Free restaurant staff scheduling software, built into your own WordPress site

DineKit is a free, open-source restaurant rota planner for WordPress. Build the weekly rota, watch the labour cost add up in pounds as you go, handle holiday requests, and see whether you are actually staffed for Saturday — all from your own website, with no per-user monthly fee.

Get DineKit — Free See all features

DineKit staff and rota management screen
Staff, roles and the weekly rota, with holiday and availability in the same place. Scroll the image sideways to see the full screen.

The rota lives in three places and none of them agree

Most independent restaurants run the rota out of a spreadsheet that only one person can edit, a WhatsApp group where the latest change buries the last one, and a paper diary behind the pass. Holiday requests arrive on the back of a receipt. Somebody swaps a shift and forgets to tell the kitchen. By Friday nobody is completely sure who is actually working Saturday night.

The bigger problem is that none of it talks to your bookings. You can see that you have twelve people on the rota this week, but not whether that matches the covers you are expecting. So you guess. Guess low and the floor is drowning at 8pm with a two-hour wait on food. Guess high and you have paid three servers to fold napkins on a quiet Tuesday. Labour is usually the second-biggest cost in the building after food, and most operators are steering it blind, only finding out how much a week cost after payroll has already run.

The obvious fix is a dedicated scheduling tool — Deputy, Planday, 7shifts, When I Work. They work, but they charge per user per month, so the bill grows every time you hire, they hold your staff data on someone else’s platform, and they still have no idea how busy your restaurant is actually going to be, because your bookings live somewhere else entirely.

One rota that already knows how busy you will be

DineKit puts staff scheduling in the same plugin that runs your bookings, tables and orders — so for the first time the rota and the demand are in one place. You add your people once, with their role, where they work, and their pay rate. You build the week on a simple grid, dropping shifts onto days, and the labour cost totals up in pounds as you go, per shift, per day and for the week, before you have committed to anything.

Holiday requests come in through the same system, get approved or declined, and count down against each person’s balance, with guidance built in for the 12.07% accrual rate used for irregular-hours and part-year workers. And the part no standalone scheduler can do: an ops dashboard that reads your own bookings, seat count, service window and turn time, then tells you — for any date — whether the rota you have built is actually enough to cover the guests you are expecting.

It is free, open source, and everything lives in your own WordPress database. One honest limit up front, spelled out below: DineKit does not run PAYE payroll. That is deliberate, and you export instead.

What the staff module actually does

Everything here is shipped and running — no roadmap promises, no locked “pro” tier.

👥

People & a 10-role catalogue

A record for every team member — role from a ten-role catalogue mapped to front-of-house or back-of-house, where they work, pay rate, holiday allowance, a rota colour and an active toggle for leavers. Add once, use everywhere.

🗓️

Weekly rota grid

Build the week visually by dropping shift chips onto days. Hours are calculated correctly even for shifts that run past midnight, so a late close is never miscounted.

💷

Live £ labour cost

Every shift multiplies hours by that person’s pay rate, so you see the running labour cost per shift, per day and for the whole week as you build — not weeks later when payroll lands.

🏖️

Holiday requests & balances

Staff holiday requests are approved or declined in one place, count inclusive day spans, and draw down each person’s balance — with 12.07% accrual guidance for irregular-hours workers baked in.

📊

“Are we staffed?” ops dashboard

For any date, see covers booked, capacity used, front-of-house on versus needed, and labour for the day — computed live from your own bookings, seats, service window, turn time and rota, with an under / over / matched banner.

🔐

Staff logins & permissions

Give team members their own logins with a role-to-permission matrix, so a server sees what a server should and a manager sees more — no sharing the owner’s password around.

🧾

Activity & audit log

An activity log records who did what, so shift changes, approvals and edits are all on record rather than lost in a chat thread.

📤

Timesheet & holiday export

Export a provider-neutral timesheet and holiday record — including the rolled-up 12.07% line — to hand to your accountant or payroll provider. Honest by design: DineKit does not file PAYE itself.

DineKit vs paid rota software

How a free, self-hosted rota built into your own site compares with a per-user scheduling subscription.

What you needDineKitPaid scheduling SaaS
Monthly / per-user feeFree — no per-head chargePriced per user, per month
Built into your own bookings & coversYes — same plugin as bookings and tablesNo — scheduling only, blind to your demand
Live £ labour-cost viewYes, as you build the rotaOften a higher-tier add-on
Holiday tracking & balancesYes, with 12.07% accrual guidanceUsually yes, on paid plans
PAYE payroll filingExport to your payroll provider (honest: not filed in-plugin)Rarely; usually a separate integration too
On your own site & data ownershipYes — data stays in your WordPress databaseNo — staff data lives on their platform
Lock-inNone — open source, yours to keepStop paying and you lose access

The “are we staffed?” dashboard, in plain English

This is the part that makes DineKit different from a stand-alone rota tool, so it is worth explaining exactly how it works. Pick any date. DineKit already knows how many covers are booked for that day, because your reservations live in the same plugin. It knows your total seats and how long a table typically turns, so it can work out how much of your capacity is spoken for across the service. And it knows who you have rostered on, because you built the rota in the same place.

Put those together and the dashboard shows you four things for that date: covers booked, capacity used, front-of-house on versus front-of-house needed, and the labour cost for the day. It then gives you a single, honest banner — understaffed, overstaffed, or matched. The maths is tunable to how you actually run: set your own covers-per-server, your seat-utilisation assumption, and a target labour percentage, and the read-out reflects your restaurant rather than a generic template.

The practical effect is that “are we actually staffed for Saturday?” stops being a Friday-night gut feeling and becomes something you can look at on Tuesday, while you can still do something about it. If a big group booking lands, the dashboard reflects it immediately. If you have quietly over-rostered a slow midweek lunch, you can see the labour cost of that decision before you have paid for it, not after.

Where we draw the line: payroll is export, not built-in

We would rather be straight with you than oversell. DineKit does not run UK PAYE payroll, and that is a deliberate decision, not a missing feature. Real payroll means Real Time Information submissions to HMRC on every pay run, pension auto-enrolment duties with The Pensions Regulator, and tax and National Insurance rates that change every year. Getting any of that wrong has consequences for your business, and it is a full compliance product in its own right.

So DineKit does the scheduling, the hours, the labour cost and the holiday tracking — the parts that genuinely belong next to your bookings — and then hands off cleanly. You export a provider-neutral timesheet and holiday record, including the rolled-up 12.07% accrual line, and your accountant or payroll provider (or a dedicated tool like Staffology or Xero Payroll) does the filing. You get the day-to-day rota software for free, and you keep using a proper payroll process for the legal part. That is a better outcome than a half-built payroll feature you would not want to trust.

Common questions about staff scheduling in DineKit

Is the staff scheduling really free?
Yes. DineKit is free and open source, and there is no per-user charge — the rota, the labour-cost view, holiday tracking, the ops dashboard, staff logins and the activity log are all in the free plugin. Adding your fifteenth team member costs exactly the same as adding your first: nothing. Paid schedulers bill per user per month, so their cost grows every time you hire.
Does it work with my existing WordPress site?
Yes. DineKit is a standard WordPress plugin. If your restaurant site runs on WordPress, you install DineKit and the staff module lives inside your own admin, using your own database — no separate account, no third-party platform holding your team’s data.
How does the labour-cost figure get calculated?
Each shift multiplies the hours worked by that person’s pay rate, which you set on their staff record. DineKit totals it per shift, per day and for the week as you build the rota, and handles shifts that cross midnight so late closes are counted correctly. It is a scheduling cost preview, not a payslip — final pay comes from your payroll run.
What is the ops dashboard actually telling me?
For any date it shows covers booked, capacity used, front-of-house rostered versus needed, and the day’s labour cost — and an under / over / matched banner. It is computed from your own DineKit bookings, seat count, service window and turn time against the rota you built, and you can tune the covers-per-server, utilisation and target labour percentage to match how you run.
Can staff log in and see their own rota?
Yes. You can give team members their own logins governed by a role-to-permission matrix, so people see what is appropriate to their role and nobody is sharing the owner’s password. An activity log keeps a record of changes and approvals.
Does DineKit handle holiday and the 12.07% accrual?
Holiday requests are submitted, approved or declined, counted as inclusive day spans, and drawn down against each person’s balance. The 12.07% accrual guidance for irregular-hours and part-year workers is built in as guidance, and the rolled-up figure is included in the export you hand to payroll. Entitlement is tracked in days; the monetary conversion happens in your payroll process.
Can it replace my payroll software?
No, and it is not meant to. DineKit does the rota, hours, labour cost and holiday tracking, then exports a provider-neutral timesheet and holiday record. Actual PAYE filing — RTI to HMRC, pensions auto-enrolment, yearly rate changes — stays with your payroll provider or accountant. We kept payroll out of scope on purpose so the part we do build is something you can rely on.
How is this different from Deputy or Planday?
Those are capable dedicated schedulers, but they charge per user per month, keep your staff data on their platform, and have no visibility of how busy your restaurant will be. DineKit is free, keeps everything on your own site, and — because bookings and rota are in the same plugin — can tell you whether the rota actually matches your expected covers for a given date.

The staff module gets stronger the more of DineKit you use: pair the rota with the built-in table booking system so the “are we staffed?” dashboard reads your real covers, add the free restaurant POS to run orders on the same platform, and turn repeat diners into regulars with the guest CRM — all free, all on your own website.

Ready to give it a go?

DineKit is free, self-contained and live in minutes. Own your menus, your bookings and your data.

Get DineKit — Free