Back to app

User guide

A quick tour of what every button does.

The big picture

Shift Weaver builds a daily roster from three inputs: the people you have, the times they can't work, and the slots you need to fill. Everything is stored in your browser — no account, no cloud.

Picking a day

The date button at the top opens a calendar. Each day has its own slots and assignments; staff and settings are shared across all days.

Staff

Open the staff panel to add, rename, reorder, or remove people.

  • Max shifts / day — caps how many slots one person can be assigned in a single day.
  • Active toggle — temporarily hide someone without deleting their history (e.g. on leave).
  • Drag handles — reorder the list; this is the order they appear in dropdowns and exports.

Blockouts (unavailability)

A blockout marks a window where a person can't be rostered. The end time is exclusive: a blockout of 09:00–11:00 means they're unavailable for the 09:00 and 10:00 slots but are free for the 11:00 slot. (Human brains tend to think this way — the app matches.)

Demand slots

Demand slots are the time blocks you need filled. For each slot you set:

  • Required count — how many people the slot needs.
  • Complex count — of those, how many should be marked as the harder/complex role. The solver tries to spread these evenly across staff.

Slot length is set globally in Settings (default 60 minutes).

Auto-solve

The auto-solve button fills empty slots using your staff, blockouts, demand, and settings. It tries to:

  • Respect every blockout and max-shifts cap.
  • Avoid back-to-back shifts (unless you've allowed them in settings).
  • Spread complex shifts evenly and bias away from the same people doing the same time slot day after day.
  • Keep pinned assignments in place.

You can still drag, click, or edit any assignment afterwards.

Pin, complex, and manual edits

Click a person on a slot to:

  • Pin — locks them on that slot so future auto-solves don't move them.
  • Mark complex — flags the assignment as the complex role for that slot.
  • Remove — unassigns them.

The slot's Assign dropdown only shows people who are actually available for that slot.

Templates

Two kinds of templates save you setup time:

  • Demand templates store a pattern of slots (times + required counts) you can apply to any day.
  • Roster templates store slots plus assignments by staff name — useful when you want a recurring roster as a starting point.

Exports and sharing

  • Image export — saves a snapshot of the current day's schedule.
  • Share link — encodes the schedule into the URL itself, so anyone with the link can view it. Nothing is uploaded to a server.

Settings

Workspace-wide preferences:

  • Labels — rename "staff", "slot", "day" to match your context (interviewers, sessions, etc.).
  • Slot duration — how long each slot is.
  • Proximity window — minimum gap between a person's shifts.
  • Allow back-to-back — overrides the proximity rule for consecutive slots.
  • History window — how many recent days the solver looks at to avoid repeats.
  • Presets — one-click configs for interview panels, clinics, call centres, tutoring, and volunteers.

Backup and reset

Because data lives in your browser, clearing site data wipes everything. Use the export options in Settings to keep a backup file you can re-import later.

  • Export — open Settings, scroll to Backup & storage, and click Export to file. This saves a JSON backup to your device.
  • Import / restore — in the same section, click Import from file, select your backup JSON, and confirm the replacement. The page will reload with the restored data.