Automatic scheduling

It builds the timetable. You don't.

Most scheduling software takes bookings against time slots a person already worked out. This works out the slots. You give it your rules, and it finds the arrangement that places the most people without breaking a single one.

Rules it will never break

Some things are not a matter of taste. If a timetable would break one of these, it is not a timetable as far as ScheduleSorter is concerned. There is no setting that turns them off, because a timetable that double-books a room is not a cheaper answer — it is a wrong one.

  • →Nobody is in two places at once. An attendee is never placed in overlapping sessions.
  • →An event never overlaps itself. If it runs three times a week, those are three separate sessions.
  • →People are only placed when they are free. Give no times at all and they count as free any time, not never.
  • →No instructor is ever double-booked, and none is scheduled when they are not free.
  • →No instructor is given more in a week than the limit you set for them: so many sessions, so many hours, or both.
  • →No room is ever double-booked, and a room is never given an event bigger than it holds.
  • →When it picks the instructor or the room, it picks one with what the event asks for: the qualification, the piano, the projector.
  • →No session ever goes over its limit.
  • →An event with a set start time keeps that time. Only the day is chosen for it.
  • →In an “attend one of these” group, each person gets exactly one — never none, never two.
  • →A locked session stays exactly where you locked it.

Preferences you can turn up or down

Everything that is a matter of taste is a preference, and you set how much each one matters before you auto-schedule. Six sliders, each 0 to 100. Turn one to zero and it stops being considered at all.

PreferenceStarts atWhat it does
Maximise enrolment fulfilment100Fit in as many sign-ups as it can. The reason anyone uses this at all, so it starts at the top.
Honour high-priority enrolments80A sign-up marked high priority counts double when two people want the same seat.
Balance session attendance60Spread people across the sessions of an event rather than filling the first and leaving the last half empty.
Prefer distinct days50When an event runs several times a week, put those sessions on different days.
Prefer attendees’ starred times40Attendees can star the times they would rather have. When they are free is a rule; a star is a wish.
Minimise instructor back-to-back30Leave a gap between the sessions one instructor teaches, instead of stacking them back to back.

A preference can never cost someone their place

Placing one more person always matters more than every preference put together. So you can set the sliders however you like without ever finding that somebody was dropped from the timetable to give an instructor a nicer gap. It cannot happen.

Lock the slots you like. It reshuffles the rest.

Almost every timetable takes a second go. You look at the week, three sessions are exactly right, the rest is not. Lock the three. The next time you auto-schedule they stay put — day, time, instructor and room — and everything else is rearranged around them.

Locks carry themselves forward: a session that was kept because it was locked is still locked in the new timetable. So you can lock a few, run it, lock a few more, run it again, and get to the week you wanted without locking everything again each time.

Small change in, small change out

The awkward truth about automatic scheduling is that it can be jumpy. Add one attendee, run it again, and you can get a completely different timetable because the new one is a hair better on paper. Correct, and a disaster, because forty people already moved their Tuesday.

So a new timetable stays as close to the last one as it can. Sessions, instructors and rooms that can stay where they were, do — but this only ever decides between timetables that are otherwise just as good. It never costs anyone a place, and it never overrides a preference you set. It also starts from your last timetable rather than from nothing, so the time goes on improving your week instead of working it out all over again.

Four answers, and they mean different things

"It didn't work" is not a useful result. Every time you auto-schedule you get one of four answers, because what to do next is different for each.

Best possible
There is no better timetable under the rules and preferences you gave it — not "none was found", none exists. Stop looking.
Stopped at the time limit
A good timetable, found and kept, plus a figure for how much better a longer try could still do. A small figure tells you to publish; a large one tells you to run it again.
Ran out of time
No timetable found yet. This is not the same as impossible — it usually means there is a lot to fit in, or very little room to move. Loosening one time limit is often enough.
No schedule possible
Two of your rules cannot both be true. Something has to give, and the reasons below tell you what.

How long it is given depends on how much there is to fit in, rather than being one fixed timer. A small project answers quickly and a large one gets the time it needs — roughly twenty seconds at the low end, a couple of minutes at the top.

It tells you why, not just no

Every person it could not place comes back with a reason you can read, rather than a shrug:

Not available
They are not free at any time this event could run.
Full
Every session of the event was already full.
Clashes
Placing them here would clash with another event they signed up for — and it names that event.
No slot fits
The event has no time that satisfies its own days, hours and length.
Mixed
More than one of the above applies across the event’s sessions.

And it stops you before you waste your time

Some problems are obvious before it even starts, so they are checked first. An attendee who is never free. An event that needs more hours a week than you allowed it. More sessions a week than can fit without overlapping. More people than there are places. Instructor and room clashes.

Most of these are warnings you can read and carry on past. Two stop it outright — an event that needs an instructor when nobody suitable is ever free, and the same for rooms — because those cannot produce a timetable, and waiting would only be a slower way of finding that out. Each one names the event and how to fix it.

Things most tools cannot do

Attend one of these
Group together events that are interchangeable — three sittings of the same class, four practical groups. Sign someone up to the group and it picks whichever one fits their week. Exactly one, guaranteed.
Attend some of these
A sign-up can say "any two of the four sessions". You are not forced to choose between all and nothing.
Ranked choices, shared out fairly
People rank the events they would like — "my top three of these twelve workshops" — and you say how many each person is given. It places as many people as it can, then spreads the choices evenly: two people on their second choice rather than one on their first and one on their third. Nobody is given two that overlap, and no preference slider can cost anyone a better choice.
All or nothing, when it matters
And when a part place is no use, one switch makes every sign-up all-or-nothing instead.
Set times, any day
An event that must start at 18:00 but could be on any weekday is fully supported, not a workaround.
Events on a date, not just a weekday
A workshop on Saturday the 14th happens once, and it knows it. Two workshops on different Saturdays can share a room, an instructor and an hour, because they never meet. Give it a few days to choose from and it picks the day as well as the time.
Closed dates and one-off changes
Mark a bank holiday or a break and every session that day is skipped. Cancel or move a single session, or have another instructor cover it, and the class carries on as normal every other week. Neither needs a new timetable, and you decide each time whether the people affected are emailed.
Who can take what
Instructors and rooms each have a list of what they are allowed to take. A room also has to be big enough. Put events in a group and that list applies to all of them at once.
Skills and room features
Or skip the lists. Give instructors their skills and rooms their features, say what a class needs — a Level 2 coach, a first-aider, a room with a piano — and only a match is ever picked. If nobody matches, you are told which class and what is missing before anything is built.
Courses in order
Module B after Module A, at least two days later. Theory before practical every week. The safety induction before anything else. Say what comes after what, and the timetable keeps to it. An order that can't be kept is named before anything is built.

Then compare your timetables

Drafts pile up; you choose what to publish. Any two can be put side by side, and the difference is described the way a person would say it: this session moved, this person gained a place, this person lost theirs, this instructor now has a different week. Attendees and instructors are listed separately, because they need different conversations.

That same difference decides who gets emailed — only the people whose week actually changed. And the whole thing, in order, is on how it works.

What it does not do

  • →You do not drag sessions around by hand. It places everything for you, which is how the result stays free of clashes. Locking sessions and setting fixed times are how you steer it.
  • →The timetable is a weekly one, with one-off dated events, closed dates and single-session changes on top. There is no multi-week rotation, no fortnightly or listed-date repeat, and no exam-timetable mode.
  • →No employment rules. An instructor can have a weekly limit on sessions or hours, but overtime, break law, rest between shifts and minimum staffing per shift are not taken into account.
  • →Cover is for one date at a time. If an instructor is away for weeks, mark them as not free and auto-schedule again.

See it on your own timetable.

14 days, no card. Everything on this page works on the trial and on every paid plan — plans differ only in size and number of admins.