← All posts

Push and Push all: fix a timeline overrun without retyping every start time

When the welcome reception runs twenty minutes long, every item after it on the run of show is now wrong. You used to fix that by hand, retyping start times all the way down the list. Now the row that got squeezed shows a Push control, and one tap slides everything back into place.

When a row overruns, it tells you

Give a timeline item a duration that runs past the next item’s start and the later row stops showing the bare conflict triangle. In its place: a red Push dropdown (the chevron doubles as the caret) with two actions.

  • Push: start this item exactly when the previous one ends. Closes the single gap and leaves everything else alone.
  • Push all: shift this item and every later item on the same day forward by the same amount, keeping the gaps between them intact. The keynote, the break, the panel, and the close all move together by the exact overrun, so the shape of the afternoon survives. Later days are untouched.

Push all is one tap, with an Undo

Push all applies immediately and drops a toast with a one-click Undo. No confirm dialog, no staging step: hit it, look at the result, undo if it wasn’t what you meant. The undo is stateless, so it still works if someone else edited a different row in the meantime.

Behind the scenes the reschedule runs as a single transaction with one history row per moved item, the same way a drag-to-reorder does. The audit trail stays honest: you can see exactly which items moved and when.

It only offers when a push is actually safe

The affordance shows up only on a genuine sequential overrun: a row that starts strictly after the row above it but before that row finishes. Two sessions that deliberately start at the same time (parallel breakout rooms, canapes running alongside an AV check) keep the plain triangle, because pushing one of them would silently break the parallelism you set up on purpose.

Same-start items also pick up a subtle grouping cue on the row, so at a glance you can see which ones are meant to run in parallel rather than in sequence.