Jul 16, 2026

If you use Stampede Bookings, there is one screen your team lives on during service: the day planner. It is the grid of your tables against the clock, where every booking, walk-in and blocked table sits. It is the first thing you open when the doors are about to go, and the thing you glance at forty times an hour once they have.
It is the most-used, most time-critical feature in Stampede Bookings. So we rebuilt it from the ground up.
The functionality you already rely on has not changed. What we have done is replace the engine underneath it, so the planner is much faster, cleaner and sharper on the exact hardware and conditions real venues use. Same job. New machine.
Why we rebuilt it
The old planner served venues well for years. But it grew feature by feature, and each new feature paid rent to old decisions. Rather than keep patching, we rebuilt the grid as a purpose-built engine inside our design system. Every lesson from the years of running real services went into the new one.
The result is not a new set of features to learn. It is the same planner your team already knows, doing the same job, far quicker.
It feels instant, because almost nothing re-renders
The single biggest complaint about screens like this is lag: the scroll that stutters, the hover that jumps, the page that “thinks” for a beat after you move a booking. The new planner is built so the heavy lifting happens once, and everything that follows your finger or cursor after that costs almost nothing.
Opening the planner shows a planner-shaped outline straightaway, so you see the shape of the screen you are about to get, instead of a spinner.
Flicking between days is immediate, because we quietly load yesterday and tomorrow before you ask for them, both bookings and blocked tables.
Scrolling and hovering stay smooth even on older devices, because they never make the app stop and re-think the whole page.
Under the hood. Gridlines are a single repeating CSS gradient, not a DOM node per slot, so the grid body contains zero gridline elements. Tiles are absolutely positioned and never animated by React. The body is isolated so a tile change cannot reflow anything outside it, and the scroller sits on its own compositor layer. The now-line ticks on its own 60-second interval and re-renders only itself. Hover, drag and resize write styles directly to single elements inside an animation-frame loop: one listener, one element, no re-render per pointer event.
You always know exactly where you are
Hover or tap anywhere on the grid and the planner answers the two questions your eye is asking: which table, and what time. The row lights up against the table column, the slot lights up against the time axis, and the exact cell under your cursor is outlined. On a forty-table venue at 19:00, that is the difference between confidence and squinting.
The same intelligence applies to empty slots. The past is closed off, so you cannot accidentally book 15:00 yesterday. A slot near “now” offers a walk-in. A future slot offers a booking, at the exact time you tapped.
Under the hood. The crosshair is one positioned cell plus two companion strips, for the row and the column, moved by direct style writes on each animation frame. No state, no re-render, which is why it never lags the cursor.
Move a booking and see where it lands, before you commit
Moving a booking used to be a small act of faith. Now the planner shows you the landing before you let go: a shadow of the booking snaps to the exact slot and table it would move to as you drag. If the move would push other bookings along, faint previews show where those would end up too. On drop, one dialog confirms the move with real table names, and nothing is saved until you say so.
Bookings across joined tables now move as one. A party seated across two tables (say T3 and T4) drags as a single block, and every table shifts together by the same amount. Previously, these could not be moved at all.
A booking with an open bill on the till stays put, with a clear message pointing you at the Square device. That is the one case where a move genuinely must not happen from here.
Resizing a booking\’s length works from either end, snapped to your venue\’s booking interval.
Under the hood. Multi-table moves shift every table by the same amount, so the shape of the party is preserved. Allowing combination moves needed no backend change: the booking update endpoint already dissolves the combination into an explicit multi-table assignment, so the old frontend block was removed as the fiction it was. The drop guide only exists while a drag is active, and costs nothing the rest of the time.
Touch that behaves the way touch should
On a phone or tablet, scrolling and dragging used to fight each other. Now they are two clearly separate gestures: swipe to scroll, press and hold to lift a booking. When the hold engages you feel a small buzz, the booking visibly lifts, and the page stops scrolling underneath you. The iOS text-selection and copy pop-ups are switched off across the grid, so a long press never drops a magnifier on top of your service.
Under the hood. Touch drags require a 200 ms hold with 15 px of tolerance; mouse drags start after 5 px of travel, so a click is never mistaken for a move. Tiles opt out of native panning, and the haptic uses the same helper as our navigation, which works on iOS where the standard vibration API does not.
Block out tables by painting them on the planner
Blocking tables used to mean filling in a form in a side panel, describing the grid to the system from memory. Now, for the day on screen, you paint blocks straight onto the planner. Tap a slot to toggle it, or drag a rectangle across tables and times to block the lot in one go. Tables blocked next to each other over the same period merge into one shape, so a closed section reads as one closed section, not a stack of stripes. Multi-day blocks keep the side panel, which is the right tool for that job.
Under the hood. Block mode is the same grid in a different mode, not a second screen. Edits build up locally and save as one transactional round-trip, creates and deletes together, so a half-saved schedule can never exist.
Everything around the grid earns its space
The grid is the point, so we made the rest get out of its way. The bookings list on the left collapses to hand its full width back to your tables, and reopens from the header when you want it, with a filter that searches name, email and reference in place. Header actions are icon-first, with one clearly labelled Create button. The stats panel reads the day at a glance, and its numbers were audited on the way in, so allergens, celebrations and returning-guest counts reflect what is actually on the bookings.
Creating a walk-in or booking lost its theatre too. No fake loading steps, just the save, then a confirmation with the real table names, and a one-tap Seat guest when auto-seating is off.
Time is honest now
A whole class of old, awkward bugs came from time arithmetic: bookings drawn at midnight, the grid stretching past closing time, venues that close after midnight confusing the axis. The new engine\’s day runs from open to close and no further, closes that roll past midnight roll correctly into the next day, and every time is anchored to the venue\’s timezone, not the device\’s. What you see is the service, exactly.
The quiet numbers
Most of the work here is invisible on purpose. These are the measurements behind “it feels instant.”
Gridline elements on the grid: zero, painted as one CSS layer.
Re-renders per pointer move: zero, styles written directly each frame.
Touch drag engages at: a 200 ms hold, 15 px of tolerance.
Mouse drag threshold: 5 px, so a click is never a move.
Days loaded ahead: one either side, bookings and blocks.
Now-line refresh: every 60 seconds, re-rendering only itself.
Saving a block schedule: one all-or-nothing round-trip.
We changed the engine without ever risking your service
Here is the part we are quietly proud of. The new planner is live and default for every venue, but the old one was never deleted. Both engines read the exact same bookings, so your data never moved, and switching back is a single flag, no deploy gymnastics and no migration.
We changed the machine under the busiest screen in your venue without gambling with a single Saturday. Making the risk of shipping this boring was a deliberate engineering decision, and it is the same discipline we bring to everything we build.
What this means for you
If you run on Stampede Bookings, you do not need to do anything. The new day planner is already the one you are using. It is the same planner, the same job, just noticeably quicker on the hardware and wi-fi you actually have on the floor.
This is how we build: we take the load-bearing, unglamorous screens as seriously as the shiny ones, because those are the ones your service depends on.
Want to see the day planner in action? Book a 15-minute walkthrough and we will show you the screen your venue would run on.
FAQ
What is the day planner in Stampede Bookings?
It is the main screen your team uses to run service: a grid of your tables against the clock, showing every booking, walk-in and blocked table for the day. It is the tentpole feature of Stampede Bookings.
Has anything changed about how the day planner works?
No. The functionality is the same. We rebuilt the engine underneath it, so it is much faster, smoother and sharper, especially on older tablets and slower wi-fi. You do not need to learn anything new.
Will it still be quick on an old iPad or poor wi-fi?
That is exactly what it was rebuilt for. Scrolling and hovering stay smooth on low-end hardware, and adjacent days are loaded before you switch to them.
Can I move a booking that spans joined tables now?
Yes. A party seated across joined tables now moves as a single block, with every table shifting together. This was not possible before.
What happens if a booking has an open bill on the till?
It stays put, and the planner tells you why and points you to the Square device. It is the one move that genuinely should not happen from the planner.
How do I block out tables for a closed section or private event?
For a single day, paint the block straight onto the planner: tap a slot, or drag a rectangle across tables and times. Multi-day blocks still use the side panel.
Do I need to do anything to get the new day planner?
No. It is already live and the default for every venue.