Free shift pattern calendars and schedules

Staff Roster Template

Plan a roster for a week, a fortnight or a month, assign shifts to staff members and print it.

Staff Roster Template is a free, editable and printable work-schedule sheet that runs in your browser. It gives you a grid with one row per person and one column per day, and each cell holds a shift code such as AM, PM, NT or OFF. As you fill the grid, the page totals paid hours and shifts for each row and for the whole sheet, and it warns you about overlapping shifts, unreadable times and duplicate codes.

When you arrive without a saved link, the sheet opens on the Monday of the current week. You can choose a period of one week, two weeks, a calendar month or a number of days. A worked example with six people over 14 days is loaded by default, so you can see a finished roster before you change anything.

There is no account or sign-up, and nothing you type is uploaded.

Staff roster template example

How to use the Staff Roster Template

  1. Choose a period: one week (7 days), two weeks (14 days), a calendar month, or a number of days. Week-like periods start on the date you pick. A month always shows the whole calendar month.
  2. Type your own title in the title field. Until you do, the title shows the date range.
  3. Type a name in each row, one row per person.
  4. Check the shift table, which lists each code with its times and unpaid break. AM (Morning) runs 06:00 to 14:00, PM (Afternoon) runs 14:00 to 22:00, NT (Night) runs 22:00 to 06:00, and OFF (Day off) has no times.
  5. Type a code into each cell. Codes are not case sensitive and can be up to 12 characters long.
  6. To fill cells faster, type a pattern such as “S1 S1 S1 S1 S1 O O” into the Quick fill box and apply it along one row or every row. You can also copy the first week onto the following weeks, or clear cells.
  7. Or tap a code chip, then tap cells to paint them.
  8. Read the totals. Each row shows its shifts, paid hours and days off. The bottom row counts how many people work each code on each day, plus the total working that day.
  9. Check the warnings. A red cell holds a code that is not in the shift table, counts 0 hours and is listed in a warning.

How are paid hours calculated on a staff roster?

For each shift, paid hours equal the end time minus the start time, minus the unpaid break in minutes. The result never goes below 0. If the end is earlier than the start, the shift runs past midnight, so NT (22:00 to 06:00) is 06:00 minus 22:00, which is −16 hours, plus 24 hours, giving 8 hours, minus a 0-minute break. That is 8 paid hours. OFF has no times, so it counts 0 hours.

The default example shows the totals: 6 rows over 14 days gives 456 paid hours across 57 shifts. Five rows total 80 hours each, and Staff member 3 totals 56 hours. The page only performs plain time arithmetic on the values you type. It reproduces no legal or pay rule, so check any break or pay requirement separately.

What does the bottom coverage row count?

The coverage row counts how many people work each shift code on each day, and it adds a total of people working that day. Blank cells, OFF and codes with no times are not counted as worked shifts. This lets you see at a glance whether each day has enough people on each shift.

How do I fill in the cells quickly?

Click a cell and type a code, or use the arrow keys and Enter to move from cell to cell; the code list offers the codes defined in the shift table. On a phone, tap a code chip and then tap the cells to paint them. Quick fill repeats a pattern such as “D D N N O O O” along a row, optionally starting each row one step later, and can copy the first week onto the following weeks. A dash in the pattern leaves a cell blank.

What is in the CSV file?

Download CSV saves the grid with one row per person: the name, the codes for each date, and the totals. The header row uses dates in yyyy-mm-dd form. The file opens in any spreadsheet program. Nothing is sent anywhere; the file is made in your browser.

How does the staffing count work?

The count row at the bottom shows, for each date, how many people have each code. Use it to see at a glance whether a day has enough people on a shift. The page does not decide what is enough: you read the counts and judge for yourself.

Worked examples

InputResult
6 rows, 14 days, Oct 5, 2026 – Oct 18, 2026456 paid hours in total, 57 shifts
6 rows, 7 days, Oct 5, 2026 – Oct 11, 2026232 paid hours in total, 29 shifts

Calculated by the tool above; open it with the same values to see each step.

Frequently asked questions

Why is a cell shown in red?

A red cell contains a code that is not in the shift table. It counts 0 hours and is listed in a warning. Check the spelling of the code, or add the code to the shift table if it is a new shift type.

No. The page reproduces no legal or pay rule. It adds and subtracts the times you type, and it warns when two worked shifts overlap, but it does not judge whether a roster is lawful.

What does the page show when I first open it?

Without a saved link, the sheet opens on the Monday of the current week. The default worked example uses the fixed start date 2026-10-05, and Reset returns you to that example.

Is this tool free, and is anything I type uploaded?

Yes, it is free and needs no account or sign-up. Everything is calculated in your browser, and nothing you type is uploaded.

Can I print it or share it?

Yes. Print / save as PDF prints the page as you see it; choose Save as PDF in the print dialog to keep a file. Copy link copies a page address that stores your inputs, so the same schedule can be reopened later or sent to someone else.