A useful employee shift schedule records who is assigned, where they are needed, and when the assignment starts and ends. Put one assignment on each row. A Monday-to-Sunday grid looks convenient, but a row-based master sheet makes overnight work, employee totals and filtering much easier to check.
Copy this column layout
Create columns A through H with the following headers. Start and finish must be full spreadsheet date-time values, not plain text or times alone.
| Column | Header | Example |
|---|---|---|
| A | Employee | Employee A |
| B | Role or location | Front desk |
| C | Start date and time | 2026-11-02 22:00 |
| D | Finish date and time | 2026-11-03 06:00 |
| E | Unpaid break minutes | 30 |
| F | Scheduled paid hours | 7.5 |
| G | Shift-start week | 2026-11-02 |
| H | Status | Draft |
Calculate hours without hiding date errors
In F2, use the following formula, then fill it down. It leaves incomplete rows blank and flags a nonpositive duration, a negative break or a break as long as the assignment. Format the result as a number with two decimals, not a clock time.
=IF(OR(C2="",D2="",E2=""),"",IF(OR(D2<=C2,E2<0,E2>=(D2-C2)*1440),"CHECK",(D2-C2)*24-E2/60))Dates are stored as days in common spreadsheet systems, so multiplying their difference by 24 converts it into hours. The example gives (8 hours) − (30 ÷ 60) = 7.5. Avoid a time-only MOD formula here: if you enter an incorrect finish date, wrapping the result can disguise the error. These formulas use English function names and comma separators; your locale may use semicolons.
Group by employee and starting week
In G2, calculate the Monday of the start date. Format G as a date.
=IF(C2="","",INT(C2)-WEEKDAY(INT(C2),2)+1)In a summary area, put the employee label in J2 and the required Monday date in K2. Sum scheduled paid hours with:
=SUMIFS($F$2:$F$500,$A$2:$A$500,J2,$G$2:$G$500,K2)Resolve every CHECK row before trusting the total: SUMIFS ignores text flags. A Sunday-night assignment finishing Monday is allocated entirely to its starting week in this planning layout. For payroll, split the interval at the actual workweek boundary and allocate breaks to the time they occurred. Do not use this start-week total as an overtime calculation.
Keep availability and coverage separate
A roster can add up correctly and still assign someone on a day they cannot work. Keep a separate availability list and compare every draft assignment against it. Also compare required positions by time interval with the people actually present. A break deduction reduces paid hours but does not specify which minutes are uncovered.
For example, two people each assigned 09:00–17:00 with 30-minute unpaid breaks provide 15 paid hours. They do not provide two continuously occupied positions for all eight hours unless someone covers their breaks. Staggering breaks avoids losing both at once, but it still leaves one position uncovered during each break without relief.
Use a clear publishing workflow
Mark each row Draft until availability, qualifications and coverage are checked. Keep a version date and a named reviewer in the sheet. When sharing, include the time zone and explain how changes will be communicated. Record actual clock-in, clock-out and break times separately after work is performed; do not overwrite the planning assumptions and lose the audit trail.
Generate a starting draft
The free shift schedule maker fills one daily shift window using availability and a weekly cap, then exports a CSV. Use the weekly roster validation checklist to review the result. For actual time tracking, use the Google Sheets timesheet guide or the Excel timesheet guide.