Work shift schedule template

The usual routine: build the rota in a spreadsheet, screenshot it, post it to the group chat. Then Thursday's shift changes and half the team is looking at the old screenshot. This template keeps the spreadsheet as the place you build the schedule and gives every staff member a calendar feed to subscribe to once, so the version on their phone is always current.

One row per shift: date, start and end time, who's working, and what they're doing. When you finish next week's rota you just add the rows. When you change a shift, you edit the row and the event updates in place on every subscribed calendar.

Opens a live preview of the sample events below — no account needed. Swap in your own rows when you're ready.

The columns

One row per event, headers in the first row. That's the whole format.

ColumnWhat it becomesExample
DateThe day of the shift.9/14/2026
Start timeShift start time.8:00 AM
End timeShift end time.4:00 PM
StaffWho's working. Becomes the event title.Dana
RoleOptional. Opening, closing, register, front desk. Shows in the event description.Opening

Sample data

This is exactly what “Use this template” loads into the preview — replace it with your real schedule.

DateStart timeEnd timeStaffRole
9/14/20268:00 AM4:00 PMDanaOpening
9/14/202612:00 PM8:00 PMMiguelClosing
9/15/20268:00 AM4:00 PMJessOpening
9/15/202612:00 PM8:00 PMDanaClosing
9/16/20268:00 AM4:00 PMMiguelOpening
9/16/202612:00 PM8:00 PMAaronClosing
9/17/20268:00 AM4:00 PMJessOpening
9/17/202612:00 PM8:00 PMMiguelClosing
9/18/20268:00 AM4:00 PMDanaOpening
9/18/20264:00 PM10:00 PMAaronLate close
9/19/20269:00 AM5:00 PMJessSaturday
  • One row per person per shift. If two people work the same shift, that's two rows. Each gets its own event, so changing one doesn't touch the other.
  • Lead the Staff column with the name and keep it short. It's the event title, and a phone's week view clips titles after about fifteen characters.
  • Build the rota the way you already do. Copy last week's block of rows, paste, adjust. New rows become new events on the next sync.
  • Delete rows for past weeks now and then. The free feed holds 50 events at a time and a busy team gets through them quickly.

Questions

Do staff see everyone's shifts, or just their own?
The feed is the whole schedule. Everyone who subscribes sees every shift, which most teams want anyway for spotting swaps. If people should only see their own shifts, filter each person into their own sheet tab or CSV and publish per-person feeds; Pro covers up to 10.
I post the rota Friday for the next week. Is that too last-minute for a feed?
Adding rows Friday afternoon works fine. The feed re-syncs hourly on the free plan and every 15 minutes on Pro, so shifts reach Apple and Outlook calendars well before Monday. Google Calendar is the caveat: it refetches subscribed feeds on its own schedule, sometimes up to 24 hours later, so publish a day ahead if most of your staff use Google.
Can staff request or accept swaps through this?
No. The spreadsheet stays the source of truth and the feed is read-only, so swaps happen wherever they happen today, probably the group chat, and you record the result by editing the row. The upside is that the calendar never disagrees with the sheet.
We build the schedule in scheduling software and export it. Can we still use this?
If it exports to CSV, yes. Publish the CSV at a URL or paste the table in, and the feed builds from that. There are no direct integrations with scheduling tools; a Google Sheet share link, a CSV URL, or a pasted table are the ways in.

Start with the sample, finish with your schedule.

The preview is live in seconds. Your roster subscribes once and stays in sync.

Use this template