GoHighLevel calendar setup: from booking link to reminders
GoHighLevel calendar setup takes five decisions: pick the calendar type that matches who takes the appointment, set availability rules that leave real open slots, connect each user’s Google or Outlook calendar so nothing double-books, put the booking widget where leads already are, and let one workflow handle confirmations, reminders and no-shows.
Key takeaways
- The calendar type decides who gets the booking: one person, a rotating team, everyone at once, or a group session.
- Most “no available times” problems are settings: working hours, minimum notice, date range, buffers or a full conflict calendar.
- Every user connects their own Google or Outlook account. Only events marked busy block a slot.
- Send reminders from one system only. Two systems sending them means duplicate texts.
- Track the people who open the booking link and don’t book. They’re your warmest leads.
- Name calendars clearly and archive old ones, or workflows end up attached to calendars nobody uses.
Why is the GoHighLevel calendar harder than it looks?
The GoHighLevel calendar is harder than it looks because it isn’t just a booking page. It’s tied to forms, the contact record, the pipeline and your workflows, and each booking can trigger messages, move a lead to a new stage and assign a rep. Setting the calendar up on its own is easy. Getting all of those pieces to work together is where owners get stuck.
That’s the pattern in accounts brought to us for a fix. At Ultra Cryo & Recovery, a med spa, several workflows were connected to the same calendars, inactive calendars and funnels were still live, and one service’s workflow had several forms triggering it at once. The rebuild is in the Ultra Cryo case study. The GoHighLevel training guide explains why calendars take the longest to learn.
Can GoHighLevel replace Calendly or Cal.com?
Yes, for most businesses. The GoHighLevel calendar system is robust enough to do what people use Calendly or Cal.com for, and more: personal booking pages, round robin across a team, group and class bookings, booking several people at once, payments and deposits at booking, custom booking forms, and Google and Outlook sync.
The bigger difference is what happens after someone books. In Calendly or Cal.com, a booking is an event. In GoHighLevel, it lands on the contact record in the same CRM, moves the lead in the pipeline, and starts the confirmation, reminder and no-show workflows. You don’t need an integration to pass the booking across, and there’s one less subscription to pay for. If you’re running a separate scheduling tool next to GoHighLevel today, moving bookings into GoHighLevel usually simplifies the whole setup (more on that in GoHighLevel integrations).
Which GoHighLevel calendar type should you use?
Pick the calendar type by who takes the appointment. GoHighLevel groups its booking calendars under Meetings: personal, round robin, collective, class, service menu and the older service calendars. A separate Services category is built for businesses that sell a menu of treatments with variations, add-ons and staff-specific pricing (checked on help.gohighlevel.com).
| Calendar type | Who takes the appointment | Use it for |
|---|---|---|
| Personal booking | One named person | A consultant, a solo practitioner, the owner's discovery calls |
| Round robin | The next team member, chosen by rules | Sales teams sharing inbound leads, front desks with several staff |
| Collective | Several people, all at once | A consult that needs the provider and a coordinator, panel calls |
| Class booking | One host, many attendees in the same slot | Workshops, group sessions, webinars with a seat limit |
| Service menu | Whoever offers the chosen service | A short list of services, each with its own length |
| Services | Staff assigned to each service | Med spas, salons and clinics with treatments, add-ons and staff pricing |
Round robin has two distribution modes. “Optimize for availability” books whoever is free at the chosen time. “Optimize for equal distribution” spreads bookings evenly across the team, even if that means fewer open slots. Switching between them resets the booking counts (checked on help.gohighlevel.com). Use equal distribution when reps are paid on appointments and fairness matters; use availability when speed matters more.
Multi-location businesses need one calendar per location, and the lead should pick the location once. Ultra Cryo now has location-specific landing pages and calendars, so every later step already knows which location the patient chose.
How do you set availability so the right slots show?
Availability is set per calendar and per user, and four settings decide which slots a lead sees (checked on help.gohighlevel.com):
- Slot interval: how often a slot starts. A 30-minute interval offers 9:00, 9:30, 10:00.
- Appointment duration and buffers: the length of the meeting, plus time blocked before or after it for notes, travel or cleanup.
- Minimum scheduling notice: how close to now someone can book. Four hours stops a 9:05 booking for a 9:30 slot.
- Date range: how far ahead someone can book. You can make it count only the days you’re available rather than every calendar day (checked on help.gohighlevel.com).
Watch how these interact. A minimum notice of one day with a date range of one day leaves nothing to book. Buffers on a calendar with long appointments can quietly remove half the day. Test the booking page yourself after every change, on the dates a real lead would pick.
For speed-to-lead businesses, keep the notice short. In our team’s data from 186,400 leads, people answered in under a minute booked at 41 percent, against 9 percent when the reply took 4 to 24 hours (speed to lead). A calendar that won’t let a hot lead book until the day after tomorrow wastes that speed.
How do you connect Google Calendar or Outlook without double bookings?
Each user connects their own Google or Outlook account in their profile, then chooses a linked calendar and any conflict calendars. The linked calendar is where GoHighLevel writes new bookings and reads busy times from. Conflict calendars only block time: any busy event on them makes the overlapping slot unavailable (checked on help.gohighlevel.com).
The sync preference matters (checked on help.gohighlevel.com):
- Default (one-way): bookings made in GoHighLevel go to Google or Outlook. Events made in Google only block time in GoHighLevel. No contacts are created and no workflows run from them.
- Two-way: events made in Google or Outlook come into GoHighLevel as appointments, guests become contacts, and workflows can fire.
Two-way sync sounds better, but it means a dentist appointment on someone’s personal calendar can become a contact and start a follow-up sequence. Most businesses are better off with one-way sync, a work calendar as the linked calendar, and personal calendars as conflict calendars.
Double bookings usually come from one of these:
- Events marked “free”. Only busy events block a slot. An all-day event set to free blocks nothing.
- The wrong calendar linked. The rep books meetings in a second Google calendar that isn’t set as a conflict calendar.
- A team member who never connected. On a round robin or collective calendar, every user needs their own connection, or their outside commitments are invisible.
- A disconnected integration. A changed Google password or revoked access breaks the sync silently. Check the connection when bookings start overlapping.
On client builds we set up one-way Google sync by default. Two-way sync is there when a business really needs outside events to come in as appointments, but it’s the exception.
Where should the booking calendar live?
Put the booking calendar wherever the lead already is. Each calendar has a shareable link and an embed code for a website or funnel page. The common places:
- The thank-you page after a form. The lead has just raised their hand, so offer a time immediately.
- The first text or email to a new lead. A link in the instant reply lets them book without waiting for a call.
- A funnel or website page with the widget embedded, for traffic from ads or referrals.
- Inside a conversation. An AI receptionist can check availability and book straight into the calendar during a call or chat.
Track the people who open the link but don’t book. At Ultra Cryo every calendar link is a trigger link: when a lead clicks it and doesn’t finish booking, GoHighLevel tags them, sends an SMS and an email, and tells the sales team to book them by hand. Those clickers are the warmest leads in the account.
Use the booking form to collect what you need before the appointment, with custom fields that save onto the contact. Keep it short. Every extra question loses bookings. A law firm might ask for case type; a med spa for the treatment of interest. For screening before the booking, see how the intake works in GoHighLevel for law firms.
How do confirmations, reminders and no-shows work?
Confirmations, reminders and no-show follow-up run from workflows triggered by the appointment. A typical setup:
- Booked: confirm by text and email straight away, with the time, the address or meeting link, and how to reschedule. Move the opportunity to a “Booked” stage.
- Reminders: wait steps before the appointment time, usually a day before and an hour before. Texts work better than emails for the last reminder (GoHighLevel SMS).
- Status changes: use the Appointment Status trigger to react when an appointment is cancelled, marked as a no-show or showed. A no-show gets a “sorry we missed you” text with the booking link; a cancellation gets a rebooking offer.
- After the appointment: showed leads move forward in the pipeline; for most service businesses that’s also the moment for a review request.
Send reminders from one system only. Ultra Cryo’s patients were getting duplicate reminders from Thryv and GoHighLevel. Once the two were integrated so one system controlled reminders, the duplicates stopped. If your practice software or job software already sends reminders, decide which one owns them.
Someone has to mark appointments as showed or no-show. If nobody does, the status workflows never run. Make it part of the front desk’s end-of-day routine, or update it automatically from the meeting tool where that’s possible.
Can you take payment when someone books?
Yes. Once a payment gateway such as Stripe is connected to the sub-account, turn on Accept Payments in the calendar’s Forms & Payments settings. You can charge the full price at booking, take a deposit, or only save the card to charge later (checked on help.gohighlevel.com). If several gateways are connected, only the default one collects calendar payments (checked on help.gohighlevel.com).
Deposits cut no-shows for high-value appointments. A free discovery call shouldn’t ask for a card; a two-hour treatment slot often should.
How do you set up calendars for a team?
For a team, each user needs a GoHighLevel user account, their own calendar connection and their own working hours. Then assign them to the round robin or collective calendars they belong on.
- Set hours per user. A part-time rep on a calendar with the business’s full hours gets bookings when they’re off.
- Decide who can see what. User permissions control whether a rep sees only their own appointments or everyone’s.
- Notify the right person. Send the assigned user an internal notification for each booking, with the lead’s answers from the booking form.
- Keep the list clean. Name every calendar clearly and archive the ones you don’t use. Ultra Cryo now marks every calendar and workflow as ACTIVE or ARCHIVED, which stops workflows from being attached to dead calendars.
Common GoHighLevel calendar mistakes
- No working hours on the user. The calendar has hours, but the user assigned to it doesn’t, so no slots show.
- Several workflows on the same calendar. Each sends its own confirmation, and leads get two or three texts per booking.
- Two-way sync turned on without a reason. Personal events become contacts and start sequences.
- One calendar for every service. A 15-minute call and a 90-minute treatment can’t share a duration. Use separate calendars or the Services calendar.
- No follow-up for people who clicked but didn’t book. They showed intent and then got nothing.
- Old test calendars still live. Leads find an old link and book into a calendar nobody watches.
- Statuses never updated. Without showed and no-show statuses, the no-show and review workflows never fire.
How we set up calendars on client builds
There’s no single default, because the right setup depends on what kind of booking it is. Most businesses fall into one of three:
- Service bookings. A customer books a treatment or a job: a facial, a cleaning, an inspection. Each service gets its own duration, and slots follow when the room, the equipment or the person is free.
- One-on-one consultations. A prospect books a call or a first visit with one person. The calendar belongs to that person, with enough notice and buffers that they can prepare.
- Round robin for a sales team. Leads are shared across reps, so the calendar assigns each booking to whoever is free, and nobody has to hand leads out by hand.
A few things stay the same on almost every build:
- One-way Google sync as the default, with personal calendars set as conflict calendars.
- Two reminders: one 24 hours before, and one an hour or two before the appointment.
- Deposits where they pay for themselves. For a med spa with lower-priced appointments, we sometimes take a deposit at booking, because a no-show costs the slot and the deposit gives people a reason to turn up.
When should you get help with your calendar setup?
Get help when the calendar is connected to everything else and something keeps going wrong: double bookings you can’t trace, leads getting duplicate reminders, round robin sending bookings to the wrong rep, or a booking page that shows no times. Those are usually workflow and integration problems, not calendar settings.
Calendars, booking forms, reminders and no-show flows are part of every GoHighLevel setup we build, mapped to how your business actually books. If the account already works and only the calendar flows need fixing, GoHighLevel automation covers it. Prices are on the pricing page.
Sources
- HighLevel, “Setting Up Linked Calendars & Conflict Calendars”: https://help.gohighlevel.com/support/solutions/articles/155000002374
- HighLevel, “Calendar View - Services”: https://help.gohighlevel.com/support/solutions/articles/155000006096
- HighLevel, “Adjusting Availability Settings for Individual Calendars”: https://help.gohighlevel.com/support/solutions/articles/48001155718-understanding-calendar-availability-settings
- HighLevel, “Count only available days in booking windows”: https://help.gohighlevel.com/support/solutions/articles/155000008568-count-only-available-days-in-booking-windows
- HighLevel, “Appointment Distribution Logic for Round Robin Calendars”: https://help.gohighlevel.com/support/solutions/articles/155000001484
- HighLevel, “Collecting Payments in Calendars”: https://help.gohighlevel.com/support/solutions/articles/155000000875
- HighLevel, “Payments Tab in Calendars”: https://help.gohighlevel.com/support/solutions/articles/155000006098-payments-tab-in-calendars
- The GoHighLevel Experts, Ultra Cryo case study (audit report, August 2025)
- The GoHighLevel Experts, speed to lead (our team’s data from 186,400 leads)
FAQ
Which GoHighLevel calendar type should I use?
Use a personal booking calendar when one person takes the appointments, round robin when a team shares the leads, collective when several people must all attend, and class booking when one host meets several people in the same slot. Service-based businesses with a menu of treatments can use the Services calendar.
Does GoHighLevel sync with Google Calendar?
Yes. Each user connects their own Google or Outlook account. Bookings made in GoHighLevel are written to the linked calendar, and busy events from linked and conflict calendars block those times in GoHighLevel. Two-way sync also turns events created in Google into GoHighLevel appointments.
Why is my GoHighLevel calendar showing no available times?
Usually one of five settings: the user has no working hours set, the minimum scheduling notice is longer than the date range, a conflict calendar is full of busy events, buffers leave no room, or the user isn't assigned to the calendar.
Can GoHighLevel take a payment when someone books?
Yes. Turn on Accept Payments in the calendar's settings once a payment gateway such as Stripe is connected. You can charge the full price, take a deposit, or only save the card at booking.
How do I send appointment reminders in GoHighLevel?
Build them in a workflow triggered by the appointment, with wait steps before the appointment time, and send them from one place only. If another system such as your practice software also sends reminders, switch one of them off or customers get duplicates.