Shift Scheduler

No data sent

Make a monthly shift schedule automatically: set the shift times, the roles, who can work on which weekdays and hours, and how many people each shift and role needs. It fills every shift when possible, keeps each person within their hours, avoids the days they would rather not work, and shows the hours and pay of each person. Runs in your browser.

About this tool

What does Shift Scheduler do?

It builds a schedule (roster) for a team from availability and staffing needs, using an exact optimization solver (HiGHS, mixed-integer programming) that runs in your browser. If not every rule can be met, it still makes the best schedule it can, and shows what could not be met in red.

How to use

  1. Period: choose the month (the dates and weekdays are filled in), or Custom for any number of days (up to 62) from any start date.
  2. Shifts: the time slots, with start and end time and break (for example Morning 09:00–15:00 and Evening 15:00–22:00). A shift that ends at or before its start time ends the next day (a night shift). The hours of each shift are shown. Max per person limits how many times one person works that shift in the period (for example at most 8 night shifts a month).
  3. Roles: the jobs to cover (for example Cook and Server). With one role, everyone does the same job.
  4. People: a spreadsheet with one row per person: name, the roles they can do (separated by commas; empty means all), the minimum and maximum hours in the period, the hourly wage, and their usual week. In the weekday columns, leave a cell empty if they can work all day, or write x (cannot work), ★ (wants to work), △ (would rather not), the hours they can work like 15-22, or both like ★ 9-15. Type, copy and paste like in a spreadsheet; add people in the empty rows.
  5. People needed: a spreadsheet of how many people each shift and role needs on each day. By weekday… fills all the days from a weekly pattern; then change single days such as holidays.
  6. Requests for specific dates: a spreadsheet with each person's request for each date, written the same way (x, ★, △, 10-15, ★ 17-22); empty dates follow their usual week. Paste the requests you collected, or Import a CSV file with a name in the first column and one column per date.
  7. Rules: the most days in a row, the minimum rest between two shifts (for example 11 hours, so a night shift is not followed by a morning shift), balancing the hours, keeping the labor cost low, people who should not work together (not in the same shift, or not on the same day), people who should work together (for example a trainee who works only with their trainer), and two shifts a day (split shifts such as lunch and dinner; shifts whose times overlap are never given together). Each person's days off per week (Mon–Sun) is set in the People sheet.
  8. Before solving, the check shows the hours needed and the most the team can work, and lists the gaps that the input cannot fill (for example a day when too few people can work).
  9. Click Make schedule. The schedule shows who works which shift and role, the hours and pay of each person, and the total. Unfilled shifts and broken rules are shown in red. Download it as CSV, or click Print… to print it (or save it as PDF): choose the paper, orientation and text size, what each cell shows, and whether to add a page for each person, and check the preview of the pages before printing.

How it decides

The rules are weighted in this order: fill every shift and role (most important), keep apart the people who should not work together and keep together those who should, the most times per person for each shift, minimum rest, days in a row and days off per week, minimum and maximum hours, avoid extra people, give people the days they want (★), avoid the days they would rather not work (△), keep the labor cost low (if chosen), and balance the hours. A person works at most one shift a day (or two that do not overlap, if allowed), only in the roles they can do, only within their hours of the day, and never on a day marked ✕.

FAQ

Is the data sent anywhere?

No. The solver runs in your browser. The schedule data is saved in this browser with the tool.

It says some shifts are short. Why?

Not enough people can work on those days in that role and time, or the hours and rest limits leave too few. The check before solving lists the days and people to look at. Add people, allow more days or roles, or relax the limits.

How is pay calculated?

Hours × hourly wage for each person. The hours of a shift are from its start to its end, minus the break. Overtime and night rates are not included.

How large can the schedule be?

Up to 100 people, 62 days, 6 shifts and 8 roles. Large schedules may take longer; the best schedule found by the time limit is shown.