Shift Schedule Maker

Build a monthly staff schedule from your team members, shift types, and time-off requests. Edit assignments in the table, then copy it to a spreadsheet or print it. Your entries are saved only in this browser.

  1. Enter team members, shift types, and time off
  2. Set the start date, schedule length, and work limits
  3. Generate the schedule, make edits, then copy or print

This tool has been used … times.

8 team members

Enter one shift per line as Shift name, staff needed. If omitted, staffing defaults to 1. Use a whole number from 1 to 99. Total staff needed per day: 5

Enter Name: day, day. Include the month, such as 11/3, when the period contains the same day number twice.

days
days
days

Generated schedule

This is an automatically generated draft. Click a cell, or focus it and press Enter or Space, to cycle through shift types and Off. Your edits appear in copied and printed schedules and are saved when the inputs stay the same. Work limit violations are listed below the table.

How to use the shift schedule maker

1. Add team members and shift types

Enter one team member per line. In the next box, enter each shift type and the number of people needed, separated by a comma, such as Morning, 2. Use names that describe time periods or roles, such as Lunch, Dinner, Day, or Night. If you leave out the number, one person is required for that shift.

2. Add requested days off

Enter a request such as Avery: 3, 4 to keep Avery off on the 3rd and 4th. Names must match the team member list. If the schedule crosses into another month, use a month/day entry such as 11/3. When a day number occurs more than once in the selected period, the app asks you to specify the month. If requests leave too few people to cover a shift, the shortage is shown below the schedule.

3. Set the period and work limits

Choose a start date and schedule length. By default, the schedule starts on the first day of next month and covers that month. The weekly work limit is counted in Monday-starting weeks. Once a team member reaches the limit, no more shifts are assigned to them for that week. The consecutive work limit is the maximum number of workdays in a row. Adjust both limits to match your workplace policies.

4. Generate and edit the schedule

Select Generate schedule to distribute workdays and shift assignments as evenly as possible. Click a cell, or focus it and press Enter or Space, to cycle through Off and each shift type. The member’s workday total and daily staffing totals update automatically. Edits are allowed even when they exceed a work limit; the violations appear below the table.

5. Copy or print

Select Copy schedule to copy a tab-separated table that you can paste into Excel or Google Sheets. A confirmation appears when copying succeeds. Select Print to print the schedule without the input form or guide.

When staffing is short

The schedule shows dates when the available team cannot meet the total daily staffing requirement. It also reports shortages or extra assignments for each shift type, so a correct daily headcount does not hide an imbalance between shifts. Common causes include overlapping time-off requests, weekly or consecutive work limits, and a small team. Try adjusting the limits or staffing requirements, or add team members. The summary also shows the total number of people needed to cover the shortfall across the period.

Are my entries saved?

Your team list, shift types, time-off requests, settings, and manual edits are stored only in this browser. If the inputs are unchanged, the edited schedule is restored when you return. Selecting Generate schedule or changing the weekend-closure setting creates a new schedule. Your team data is not sent to a server. Selecting Reset to sample asks for confirmation before restoring the sample entries.

Please review our Terms of Service before using this web app.

Found a bug or have feedback? Let us know here.

Report bugs, display issues, usability problems, or suggestions for improvement.
Consent
– This form is for bug reports only. In principle, we do not respond to individual submissions.
– If a submission contains defamatory, threatening, or otherwise inappropriate content, we may take appropriate action based on logs such as IP addresses.