Stop wrestling with rosters. Drag them in, and let the costs add themselves up.

The xGrapher shift schedule maker is a free roster editor with no sign-up. Sweep the mouse across a month to fill it in, and labor costs and staffing gaps are calculated as you go. The finished schedule prints straight onto A4/A3.

Build a schedule for freeNo sign-up, nothing to install
DateHana SatoIchiro SuzukiMisaki TanakaKenta TakahashiSakura ItoRyo Watanabe (manager)Notes
7/1WedD9-18D9-18M11-20ON22-7⁺OFFOFF
7/2ThuE7-16D9-18L13-22L13-22M11-20D9-18
7/3FriE7-16OFFM11-20OFFL13-22D9-18
7/4SatE7-16D9-18M11-20ON22-7⁺L13-22D9-18Kitchen −1
7/5SunOFFD9-18M11-20L13-22L13-22OFFFront of house −1
7/6MonE7-16D9-18OFFL13-22OFFD9-18Front of house −1
7/7TueE7-16OFFM11-20OFFL13-22D9-18
7/8WedD9-18D9-18M11-20ON22-7⁺OFFOFF
7/9ThuE7-16D9-18L13-22L13-22M11-20D9-18
7/10FriE7-16OFFM11-20OFFL13-22D9-18
Total72h56h72h56h56h56h
Shift typesEEarly shift07:00-16:00DDay shift09:00-18:00MMid shift11:00-20:00LLate shift13:00-22:00ONOvernight shift22:00-07:00OFFDay offPLPaid leaveREQTime-off request

Where spreadsheet rosters tend to break down

Overnight hours refuse to add up

A shift from 22:00 to 07:00 goes negative if you simply subtract. Add break deductions and a night premium and the formulas grow into something nobody dares to touch.

Costs only appear once you are finished

If the totals arrive after the roster is built, going back over budget means reworking the whole thing. You need to see what each extra hour costs while you are still placing it.

Printing pushes columns onto the next page

It looks fine on screen, then prints with columns spilling over and text cut off. The more staff you have, the more time goes into making it fit the paper.

What you can do with it

Built around the things rosters actually need day to day. All of it is free, and no account is required.

Fill shifts in by dragging

Pick a shift type and sweep across the cells. Drag downwards to repeat a run of days, or drag to another person to hand the shift over.

Day, week and month views

The month view is the familiar roster grid with dates down the side and staff across the top. The day and week views put hours on the horizontal axis so overlaps and thin patches are obvious.

Ten shift-type presets

Day, early, mid, late, night, overnight, evening, post-night, sleepover and on-call are ready to use, and the names, hours and colours are all editable to match what your team calls them.

Labor costs, calculated for you

Break deductions, the night premium between 22:00 and 05:00, overtime beyond 8 hours a day or 40 a week, statutory holiday pay and commuting allowance are all totalled. Rates and standard hours are configurable.

Staffing shortfall checks

Record how many people a position needs during a time range, by weekday or for one date, and any gap is highlighted in red. Add someone and the warning clears immediately.

Duplicate into next month

One sheet covers one month. Duplicating lets you match the dates, match the weekdays, or start from an empty period, so next month takes seconds to set up.

Browser storage and JSON transfer

Everything is saved in your browser and restored next time. Nothing is sent to a server. To move a schedule to another device, export and import a JSON file.

Print layout that fits A4/A3

Printing from the browser hides the page header and toolbars and places just the schedule on the paper. Paper size and orientation are chosen to suit the view and staff count, and can be overridden.

Per-person settings

Hourly or salaried pay, positions, available hours by weekday, commuting allowance, staff number and a personal colour. Shifts placed outside someone's available hours are flagged.

Collect shift requests

Send staff a link and they fill in their days off and available hours on a dedicated page. Load the JSON they return and the requests land on your schedule.

Reading the screens

Month view: the familiar roster grid

Dates run down the side and staff across the top. Weekends and statutory holidays are coloured, and the staffing column on the right shows any position that is short in red. The row at the bottom totals actual hours worked per person for the month. Click a cell to adjust its hours or break on the spot.

DateHana SatoIchiro SuzukiMisaki TanakaKenta TakahashiSakura ItoRyo Watanabe (manager)Notes
7/1WedD9-18D9-18M11-20ON22-7⁺OFFOFF
7/2ThuE7-16D9-18L13-22L13-22M11-20D9-18
7/3FriE7-16OFFM11-20OFFL13-22D9-18
7/4SatE7-16D9-18M11-20ON22-7⁺L13-22D9-18Kitchen −1
7/5SunOFFD9-18M11-20L13-22L13-22OFFFront of house −1
7/6MonE7-16D9-18OFFL13-22OFFD9-18Front of house −1
7/7TueE7-16OFFM11-20OFFL13-22D9-18
7/8WedD9-18D9-18M11-20ON22-7⁺OFFOFF
Total56h48h56h48h40h40h
Shift typesEEarly shift07:00-16:00DDay shift09:00-18:00MMid shift11:00-20:00LLate shift13:00-22:00ONOvernight shift22:00-07:00OFFDay offPLPaid leaveREQTime-off request

Day and week views: shifts on a timeline

In the day view each row is a person; in the week view each row is a date, with the people working that day listed inside it. The horizontal axis is the clock in both. Overnight shifts are not cut off at midnight — the bar keeps going into 25:00, 26:00 and so on, so handovers into the morning stay readable. The shaded band is night hours (22:00 to 05:00), and the strip under each date shows staffing per time slot, with red marking the hours you are short.

Date
6/29 MonOutside this sheet’s period
6/30 TueOutside this sheet’s period
7/1 WedHana Sato8h
Ichiro Suzuki8h
Misaki Tanaka8h
Kenta Takahashi8h
Front of house coverage
7/2 ThuHana Sato8h
Ichiro Suzuki8h
Misaki Tanaka8h
Kenta Takahashi8h
Sakura Ito8h
Ryo Watanabe (manager)8h
Front of house coverage
7/3 FriHana Sato8h
Misaki Tanaka8h
Sakura Ito8h
Ryo Watanabe (manager)8h
Front of house coverage
7/4 SatHana Sato8h
Ichiro Suzuki8h
Misaki Tanaka8h
Kenta Takahashi8h
Sakura Ito8h
Ryo Watanabe (manager)8h
Front of house coverage
Kitchen coverage
7/5 SunIchiro Suzuki8h
Misaki Tanaka8h
Kenta Takahashi8h
Sakura Ito8h
Front of house coverage
Kitchen coverage
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
D09:00-18:00
D09:00-18:00
M11:00-20:00
ON22:00-07:00
E07:00-16:00
D09:00-18:00
L13:00-22:00
L13:00-22:00
M11:00-20:00
D09:00-18:00
E07:00-16:00
M11:00-20:00
L13:00-22:00
D09:00-18:00
E07:00-16:00
D09:00-18:00
M11:00-20:00
ON22:00-07:00
L13:00-22:00
D09:00-18:00
D09:00-18:00
M11:00-20:00
L13:00-22:00
L13:00-22:00

Collect availability without leaving the tool

Stop gathering “I can’t work that day” on paper or chat and retyping it. Hand out a link to the employee-facing Shift Request Form and load the file that comes back.

1

Send the links

Copy a per-employee link from “Request shift preferences” and send it by email or chat. The month, their name, your shift types and the visible hours all travel in the link, so they can start writing the moment they open it.

2

They fill it in

The Shift Request Form is a gantt chart. Dragging across a date row marks that time as requested off; the “All day” button takes the whole day. They can also record their weekly availability and duplicate last month’s request. No sign-up needed.

3

Import and apply

Load the JSON they send back from “Import shift requests” and pick whose it is. Their requests appear greyed out on the schedule, so you cannot place a shift there by mistake, and their weekly availability can come along too.

See the Shift Request Form
Date
8/1 Sat
8/2 Sun
8/3 Mon
8/4 Tue
8/5 Wed
8/6 Thu
8/7 Fri
8/8 Sat
8/9 Sun
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
All-day request
All-day request
Requested off (cannot work)Outside weekday availability

What the employee sees. Hatching is a request off; light grey is time their weekly availability already rules out.

Three steps to get going

1

Add your staff and shift types

Enter names, pay rates and positions. Sample data is loaded from the start, so editing it is enough to begin.

2

Drag the shifts in

Pick a shift type and sweep across the cells. Costs and staffing gaps update as you type.

3

Print, export or share

Print it for the noticeboard, export an image for chat, or hand it over as JSON. Pick whatever suits.

Who it suits

Restaurants and cafesRetail and fashionCare and nursing (2 or 3 shifts)HotelsCall centresManufacturingClinics and pharmaciesSecurity and facilities

Free today, and what may come next

Free (available now)

  • Drag-based rostering across three views
  • Fully editable shift types (ten presets)
  • Labor costs with break, night, overtime and holiday premiums
  • Staffing shortfall checks against your requirements
  • Automatic browser storage and JSON transfer
  • A4/A3-ready printing and image export
  • Collecting shift requests from staff (share a link, import the JSON)

Features under consideration

These are planned for the future and are not available yet.

  • Cloud sync and simultaneous editing by several people
  • Employee accounts with cloud submission (no file to pass around)
  • CSV export for payroll software
  • AI-generated draft rosters that respect requests and budget
  • Email and messaging notifications when a roster is published

Try it with the sample data

A sample roster is loaded from the start, so you can see how it handles within seconds. No sign-up, nothing to install.