# Staff schedule template for a small café: a weekly grid with roles and coverage rules

*Guides · Mays Team · April 11, 2026*

![The Auto-scheduler card on a location's Scheduling tab in Mays, set to Always ask, with house rules for a test café, two baristas and a shift lead on bar from 6:30 to 11 on weekdays, three baristas and one person on register from 7 to 2 on weekends, a shift lead at every open and close and everyone under 40 hours, and the note that only the chat follows them](https://mays-uploads.s3.us-east-2.amazonaws.com/site/blog__cafe-staff-schedule-template-weekly-grid__cover.5cb4c5ac1f.png)

A schedule is a grid, but a good one starts with a few lines written above the grid: how many people each part of the day needs, in which roles. Without them, every week gets built from memory, and Saturday at 9 am is short again.

This post is the grid, ready to copy into a spreadsheet or print. How to build your first schedule step by step, from dayparts to publishing and swaps, is in [how to build your first restaurant staff schedule](https://www.mays.app/blog/first-restaurant-staff-schedule). Here we write the coverage rules down, lay out the week, and check it before it goes up.

*This is general information, not legal advice. State and city rules on breaks, overtime, minors and predictive scheduling can go further than the federal rules below.*

## Step 1: write the coverage rules above the grid

List each daypart and the minimum number of people in each role. These are made-up numbers for a café open 6:30 am to 3 pm:

| Daypart | Barista | Register | Food / prep | Shift lead (counts in a role) |
| --- | --- | --- | --- | --- |
| Weekdays 6:30 to 11 | 2 | 1 | 1 | 1 |
| Weekdays 11 to 3 | 1 | 1 | 1 | 1 |
| Weekends 7 to 2 | 3 | 1 | 1 | 1 |
| Weekends 2 to 3 | 1 | 1 | 0 | 1 |

Then add the rules that aren't headcounts:

- A shift lead opens and closes every day.
- Opening shifts start 30 minutes before the doors; closing shifts end 30 minutes after.
- Nobody works a close and the next morning's open.
- Everyone stays under 40 hours unless the owner approves it.
- Employees under 18 only work hours their age allows (see below).

## Step 2: the weekly grid

One row per person, one column per day, with each person's roles and hour limit at the start of the row. Made-up names and times:

| Name | Roles | Max hrs | Mon | Tue | Wed | Thu | Fri | Sat | Sun | Hours |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| Marcus | Shift lead, barista | 40 | 6–2:30 | 6–2:30 | 6–2:30 | — | — | 6:30–3 | — | 34 |
| Priya | Shift lead, register | 35 | — | — | 7–3:30 | 6–2:30 | 6–2:30 | — | 6:30–3 | 34 |
| Tomás | Barista | 30 | 6:30–11 | 6:30–11 | — | 6:30–11 | 6:30–2 | 7–3 | — | 29 |
| Hana | Barista, register | 30 | 11–3:30 | 11–3:30 | 6:30–11 | — | — | 7–2 | 7–2 | 27.5 |
| Owen | Food / prep | 40 | 6–2 | 6–2 | 6–2 | 6–2 | — | — | 7–2 | 39 |
| Jo (16) | Register | 15 | — | — | — | — | — | 7–2 | 7–10 | 10 |

Hours above are clock hours before any unpaid meal break. Write your own rule for breaks next to the grid, and subtract unpaid meal breaks from the **Hours** column.

## Step 3: count coverage before you post

Under the grid, count people per role for each daypart and compare with Step 1. A short cell is a gap to fill before you post, not after.

| Daypart | Needed | Mon | Tue | Wed | Thu | Fri | Sat | Sun |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| Open, baristas | 2 / 3 weekends |  |  |  |  |  |  |  |
| Open, register | 1 |  |  |  |  |  |  |  |
| Open, shift lead | 1 |  |  |  |  |  |  |  |
| Midday, baristas | 1 |  |  |  |  |  |  |  |
| Close, shift lead | 1 |  |  |  |  |  |  |  |

Then check labor against sales: our [weekly labor cost review](https://www.mays.app/blog/labor-cost-percentage-weekly-review) shows how.

## Step 4: check the week against the rules

**Overtime.** *"Unless exempt, employees covered by the Act must receive overtime pay for hours worked over 40 in a workweek at a rate not less than time and one-half their regular rates of pay"* ([DOL, Overtime Pay](https://www.dol.gov/agencies/whd/overtime)). The workweek is yours to set, but it's fixed: *"An employee's workweek is a fixed and regularly recurring period of 168 hours — seven consecutive 24-hour periods."* Hours at two of your locations, or in two roles, add up in the same workweek.

**Breaks.** *"Federal law does not require lunch or coffee breaks."* If you give short breaks, *"usually lasting about 5 to 20 minutes"*, they count as hours worked; meal periods *"typically lasting at least 30 minutes"* don't ([DOL, Breaks and Meal Periods](https://www.dol.gov/general/topic/workhours/breaks)). Many states require breaks; check your state's page, for example [Florida's pay rules](https://www.mays.app/blog/florida-restaurant-pay-rules-2026) or [California's](https://www.mays.app/blog/california-restaurant-pay-rules-2026).

**Minors aged 14 and 15.** Under federal rules, their work is limited to *"Outside of school hours"*, *"Not more than 18 hours in any 1 week when school is in session"*, *"Not more than 3 hours in any 1 day when school is in session, including Fridays"*, *"Not more than 8 hours in any 1 day when school is not in session"*, *"Not more than 40 hours in any 1 week when school is not in session"*, and *"Between 7 a.m. and 7 p.m. in any 1 day, except during the summer (June 1 through Labor Day) when the evening hour will be 9 p.m."* ([29 CFR 570.35](https://www.ecfr.gov/current/title-29/subtitle-B/chapter-V/subchapter-A/part-570/subpart-C/section-570.35)). States add their own rules, also for 16- and 17-year-olds; see [employing minors in Florida](https://www.mays.app/blog/florida-employing-minors-restaurant) and [back-to-school scheduling](https://www.mays.app/blog/back-to-school-scheduling-restaurant).

## Step 5: post it on the same day every week

Post the next week's grid on a fixed day, with a deadline for swap requests, and keep the posted copy. When something changes, change the grid and tell the people affected, so the copy on the wall is never wrong. Call-outs and no-shows are covered in [handling call-outs and no-shows](https://www.mays.app/blog/restaurant-call-outs-no-shows).

## Where Mays fits

The grid lives on **Scheduling → Schedule** on the web, and your team sees their shifts in the iPhone and Android apps once you publish.

- **Roles in the grid.** **Roles view** groups the rows by position, so you see each role's coverage at a glance. Overtime warnings show on the people who go over the weekly threshold.
- **Start from last week.** **Copy week** copies last week's shifts as drafts into the week you're building, and **Common shifts** offers the start and end times you use most.
- **Start from paper.** Already filled in the grid by hand? **Parse photo** reads a photo of a paper or whiteboard schedule into draft shifts for you to check, using AI credits.
- **Print it.** The print preview can print only the people with shifts that week, for the wall by the back door.
- **Coverage rules for the assistant.** On the location's **Scheduling** tab, the **Auto-scheduler** card has **House rules** (the image at the top of this post). The scheduling assistant follows them when you ask it for changes in its chat. **Generate schedule**, which builds a week from last week's shifts around time off, availability and the weekly hours limit, doesn't use them yet.
- **Publish and notify.** Nothing reaches staff until you publish, and publishing notifies the people whose shifts changed.

One limit to know: Mays doesn't check your headcount per daypart and role against a minimum, so keep the Step 3 count yourself.

## Write the rules, then fill the grid

Coverage rules on top, one row per person, a count underneath. Build it once and every week gets faster.

[**Start your free trial**](https://go.mays.app/register): 30 days, every module, no card needed. Or [book a walkthrough](https://www.mays.app/book?from=blog-cafe-staff-schedule-template-weekly-grid) and we'll set up your first week with you.

## Related help articles

- Scheduling: [Building the weekly schedule](https://www.mays.app/help/scheduling/build-the-schedule) — Build a location's week on the web — add, move, copy and edit shifts, add open shifts, and keep an eye on time off, availability and labor cost while you work.
- Scheduling: [Copy a week and reuse common shifts](https://www.mays.app/help/scheduling/copy-week-and-common-shifts) — Start a new week from last week's shifts in one click, and fill in shift times you use all the time from the Common shifts list.
- Scheduling: [Import a paper schedule from a photo](https://www.mays.app/help/scheduling/schedule-from-a-photo) — Upload a photo of a paper or whiteboard schedule and the AI turns it into draft shifts. Check who's working what, create the shifts and publish as usual.
- Scheduling: [Auto-schedule with AI](https://www.mays.app/help/scheduling/auto-scheduler) — Let Mays build a week's draft schedule from last week — working around time off, availability, notes and weekly hours — then fine-tune it by chatting with the assistant.
- Scheduling: [Publishing the schedule and notifying staff](https://www.mays.app/help/scheduling/publish-the-schedule) — Your team only sees a week once you publish it. Check the warnings, choose who gets notified, publish — and republish, undo or clear a week when plans change.
- Scheduling: [Positions and wages](https://www.mays.app/help/scheduling/positions-and-wages) — Create the jobs people work — Barista, Cashier, Line Cook — with a colour and a default hourly wage, give people their positions and pay, and see where Mays uses them.

Canonical: https://www.mays.app/blog/cafe-staff-schedule-template-weekly-grid
