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.
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.
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.
Workaround
Best for
Setup effort
Watch for
Combined service
Set pairings (facial + lash lift)
Low, one new calendar service
List of combinations grows too long
Sequential workflow
Consult then procedure, family members
Medium, one workflow with a wait step
Second link expiring before it is used
Group slot plus headcount field
Families, parties, group sessions
Low, one form field
Staff forgetting to check the field before service
External scheduler synced in
Complex multi-resource booking
High, needs an API or webhook build
Sync 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.
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
GoHighLevel recurring appointments: limits, reminders and a workaround for open-ended series
Recurring bookings in GoHighLevel run out, and reminders for later visits can misfire. Here is a workflow that books the next visit after each one.
Learn more
Speed to lead automation: a five-minute response system you can build in GoHighLevel
How to build a speed to lead system in GoHighLevel that texts, calls, assigns and escalates every new lead inside five minutes, with the exact triggers, wait steps and conditions.
Learn more
Can GoHighLevel Send Automatic Messages to New Instagram Followers?
There is no GoHighLevel trigger for a new Instagram follower, and Meta limits who a business can message first. Here is the workflow that works today.
Learn more
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.