OperationsFeatured

Appointment Booking Agent

Offers the slots that can actually happen, not the ones that look free

Version 1Published Sep 4, 2026
OperationsExtractclaude-sonnet-5Write · auto9 hard rules5 handover rulesResult
9hard rules
Things it must never do, enforced in every run
5handover rules
Conditions where it stops and gives the work to a person
12output fields
A structured result, not a paragraph you have to re-read
≤6steps per run
Bounded work: at most 5 tool calls, enforced by the runtime
Live wiring for version 1. Tool nodes are the capabilities this agent is registered to call — nothing else can run.

Overview

Every booking system answers "is the practitioner free at six?" — which is almost never the question that matters. The chair is free and the laser is not. There are forty minutes before the next appointment and the treatment takes sixty. The room is free but it is the one being cleaned between the two either side of it.

So a slot gets offered, a customer takes it, and somebody at the desk finds the conflict the next morning and makes an apologetic call. That booking was never real, and while it sat there nobody else could take the time.

This agent resolves a service into everything it actually consumes — the practitioner qualified to do it, the room, the equipment, the assistant who has to be present, the turnaround before the next one — and only offers what survives all of it.

It also reads the request as people write it. "Saturday after five", "same as last time", "with whoever did my colour", "before I fly on the 14th". A great many bookings are lost not because there was no slot but because the customer could not find it in a dropdown and gave up.

It writes a booking only after the customer has confirmed a specific slot in plain words. It never moves or cancels an existing appointment, never books over a block, and never takes a payment.

Benefits

No apologetic phone call

Because the slot was checked against everything it needed.

Bookings that would have been lost

From the requests a dropdown cannot read.

The desk stops arbitrating

Conflicts are prevented rather than discovered.

What it does

  • Checks every resource, not just the person

    The room, the equipment, the second pair of hands, the turnaround before the next one. A slot that fails any of them was never bookable.

  • Reads the request as it was written

    "Saturday after five", "same as last time", "before I fly on the 14th". Most bookings are lost in the dropdown, not for want of a slot.

  • Prices the slot in real duration

    A consultation and a laser session are not the same appointment. Forty minutes free does not fit a sixty-minute service.

  • Confirms in words before it writes

    A booking made on an assumption is a no-show with extra steps. It restates the slot and waits for a plain yes.

  • Offers the near miss honestly

    When nothing fits, it says what is closest and why the request could not be met, rather than returning an empty list.

  • Never moves an existing appointment

    Rescheduling somebody to make room is a decision about another customer, and it belongs to a person at the desk.

What this changes

What this changes about your week

It takes over
Answering a booking request, checking it against every diary and resource, and offering a slot that will hold.
Done today by
Whoever is nearest the desk or the phone, between everything else they are doing.
How often
Every enquiry, including the ones that arrive at eleven at night.
Typical manual effort
A few minutes each, and an apologetic phone call the next morning when a slot turns out not to have been free.

Why Operations in particular. A booking widget checks one diary. The chair is free and the laser is not, so the slot it sold was never real and nobody else could take it either.

  • Runs unattended

    Started by you or by an event, and it finishes on its own. Nothing waits for someone to be at a desk.

  • The same standard every time

    The two-hundredth item is held to the bar the first one was. Consistency is the part people cannot sustain.

  • Nothing runs above your ceiling

    Anything above the risk you allow stops and waits for your approval, with its impact stated.

How it runs

This agent runs server-side through the PROMIVO runtime. Each run is logged step by step and every tool call is permission-checked before it executes.

  1. 1InputValidated against the agent input schema
  2. 2Modelclaude-sonnet-5 with automatic fallback
  3. 3Toolsextract_structured_data
  4. 4PermissionsRuns WRITE actions automatically; anything higher waits for approval
  5. 5OutputStructured result matching the output schema
  6. 6LoggingTokens, duration and every step recorded

Demo

Demo dataIllustrative sample output, abridged.

Input

{
  "request": "Hi, can I get a laser session Saturday after 5 with whoever did it last time?",
  "services": [],
  "availability": []
}

Output

{
  "booked": {
    "startsAt": "2026-09-12T17:30",
    "reference": "BK-4471",
    "confirmedBy": "Customer replied \"yes please\" at 23:04",
    "practitioner": "Nadia"
  },
  "offered": [
    {
      "room": "Treatment 2",
      "endsAt": "2026-09-12T18:30",
      "startsAt": "2026-09-12T17:30",
      "whyThisOne": "The only Saturday slot after five where Nadia, the laser unit and a treatment room are all free for the full sixty minutes with the fifteen-minute turnaround after it. 17:00 looks free on Nadia's diary but the laser is in Treatment 1 until 17:20.",
      "practitioner": "Nadia",
      "resourcesChecked": [
        "Nadia",
        "Laser unit A",
        "Treatment 2",
        "15 min turnaround"
      ]
    }
  ],
  "escalate": false,
  "disclaimer": "Availability checked against the practitioner, room, equipment and turnaround supplied. No existing appointment was moved and no payment was taken.",
  "understood": {
    "service": "Laser session",
    "timeConstraint": "Saturday, at or after 17:00",
    "durationMinutes": 60,
    "practitionerRequested": "Nadia — from this customer's appointment on 14 August"
  },
  "couldNotMeet": "",
  "depositRequired": false,
  "checkWasComplete": true,
  "escalationReason": "",
  "nearestAlternative": "",
  "confirmationMessage": "I can do Saturday 12 September, 5:30pm to 6:30pm, laser with Nadia in Treatment 2. Shall I book it?",
  "whatCouldNotBeChecked": []
}

Requirements

Integrations

No integrations required.

Before you start

  • Your service list with real durations
  • Practitioner availability, working hours and leave
  • Rooms, equipment or assistants each service needs
  • Existing appointments and blocks
  • Requires the Starter plan or higher

Use cases

Clinic and surgery booking

Where a procedure needs a room, equipment and a second clinician.

Salon and treatment rooms

Where duration varies wildly by service and the chair is not the constraint.

Multi-site and multi-practitioner

One request against several diaries, several branches.

Out-of-hours enquiries

The bookings that arrive at eleven at night and are gone by morning.

Pricing

Starter

Billed monthly through your PROMIVO subscription. Cancel at any time.

Runs consume your plan allowance for agent executions and tokens. See plan limits

FAQ

Can it book without asking me?

It writes a booking only after the customer has confirmed a specific slot in plain words. It never books over a block, never double-books, and never moves or cancels an appointment that already exists — those affect somebody who is not in the conversation.

What if no slot fits the request?

It says so, gives the nearest alternatives, and states which part of the request could not be met — the day, the time, the practitioner, or the duration. It never invents availability to avoid an empty answer.

Does it take payment or a deposit?

No. It never handles a card, a deposit or a refund. Where a deposit is required it says so and hands the customer to whatever you already use for payment.

What does it need to know about a service?

Its real duration, who is qualified to deliver it, and what it consumes — room, equipment, an assistant, turnaround time. Without that it can only check the practitioner's diary, and it says so rather than pretending the check was complete.

Reviews

Reviews open once customers have run this agent.

Need this agent to work differently?

Tell us what to change and our team will scope a customised version for your business.

Customize this agent