Free tool · Runs in your browser
A shift schedule generator with no sign-up in front of it
A shift schedule generator builds a rota from a list of staff, a set of shifts and the number of people each shift needs. This one runs entirely in your browser: type your team in, pick how many days you want, and it rotates people through the shifts evenly, keeps their days off, and hands back a CSV.
Free · No account · Sent to your inbox
How do I generate a shift schedule?
Type your staff in and set your shifts and how many people each needs. The rota below rebuilds as you type — there is no generate button to press and nothing to wait for.
8 people. Add days somebody cannot work after a colon — “Cara Whitfield: Thu” or “: weekends”.
Shifts
The number is how many people that shift needs each day.
With the unavailable days above, and ten hours off between one shift and the next (read from the times in the shift names), the rules this generator knows.
Building the rota from today…
Enter your email to open the shift schedule generator
It opens here straight away, and we send you a link back to it. Free, no account, no card.
At a glance
- A shift schedule generator turns a staff list and a set of shifts into a filled rota, rather than leaving you to place every name by hand.
- This one runs in the browser, with no account. The rota is built on your machine; the only thing that travels to us is the CSV you ask for, on its way to your inbox.
- It rotates staff evenly, honours a maximum consecutive-days setting, and works around the weekdays you mark somebody unavailable for — leaving a seat visibly empty rather than filling it with a person who cannot take it.
- The result is editable in place, and the CSV we email you opens in Excel or Sheets.
- It is a fair rotation, not a rules engine. It knows the names you typed and the weekdays you marked; it does not know competencies, credentials, rest or contracted hours.
Is there a free shift schedule maker that works without an account?
This one. It computes in your browser, and there is nothing to sign up for: it asks for an email address, and that is all.
That is a design decision rather than a generous mood. Almost every free work schedule maker on the web is a trial with a grid attached: it wants an account before it shows you anything, or it shows you a schedule and then charges to let you take it away. Both are reasonable businesses and neither is what somebody typing 'free shift schedule maker' at nine on a Sunday evening is looking for.
So the arithmetic here happens on your machine, with no account and no charge. The rota is built in the browser as you type. If you close the tab it is gone; if you want it kept, ask for the CSV and it arrives in your inbox.
How does it decide who works when?
Each seat goes to whoever has worked least so far, among the people who can take it: not already working that day, not past the consecutive-days limit, not marked unavailable for that weekday, and not starting within ten hours of their last shift ending, so nobody walks off a night into the morning shift.
Deliberately, that is a simple algorithm, and the simplicity is the feature. A rotation you cannot predict is a rotation you cannot argue with, and the first thing anyone does with a generated rota is check whether it treated them fairly. Ties go to whoever has worked that particular shift least, then round the list in order, so over a fortnight everyone lands within a shift or so of everyone else, nights included, and you can verify that by counting, which is the only kind of fairness that survives contact with a break room.
Marking somebody unavailable is a colon after their name: 'Cara Whitfield: Thu', or 'Femi Okonkwo: weekends'. Those people stay in the rotation on every other day rather than being set aside, so the fairness count still includes them and you can see what their restriction cost the rest of the team. If a day is left with nobody who can take it, the generator leaves that seat empty and says so on the grid. Filling it anyway with somebody who told you they could not work would produce a rota that looks complete and is a lie, which is the one outcome worse than a gap.
What it does not do is optimise. There is no solver here weighing preferences against cost against seniority, because a solver whose reasoning you cannot follow produces a rota you have to defend in a meeting with the word 'algorithm', and that meeting goes badly. Generate a starting point, then edit it; the grid below is editable, and editing a good draft is a much smaller job than filling a blank one.
How do you make the 2nd shift fair, so everyone works it?
Rotate it rather than assign it. The generator balances each shift separately — the second shift schedule hands round the whole team instead of landing on whoever complained least — and the tally shows the count per person, per shift, so you can check.
Every team has a shift nobody wants: the 2nd shift that eats the evening, the night block, the weekend line. The unfair version of a rota is not usually unequal totals — it is equal totals made of unequal shifts, where two people both work seven and one of them worked seven evenings. A tally that only counts totals calls that fair, and the person carrying the evenings knows it is not.
So the generator counts both. When two people are otherwise tied for a slot, it goes to whoever has worked that particular shift least, which is what makes a second shift schedule rotate through everyone rather than settle on someone. And the tally under the grid shows the count per person for each shift — 1st, 2nd, 3rd, whatever you named them — because a fairness claim you cannot check by counting is a claim, not fairness. Totals stay within a shift of each other; the columns show nobody quietly owns the evening.
The same argument, ongoing and with real rules, is the product's equity view: nights, weekends, holidays and call-offs counted per person over months, on a screen the whole team can read, so the December meeting is a decision rather than an argument about memory.
What it does not know about your team
Almost everything: not competencies, not credentials, not rest between shifts, not contracted hours, and not a one-off Tuesday somebody has asked for.
The weekday field handles the standing arrangement — Priya never works Thursdays — and it is the only thing about your people this tool knows. It has nothing to say about the Tuesday in November she has asked off, about only two people being signed off on the unit, about a certification that expired on Friday, or about the eleven-hour gap between the night somebody just finished and the day you are about to give them. Two rules and a recurring weekday are a long way from a rota, and a real rota is mostly rules. Treat the output as a first draft with the arithmetic done, which is genuinely useful and is exactly as much as it claims.
The version of this that knows those things is the product: MedAligna runs fifteen rules on every assignment and refuses the ones that break. It refuses them in the browser as you drag, and again on the server before the write lands, because a browser can be lied to and a database cannot.
Questions people actually ask
- Can I make a work schedule online without signing up?
- Yes, here: no account and no card, just an email address. The generator builds the rota in your browser, and the CSV you ask for arrives in your inbox, so it is yours after the tab closes.
- How do I stop the same people always getting the evening shift?
- Name the shifts as you run them — 1st, 2nd, 3rd — and the generator balances each one separately: ties go to whoever has worked that shift least, so the unpopular one rotates through the whole team. The tally under the grid counts per person, per shift, which is how you prove it to the person who is sure they always get Tuesdays.
- Is my staff list sent anywhere?
- Only when you ask for the CSV. The rota is built on your machine; an export passes through our server on its way to your inbox. Close the tab without one and there is nothing for us to recover.
- How many people can it handle?
- Enough for a unit or a small department: a few dozen names and a few weeks. Past that a browser grid stops being the right shape for the problem regardless of how fast it is, because you stop being able to read it.
- Can I edit the schedule it generates?
- Yes. Every cell in the result is editable, and the CSV exports whatever is on screen when you ask for it. The generator is meant to produce a draft you correct, not an answer you accept.
- Can I stop it scheduling somebody on a day they cannot work?
- Yes. Put a colon after the name and the days: 'Cara Whitfield: Thu', or 'Femi Okonkwo: weekends'. Day names work written out or in three letters, and 'weekends' and 'weekdays' both work. They stay in the rotation on every other day, so the fairness count still includes them. If a day ends up with nobody able to take it, the seat is left visibly empty rather than filled with somebody who told you they could not work it.
- Does it handle rotating patterns like Pitman or DuPont?
- No. That is a different tool, and it is linked at the foot of this page. This one fills shifts from a staff list; the rotating generator lays a named pattern onto real dates.
Related
When a draft is not enough
MedAligna checks credentials, rest, overtime and availability before an assignment can be saved. Fourteen days free, no card, nobody calls you.