Excel (.xlsx) · 31-day grid + shift-code legend · opens in Excel & Google Sheets · No signup required
A 31-day grid (employee × day) with a weekday helper row — set the 1st and the rest follow
A Shift Codes sheet (AM, PM, D, M, OFF) with editable hours per code
Shifts and Hours columns per employee that look up the codes automatically
A "Staff scheduled" row that counts coverage for every day of the month
Three sample rows showing the code style; OFF is excluded from shift counts
Open the .xlsx (or import into Google Sheets), then fill in Month and Location at the top.
Type the weekday of the 1st in the first day column; every other day's weekday updates from it.
On the Shift Codes sheet, change codes and hours to match your shifts — a "D" double at 10 hours, a "M" mid at 5, whatever you actually run.
Type a code in each cell. Use OFF for approved days off so they show on the grid but are not counted as shifts.
Shifts and Hours per employee and staff-on-duty per day calculate live. A day with 1 staff or a person with 26 shifts stands out immediately.
Print, share the sheet, or import it into EpicShifts so staff get the month on their phones and swaps stay on the schedule instead of in a group text.
Use this when you plan a month at a time — seasonal businesses, salaried-plus-hourly teams, or anyone approving vacation against coverage. It is a planning view, not a payroll record: hours are code × count, not clock-ins, and the weekday row assumes a 31-day column set (ignore the trailing columns in a 30- or 28-day month). Once the month is set, most teams still publish it week by week so changes stay manageable.
Already filled it in? Upload the file to EpicShifts and we’ll import it into a live schedule — your team sees their shifts on mobile, swaps and picks up open shifts, and gets reminders automatically.
Put employees down the rows and the days of the month across the columns, then enter a short shift code in each cell rather than full times — the grid stays readable and you can count shifts with COUNTA. This template does that and adds a code legend with hours so totals calculate automatically.
A weekly schedule shows exact start and end times for one week and is what staff work from day to day. A monthly schedule shows the pattern — who works which days across the whole month — and is used for planning coverage, vacations, and rotation fairness. Most teams keep both: plan monthly, publish weekly.
Yes. The COUNTA, COUNTIF, VLOOKUP, and SUMPRODUCT formulas are standard in both Excel and Google Sheets. Import with File → Import → Upload; the Shift Codes sheet comes along.
Yes — add codes for each rotation (for example N for nights, E for earlies) on the Shift Codes sheet with their hours, then fill the grid. The staff-per-day row shows whether every day has the coverage the rotation is supposed to give.
Dustin Hanke, Founder, EpicShifts — Dustin builds EpicShifts and writes about scheduling, labor cost, and shift-work operations for restaurants and other hourly teams.
We use cookies to improve your experience on our platform. Essential cookies are required for the site to function properly (authentication, security). Optional cookies help us understand how you use the site and improve our services. Learn more about cookies