Skip to main content

Selecting services and time slots

After signing in, the heart of the booking journey is three short choices: what is the appointment for, who should see the pet, and when should it happen. Lupa walks the client through these as three discrete screens, in that order, with the available options re-calculated live from the clinic's diary every time. This page covers exactly what shows up on those screens, how Lupa picks what to offer, and the edge cases the team should be aware of. For the orientation overview of online booking β€” and how this fits into the wider journey β€” see .

πŸ’‘ In short: Pick the pet β†’ pick the visit type (filtered by the pet's species) β†’ pick a vet (optional) β†’ pick a date and time slot (live availability). Lupa never offers a slot that isn't free.


Why these screens matter

⚠️ Trust the live availability β€” don't padlock the diary "just in case". It's tempting to block out internal time in the diary to stop online bookings landing on it. Lupa's slot calculator already excludes anything that isn't a bookable gap (existing appointments, blocked time, time outside opening hours, time outside the lead-time window). Padding the diary with manual blocks just hides slots from clients without making your day any less full.

What this step gives you

Why it helps

Species-aware visit types

A cat-only owner doesn't see exotic-only services, and vice versa. The list is filtered by the pet they picked on the previous screen.

Live, gap-aware availability

Slots are calculated when the screen loads, and again when the client changes vet or date. Anything booked moments ago is gone immediately.

Optional vet preference

Clients can pick a specific vet for continuity β€” or pick Any Employee and let the clinic assign whoever's free.

Honest pricing

If a visit type's price is marked public, it shows on the card. If it isn't (consultation needs assessment, custom quote), the price is hidden and re-appears only on the confirm screen.

Honest timezone

Times shown are always in the clinic's local timezone, with a banner if the client is in another zone.


How the screens are ordered

The wizard surfaces three screens in this article's scope. Some are skipped automatically depending on configuration.

Screen

Wizard heading

When it's shown

Visit type

Select booking type

Always.

Vet / nurse

Select a date and time (vet row at the top)

Only if the clinic has employee selection enabled in the portal settings.

Date and time

Select a date and time

Always (unless the clinic has disabled date selection β€” rare, used for some pre-registration-only setups).


How clients pick a visit type

The screen is titled Select booking type. It's a vertical list of cards β€” one per visit type the clinic offers online for the pet's species. Each card shows:

  • The visit name (e.g. Annual Health Check, Vaccination, Weight Clinic)

  • A short description, if the clinic has set one

  • The duration in minutes

  • The price, only if the visit type is marked as public-priced The list is filtered by the pet's species, so a dog owner won't see services configured as cat-only and vice versa. Clients tap a card to select it; the card outline changes colour to confirm.

πŸ“ The client doesn't see every visit type your clinic offers. Only visit types that are explicitly enabled for online booking, and that match the selected pet's species, appear here. Configuration of which visit types are bookable online lives in the work app's settings, not in the booking portal.

Multi-pet bookings

If the clinic permits booking for more than one pet at a time, a row of pet chips sits above the visit-type list. The client taps each chip in turn and picks a visit type for that pet β€” the booking carries one visit type per pet through to the confirm screen.

What happens when the client clicks Next

Lupa routes the wizard based on what the clinic has enabled:

  • If date selection is enabled (the default) β†’ goes to the Select a date and time screen.

  • If the clinic has questionnaires that apply to the chosen visit type β†’ goes via the questionnaire screen first. See .

  • Otherwise β†’ straight to the confirm screen. See .


How clients pick a vet, date, and time

The screen is titled Select a date and time and stacks three sections vertically: vet (if enabled), date, then time slots.

Vet / nurse selection

The vet row sits at the top as a horizontal scrollable strip of staff cards. The very first card is always Any Employee β€” picking it tells Lupa to show slots from any vet who can do this visit type. Subsequent cards each show a real staff member, with avatar (or auto-coloured initials if no photo), full name, and role (e.g. Veterinarian, Veterinary Nurse). Tapping a card selects it, and the slot list below recalculates immediately for that person.

πŸ“ Only staff configured as online-booking points-of-contact appear here. Clinics control who is bookable online from the staff settings in the work app. If a vet shouldn't be visible to clients, they're hidden from this list β€” not just unavailable.

Date selection

A calendar (on desktop) or a stacked date input (on mobile) follows. Dates the client can pick are bounded:

  • The earliest pickable date is today plus the clinic's minimum lead time

  • The latest pickable date is today plus the clinic's days in advance limit (commonly 30 days, set per clinic)

  • Dates with no available slots β€” even if they fall in the window β€” are greyed out Available dates show a small dot under the number indicating availability density (more dots / brighter dot = more slots free). The client taps a date and the slot list below loads.

Time slot selection

The slot list is a vertical column of cards. Each shows:

  • Start and end time, formatted in the clinic's locale

  • Duration Slots are sorted chronologically. The client taps a slot to select it; the card outline changes to confirm. If no slots come back for the selected date, Lupa shows a small "No slots available" message with an animated graphic. The client should pick a different date, change the vet (if enabled), or contact the clinic directly.

πŸ’‘ Picking a different vet refreshes the slot list. If a client has selected a slot and then changes the vet, Lupa clears the previous slot selection and recalculates β€” they'll need to pick a slot again under the new vet.


How Lupa calculates availability

Slot calculation is the most-asked-about part of this step. The summary: a slot only shows up if everything below is true at the same time.

The mechanics, in plain English

  1. The slot's start time falls inside the clinic's working hours for that day.

  2. The slot's full duration (the visit type's duration) fits before the next existing appointment, blocked time, or end of working hours.

  3. The slot's start time is at or after today + the clinic's minimum lead time β€” so a client can't book ten minutes from now if the clinic requires 24 hours' notice.

  4. The slot's start date is at or before today + the days-in-advance limit.

  5. At least one bookable staff member is free for the whole slot duration. If the client picked Any Employee, that's any one of them; if they picked a specific person, it's that person.

  6. Any room or resource the visit type requires is also free for the slot's duration.

This is recomputed every time the screen loads, the date changes, or the vet changes β€” and once more on submit, to catch the case where someone else booked the same slot in the seconds between picking and confirming.

πŸ”’ Submission re-checks the slot. When the client clicks the final confirm button, Lupa re-runs the availability check on the server. If the slot was taken in the meantime, the booking fails cleanly with a "Time Slot Unavailable" message and the client is sent back to this screen to pick a new slot. The diary never receives a double-booking.


Edge cases worth knowing

Edge case

What happens

The clinic has only one bookable vet

The vet row still appears, but with one card plus Any Employee. Any effectively maps to that vet in this case.

The pet's species has no bookable visit types

The visit-type list is empty. The client should contact the clinic β€” this usually means the clinic hasn't configured any services for that species.

Visit type with no public price

The card on the visit-type screen omits the price. The price re-appears on the confirm screen only if all visit types in the booking are public-priced. If any are private, the total is hidden until the actual visit.

Visit type duration longer than any available gap

Slots simply don't appear for any date until a gap large enough opens up. Lupa never shows a slot where the visit would overrun.

Client switches vet mid-flow

The previously-picked slot is cleared and the slot list reloads for the new vet. The client must pick again.

Calendar shows no available dates at all

Either every date in the booking window is fully booked, or no staff with the right capabilities are working in that window. Picking Any Employee (if a specific vet was selected) is the easiest first thing to try.

Slot becomes unavailable between picking and submitting

On submit, the server returns Time Slot Unavailable. Lupa pops a dialog with a Choose a New Time button that drops the client back on this screen with the slot list refreshed.


Tips for clinics

βœ… Keep visit types crisp. Three to six clearly-named services are easier for clients than fifteen near-duplicates. The clearer the list, the fewer mis-bookings. Match duration to reality. If your Annual Health Check really takes 20 minutes, set it to 20 β€” not 15 with a habit of overrunning. Lupa books slots at the configured duration; clients see and trust those numbers. Be deliberate about public vs private pricing. Public prices on the card help informed clients self-serve. Private pricing is the right call for visits where the cost depends on a clinical assessment. Decide whether clients pick the vet. Allowing vet selection helps with continuity for known clients. Hiding it gives the clinic flexibility on the day. Either is valid; pick one and stick with it. Set the lead time and window deliberately. A short lead time (e.g. one hour) opens the door to last-minute bookings; a longer one (e.g. one working day) gives reception time to prepare. The advance window controls how far ahead clients can plan β€” 30 days is typical.


Troubleshooting

Problem

What to check

"My visit type doesn't appear on the list a client sees"

Check (a) the visit type is enabled for online booking in settings, and (b) it's enabled for the species the client picked. Both must be true.

"There are no slots on any date"

Check the working hours for the affected dates, the booking lead-time setting, and that at least one bookable staff member is rota'd in. Also confirm the visit type's duration fits anywhere in the day.

"A specific vet I'd expect to see isn't on the list"

The vet has to be flagged as an online-booking point-of-contact in their staff settings. If they aren't, they're hidden from the picker.

"Client got Time Slot Unavailable after picking a slot"

Someone β€” another client online, or a colleague booking via the work app β€” took the slot in the seconds between the client picking it and submitting. The client just needs to pick a new slot. The diary is never double-booked.

"Times shown to clients look wrong"

Times are always in the clinic's timezone, not the client's. Confirm the clinic's locale and timezone in settings. If the client is travelling, the wizard shows a small banner explaining the difference.

"The price on the card doesn't match the price after the visit"

The card price is the visit type price, before any product, medication, or extra-time charges. Final invoicing happens at the consult.


Frequently asked questions

How is the visit-type list filtered?

By two things: whether the visit type is enabled for online booking in the clinic's settings, and whether the visit type applies to the selected pet's species. Both must be true. Anything else β€” including visit types intended only for clinical use β€” is hidden.

Why does the slot list change when I switch vet?

Slots are calculated per vet (or for the union of all vets if Any Employee is selected). A specific vet's slots reflect only their own diary, working hours, and capabilities. Switching vets re-runs the calculation from scratch.

Can a client see slots that overrun the working day?

No. A slot only appears if the full visit duration fits before the end of working hours (or before the next existing booking or block). Clients can't book a 30-minute appointment with 15 minutes of working day left.

Why are there no times after a certain date in the calendar?

The clinic sets a days in advance limit β€” the furthest into the future a client can book online. 30 days is common, but the clinic decides. Anything past that date is greyed out.

Why is Any Employee the first option?

It opens up the widest set of slots. Many clients don't have a strong preference; defaulting them to Any gets them an appointment faster and gives the clinic flexibility on assignment.

Does the slot picker handle staff lunch breaks and blocked time?

Yes. Anything in the diary that isn't a free gap β€” appointments, blocks, lunch, training β€” is excluded from the slot calculation. If it's in the diary, it's protected from booking.

What about resources like consult rooms and ultrasound?

If a visit type requires a specific room or resource, that resource has to be free for the slot's duration too. So a slot might be hidden because the room (not the vet) is taken.


Related articles

Did this answer your question?