Skip to Content
ModulesEventsBulk-managing shifts

Bulk-managing shifts

There are two bulk actions, and both delete: Delete selected on an entry, and Remove a date range on the Schedule screen. Earlier versions of this page described Cancel, Reschedule and Notify actions. None of them exist, and none of them ever did. Read the section below before selecting anything.

Selecting shifts

On an entry’s page, tick the checkbox on each shift row you want. A bar appears above the table reading N shifts selected, with two buttons:

  • Clear — drops the selection
  • Delete selected — deletes them

What Delete selected actually does

It permanently deletes the shift rows. There is no cancelled state to move them to — a shift has no status field at all — and no undo.

Before it runs you get a browser confirmation dialog, not an in-app window:

Delete N shifts? M volunteers signed up. You choose next whether to email them.

M is the number of people already signed up across the selected shifts.

If anybody is signed up, a second box follows. It says how many members are affected, asks you to type DELETE, and has a checkbox:

Email the M people signed up that it is cancelled

It is ticked by default. Ticked, each person signed up is emailed an apology with a link to other shifts. There is no free-text box, so you cannot say why.

Untick it to delete quietly. Nobody is emailed. Use this for shifts made by mistake or for testing, or when you would rather tell people yourself. The delete is recorded either way, with whether people were emailed.

The per-row Delete button and Delete selected run the same code and offer the same checkbox.

At most 200 shifts can go in one bulk delete.

Only confirmed sign-ups are emailed. Someone who already cancelled their own place is not contacted again.

Remove a date range

In the sidebar, click Schedule, then use Remove a date range (below the coverage report). Pick From and To and press Preview: it counts the future shifts in that range across every entry, names the entries, and says how many people are signed up. Shifts that have already started are listed as kept and are never removed. Remove these shifts then asks for DELETE (when anybody is on them) with the same Email the M people signed up that it is cancelled checkbox. Only shifts are deleted; the entries stay. The audit log records who removed which range and whether people were emailed.

Who can do it

An Editor, an Admin or the Owner (with Event Manager), and a Calendar Manager (the role or the tick box). A Calendar Manager deletes future shifts only: a started shift is refused on its own, and kept and listed in a selection or a range.

Undoing it

A restore point of the month is kept before any shift with people on it is deleted, so an Admin, the Owner or a Calendar Manager can put the month back from Restore points on the calendar. Otherwise, recreate the shifts with + Add shift, the Schedule wizard or Bulk import. If the checkbox was ticked, the affected people have already had the apology email, and it pointed them at other shifts.

Adding many shifts at once

The opposite direction has two tools, both on the entry’s page:

  • Schedule wizard — seven steps across a date range
  • Bulk import — a CSV, up to 500 rows

Bulk import takes date (required, YYYY-MM-DD), start_time and end_time (HH:MM, 24-hour, optional), capacity (blank = unlimited), signups_open (true/false, blank = true) and label. Pair signups_open=false with a label for informational rows like DELIVER. Download the template first — it has the headers already.

Rows that fail validation are listed under Rows with errors (skipped) and the rest still import.

Closing a shift instead of deleting it

If what you want is to stop people signing up without destroying the shift, uncheck Open for sign-ups on it. Nothing is deleted and nobody is emailed.

But it hides anyone already signed up. A closed shift loses its Roster button, and its fill count is replaced by its label (or the word Closed). So you cannot see who is on it, mark them attended, log their hours, or remove them — and they have not been told anything.

Nothing is lost: tick Open for sign-ups again and the roster comes back exactly as it was. But close a shift with people on it and you have made them invisible, not cancelled them.

Deal with the existing sign-ups first, then close it.

Removing a few shifts rather than many

Each shift row has its own Delete button. It is the same action on one row, including the choice to email the people signed up or not. There is also Duplicate, which opens the add-shift window pre-filled from that row.


Last updated: 2026-10-05 · Applies to: CartonCrew v1.782+