Offer a time you can actually keep.

Availability is computed from working hours, the skills a job needs, the zones you drive to and the buffer around every visit. A slot is held with an expiry, and confirming it is a single transaction that cannot produce two vans at one address.

Times you can actually promise

Skills, zones and travel buffers narrow the search before a time is shown. Nobody is offered for a job they can't do or an area they don't cover.

Hours, zones and emergencies you control

Working hours, the postcodes you actually cover, and what counts as an emergency out of hours — all set by you, not judged by the AI.

01

Search returns real slots

Looking for times books nothing and holds nothing. Ask twice and you get the same answer.

02

The slot is held, briefly

The time is blocked while the customer decides, and frees itself if they don't. Nobody has to remember to release it.

03

Confirming does everything at once

The appointment, the work order and the confirmation to the customer all happen together, or none of them do. Nothing ends up half-booked.

A week you can read

The dispatch calendar shows visits, holds and the gaps between them.

An emergency path

Out-of-hours urgency follows your written policy, including straight to a human.

A cancellation that cleans up

Cancelling frees the time and withdraws the job, as long as nobody has started it.

What the customer is offered is what the search returned. Holding one writes a row with an expiry, and confirming re-checks the hold, the request version and the availability before it commits — so a slow customer loses a hold rather than someone else's morning.

  • Holds that release themselves

    An abandoned hold expires on its own, so a hesitant customer never freezes a morning.

  • Buffers before and after

    Travel and write-up time are part of the slot, not something the day absorbs.

  • Zone-aware, not zone-blind

    Out-of-zone stays possible and stays a decision — the picker names the reason.

  • Confirm twice, book once

    Repeated and concurrent confirmations return the same appointment. Proven against Postgres.

Give customers a time, not a callback promise

Set up one resource and one service, and the calendar starts answering for you.