Lab · Hold

What if booking understood how people negotiate time?

Most booking software is a database with extra steps. Hold keeps one reservation on screen and spends the craft on Motion: services move into the booking, unavailable 10:00s become a question, better matches drift toward the centre. Nothing is reserved.

How to use it

  1. Pick physiotherapy. Watch it assemble in the reservation.
  2. Prefer Sarah, leave the slider around 10am. 10:00 isn’t hers. Say what matters.
  3. Take 10:15. It holds for five minutes of theatre.
  4. Continue for allergies. Latex changes which services remain. The summary is the editor.

Hold

Explore

Your booking

Nothing selected yet.

Service

Who

When

MorningAfternoon

Around 10am

Availability

Thursday morning · around the time you asked for

Best match 10:00 with James. 8 options.

Negotiation, not a funnel

Six steps that each own a database field make sense to a scheduler. They do not match how people actually book: Thursday morning, Sarah if she’s around, somewhere near 10. Hold is one booking state with three ways of touching it: explore when you need to compare, focus when you need one question, review when the object you built is the editor.

Motion is the explanation. Shared layout so a service does not vanish and reappear as text. Springs so a constraint does not blink a new grid into existence. Reduced motion keeps the states and drops the choreography. The constellation is an enhancement; the list underneath is the booking.

This is a Lab prototype. A real clinic would still hold slots on a backend. The argument is that unavailability is a preference question, not an error screen.

Demo only. No appointments, no accounts, no network. Thursday 27 August is a fixture. Sarah cannot do 10:00. James can.