v1.0.1 · one-time licence

ShiftPlanner

A month of shifts, balanced automatically — one file, no server, no account.

No subscription. The download link is yours to keep — re-download any time.

What it does

Everything below is in the app you download — no add-ons, no upsell.

Staff, contracts, absences

Add workers with role and weekly hours; record vacation, sick days and days off — availability checks respect them.

Shift templates

Name a shift once (start, end, colour, headcount) and stamp it onto any day.

Automatic plan generation

Fill a whole month honouring fairness (equal shifts, hours or weekends), maximum consecutive days, minimum rest, and headcount limits.

Conflict detection

Double-booking, rest-period violations and consecutive-day overruns are flagged, with Fix conflicts and Clear day.

Your data stays yours

Everything lives in the browser's localStorage. No backend, no sync, no telemetry. Export JSON for backup, CSV for the roster.

What you get

The whole package, nothing hidden behind a plan:

CHANGELOG.md
LICENSE
README.md
VERSION
docs/CANONICAL.md
docs/USAGE.md
src/index.html

Requirements

Any modern browser, offline. Nothing else.

One month at a time — there is no yearly view.

Clearing browser data erases the schedule. Export JSON regularly.

The AI advisor is inert without a local Ollama; every scheduling feature works without it.

Questions

Straight answers, including the ones that cost a sale.

Does it need a server or an install?

No. One HTML file. Double-click it — it works from file://, offline, from a USB stick.

Where is my schedule stored?

In that browser's localStorage on that machine. It does not follow you to another computer — move it with Export JSON → Import JSON.

Can the AI see my rota?

Only if you run a model yourself and point the panel at it. It calls your endpoint; there is no OpenAI, Anthropic or Google endpoint in the file.

How many employees can it handle?

It is built for a small team (a hotel/spa-sized operation). There is no hard cap, but the month grid is not a 500-person scheduler.

What if two people edit at once?

Don't — the store is per browser profile. Share the exported JSON instead.

Tell us what is wrong

A bug, a missing feature, a question before you buy — this goes to the operator, not to a ticket system. How feedback works →