The GoHighLevel practice of Yotomations LLCAI development, custom software and websites at yotomations.com
New to GHL? Start here

Can GoHighLevel Book Multiple Appointments in One Visit?

Med spas and salons ask this constantly: can one client book two services back to back in GoHighLevel? Here's what to build instead of waiting for a native fix.

A woman paying at a counter in a plant-filled shop with a smiling clerk
By Yaakov (Koby) Oranski, Certified GoHighLevel Admin and Partner | | 7 min read

Short answer: GoHighLevel does not let a client book two separate services in one action today. The most reliable fix is a combined calendar service for back to back visits, or a workflow that sends a second booking link right after the first one confirms. The public request for native multi-booking sits open on HighLevel's ideas board with 598 votes, so plan on one of the two workarounds below rather than waiting.

Two ways to book more than one appointment in GoHighLevelTWO WAYS TO BOOK MORE THAN ONE APPOINTMENT IN GOHIGHLEVELClient requestWants two services in onevisitCombined serviceOne slot, custom field foritemsSequential workflowConfirms first, textssecond linkGoHighLevel calendarOne appointment record perslotBoth bookedTwo services, no slotconflictformformafter first confirmsreminders startOne calendar slot holds one appointment record, so combining services or chaining bookings is the workaround until a native flow ships.

Why this still takes a workaround

A GoHighLevel calendar slot holds one appointment record. That is fine for a single haircut or a single consult, but it breaks down the moment a client wants a facial and a massage in the same visit, or a family wants three people booked at once. The request to book multiple appointments at once is open on HighLevel's public ideas board with 598 votes as of this writing. Open means it has not been marked planned or in progress, so there is no timeline to point a client toward, only a lot of other businesses asking for the same thing.

What open means here

HighLevel's board uses open, under review, planned, in progress and complete as distinct labels. Open items can sit for a long time or move quickly, and neither HighLevel nor Yotomations can predict which. The vote count tells you the demand is real, not that a release is close.

Combine the services into one calendar entry

The cleanest fix for a set menu of paired services is to stop treating them as two bookings and build one. A med spa selling a facial with an add on lash lift creates a single service called something like "Facial + Lash Lift, 90 min" with the combined duration baked in. A booking form question or a dropdown lets the client indicate what they actually want, and that answer lands in a custom field on the contact or the appointment. Staff see one slot on the calendar, but the custom field tells them exactly what was booked without opening a second record.

This works best when the combinations are predictable. A short list of common pairings (facial plus peel, cut plus color, inspection plus estimate) is easy to turn into combined services. A long list of every possible combination gets unwieldy fast, and that is the point where the workaround stops paying off.

Chain two separate bookings with a workflow

Some situations actually need two separate appointment records, not one combined slot. A consult that has to happen before a procedure, a family where each member needs their own slot with their own provider, or a follow up visit scheduled a week out are all real second appointments, not add ons to the first.

The workaround here is a workflow: the first booking triggers a wait step, then an SMS or email with a link to book the second appointment. This keeps both bookings as real calendar entries with their own reminders and their own no-show tracking, instead of trying to cram two visits into one record. It also means reminders behave the way they should, since each appointment fires its own sequence. If reminders have been a problem separately from this, that is worth fixing on its own; see our piece on appointment reminders at the wrong time.

Two related cases come up in the same conversation. If the client wants the same service every week or month rather than two services in one visit, see GoHighLevel recurring appointments, which explains the series cap and the rolling-window workaround. And once a client holds two bookings, every confirmation should carry reschedule and cancel links so they can move one without calling you.

Group bookings and headcount

GoHighLevel counts one appointment as one appointment, whether it is booked for one person or for a party of six. A family booking a group session, a tour company taking a party reservation, or a clinic scheduling a couple's consult all need the same fix: reserve one slot for the group, then track the headcount separately with a custom field or a form question at booking time.

Do not try to make the calendar itself understand party size. It was not built for that, and forcing it usually means a second workaround stacked on top of the first. A simple "number of attendees" field on the booking form, paired with a note field for names, covers almost every group booking scenario we have seen.

WorkaroundBest forSetup effortWatch for
Combined serviceSet pairings (facial + lash lift)Low, one new calendar serviceList of combinations grows too long
Sequential workflowConsult then procedure, family membersMedium, one workflow with a wait stepSecond link expiring before it is used
Group slot plus headcount fieldFamilies, parties, group sessionsLow, one form fieldStaff forgetting to check the field before service
External scheduler synced inComplex multi-resource bookingHigh, needs an API or webhook buildSync breaking silently if the vendor changes their API

When to keep an external scheduler instead

If a business already runs a scheduler built for complex bookings, multiple rooms, multiple staff, multiple resources at once, it is usually a mistake to rip that out and force GoHighLevel calendars to replicate it. The better path is keeping the specialist tool and syncing bookings into GoHighLevel as contact records and pipeline stages through an API or webhook, so reminders, follow up and reporting still run through one system even though the actual scheduling logic lives elsewhere. This is the same pattern we use for med spa groups running specialty EMR or scheduling systems alongside GoHighLevel.

What we would build first

On a discovery call we would ask which of the four patterns above actually matches the business: a short list of paired services, a real second appointment that depends on the first, group bookings that need a headcount field, or an external scheduler that should stay in place. Most service businesses need one of the first three, and all three are workflow and custom field builds we can scope in a fixed price. If the account already has calendars and workflows that conflict with each other, that is worth an automation build conversation rather than a patch on top of a patch. Book a free 30 minute call at meet.yotomations.com and bring the exact booking scenario, not the general complaint.

Yaakov (Koby) Oranski

Yaakov (Koby) Oranski, Founder and CEO of Yotomations

Certified GoHighLevel Admin and Partner. Koby designs CRM migrations, two-way integrations, billing systems and AI agents for service businesses, and writes from the engagements described on this site.

Published

Frequently asked

Can I let a client book two appointments in one checkout in GoHighLevel?

Not as a single native action today. Build a combined service, such as "Facial + Lash Lift, 90 min," so it books as one slot, or send a second booking link automatically once the first one confirms.

How do I handle a family booking multiple people for the same time slot?

Reserve the group as one calendar appointment, add a custom field for headcount, and use a form question or a note field to collect each person's name before or during check in.

Will GoHighLevel ever build this natively?

HighLevel's public ideas board lists "Book multiple appointments at once" as open with 598 votes as of this writing. Open means it has not moved to planned or in progress, so there is no release date to point to.

What should I keep once a native multi-booking flow ships?

Keep the combined-service naming convention and any custom fields you already use for reporting. Retire the workflow step that sends a second booking link, since the native flow should replace that step directly.

Does this workaround only apply to med spas?

No. Home services companies booking a two-visit job, like an inspection followed by an install, and clinics booking a consult plus a procedure use the same combined-service or sequential-workflow pattern.

Keep reading

Is this happening in your account?

Book a 30-minute call. We look at the account live and tell you what is broken, what we would fix first and what it would cost.

No pitch deck. We look at your current setup and tell you what we would do and what it would cost.

Need more than GoHighLevel? Yotomations, our parent company, also builds AI agents, custom software and websites.