GoHighLevel calendar setup: round robin, service and class calendars
Heads up: the trial buttons on this page use my affiliate link. If you sign up through it I get a commission. It doesn't cost you more.
To set up a GHL calendar, go to Calendars > Calendar Settings > + New Calendar, pick the type (Personal Booking for one person, Round Robin for a team, Class Booking for group sessions, Service Calendar for a menu of services), set the hours, duration and buffers, then copy the link or embed code from the Share button. For it to sync with a client's Google or Outlook calendar, add the client as a user and have them click Connect from their own login, because HighLevel won't let you connect someone else's Google account for them.
I think the calendar is super underrated. It's how people book with me, it syncs to my Google Calendar, and it sends the confirmations and reminders so I don't have to chase anyone. I stopped paying for Calendly because of it. Below is which calendar to pick, the full setup with menu paths, the client calendar connection, reminders and showed or no-show automations, deposits, embedding and AI booking, all checked against HighLevel's help docs and changelog on Nov 5, 2026.
The video version
Short version
- 01Pick the calendar type first. Personal Booking is one person, Round Robin shares bookings across a team, Collective needs several people at once, Class Booking is one host with many seats, Service Calendar is a menu of services, Event has no host at all.
- 02Each person connects their own Google or Outlook calendar from their own login. Add the client as a user in Settings > My Staff, they log in and click Connect, and you never touch their password. Login As can't do it.
- 03Set availability, slot interval, pre and post buffers, minimum scheduling notice and date range in the calendar's Availability section. Using both buffers can quietly remove slots.
- 04Turn on reminders in the calendar's Notifications tab or with a workflow, never both. Then use the Appointment Status trigger for Showed and No-show follow-ups.
- 05Deposits: Forms & Payments > Accept Payments > Accept Partial Payment. The balance doesn't charge itself on regular calendars, someone collects it from the appointment's Payments tab.
Which GHL calendar type should you pick?
The type decides who gets the booking and how availability is worked out, so pick it first. Use the table, then read the round robin and service sections below if those are yours.
If you can't decide, HighLevel's Calendar Setup Assistant (they also call it Calendar AI, rolled out from Aug 20, 2026) asks what you need in plain English, picks the type, builds the calendar and lets you book a test. It's showing for eligible accounts during the rollout, so you may not see it yet.
| Type | Use it for | Good to know |
|---|---|---|
| Personal Booking | One person's 1:1 appointments: consults, sales calls, estimates | Same features as Round Robin, limited to one team member |
| Round Robin | A team where any available person can take the booking: sales reps, mechanics, cleaners | Optimize for availability or for equal distribution |
| Collective Booking | Meetings that need 2 or more staff at the same time | Only shows times when everyone is free, up to 100 members |
| Class Booking | One host, many attendees: classes, workshops, webinars | Set seats per class; the link opens on the current month |
| Service Calendar | Salons, spas, clinics with a menu of services | Availability follows staff schedules, fixed 15-minute slot interval, no Zoom or Meet |
| Event Calendar | Public events with no host | No users, static meeting link only, Google sync only through External Sync |
| Group (container) | One link that lists several calendars | Can't hold Class or Collective calendars |
From HighLevel's help docs for each calendar type, read Nov 5, 2026.
How to connect a client's Google or Outlook calendar without their password
In HighLevel, calendar connections belong to the user, not the account. HighLevel's own help doc says you cannot use Login As to connect someone's Google account, because it has to be done by the person who owns it. So you don't ask for passwords. You make them a user and they click one button.
1. In the client's sub-account, go to Settings > My Staff > Add User and add the owner (and each staff member) with their work email. Give them a user role with calendar access; Calendar permissions can be limited to viewing and managing their own assigned appointments.
2. They get an email invite, set their own HighLevel password and log in.
3. They go to Calendars > Calendar Settings > Connections > + Add New (or Settings > My Profile > Calendar Settings), click Connect next to Google or Outlook and sign in with their own account. Tell them to tick every permission Google asks for, including full calendar access. If they skip the write permission, sync breaks and HighLevel shows a missing-permissions warning under Settings > Integrations > Google with a Reconnect button.
4. They set a Linked Calendar (the one bookings write into, and they need writer access to it) and add any personal calendars as Conflict Calendars so dentist visits and school runs block time without showing details.
5. Back in your login, add that user to the calendar as a team member. Bookings now land in their Google or Outlook calendar and their busy times block slots in HighLevel.
If you Login As them afterwards, their Google events show only as Busy. HighLevel locked that down on Jan 19, 2026, so you can manage their calendar without seeing their private events.
Outlook: Microsoft 365, Exchange Online, Outlook.com and Hotmail work, on-premises Exchange doesn't. If a company's Microsoft account shows "Need admin approval", their IT admin has to approve HighLevel in the Microsoft Entra admin center first. Event Calendars only sync with Google.
One-way or two-way sync?
The default sync is safe for most clients: HighLevel bookings go to Google, and Google events come back as blocked time. Nothing else happens.
Two-way sync turns Google events into real HighLevel appointments, creates contacts for the guests and fires workflows for them. Turn it on carelessly and the owner's "Dinner with Mom" guest gets your appointment reminder sequence lol. Use it only if the business books appointments in Google directly and wants those in the CRM.
Only enable write-back on one calendar per person, or you'll get duplicate events. Conflict calendars only block time for events marked Busy, so Free events stay bookable.
Calendar not syncing? Check the red Reconnect banner under Calendar Settings > Connections first. Since Mar 30, 2026, HighLevel pushes any appointments it missed while disconnected once you reconnect.
Round robin: how GoHighLevel splits bookings across a team
Round robin is for when the customer doesn't care who shows up. In my mechanic example, a job comes in and any mechanic can take it, so the calendar hands it to whoever is free. You pick one of two rules under the team member settings.
Optimize for Availability gives the booking to whoever is free at that time, and if several are free, the one you've given the highest priority. Use it when speed counts more than fairness, like support or urgent jobs.
Optimize for Equal Distribution keeps the count even. Since Apr 15, 2026 it works month by month: the least-booked person that month gets the next booking, and nobody can get more than 3 appointments ahead of anyone else. Go past that and their slots are hidden until the others catch up. It only applies when the booker picks Any Available. Use it for sales teams who would fight over leads otherwise.
Other settings worth knowing: Allow staff selection lets the customer pick a person (it needs the Neo widget style). Always Book with Assigned User sends a returning contact to their own rep, which needs the form placed first in the booking flow. For reschedules, choose Reassign through Round Robin or Keep Same Appointment Owner.
Watch the buffers. HighLevel says a person's buffers on their other calendars cut into their availability here too, which can make distribution look uneven. Calendars and staff live inside each sub-account, so a business with two locations usually runs two sub-accounts with their own calendars.
Service calendars and class calendars
Service calendars are for salons, spas, groomers and clinics. You create a group (say HAIR), add service calendars to it (Haircut, Hair Spa, Coloring), then build a Service Menu so customers see everything on one link and can book several services in one go. Availability comes from the assigned staff's schedules, the slot interval is fixed at 15 minutes and you can tie a room or piece of equipment to a service so it gets booked too. They don't support Zoom or Google Meet, because they're meant for in-person work.
HighLevel has also been building a newer Services module (Services v2) under Calendars > Services with its own booking pages. Since Oct 29, 2026, clients can book, reschedule and cancel those services inside the Client Portal with their details pre-filled, once you tick Allow booking from client portal on the booking page.
Class Booking is one host and many seats: a yoga class, a workshop, a free training. Set Seats per class and the booking page shows what's left. One catch from HighLevel's docs: the link always opens on the current month, so if the class is next month, tell people to click forward or they'll think it's full.
In my older video I used a calendar group for a barber: one link with haircut plus shave, beard, fade and so on, each its own calendar with its own length and staff.
Availability, buffers, minimum notice and date range
All of these are in the calendar's Availability section. The defaults are fine for a test and wrong for most real businesses, so go through them with the owner.
If slots look open on the calendar but customers can't book them, it's nearly always buffers or minimum notice. Since Sep 22, 2026 you can ask Calendar AI something like "why isn't 5 PM on Friday available on my Sales Call calendar?" and it tells you what's blocking it. The Troubleshoot Calendar option in the Share menu runs HighLevel's diagnostics the old way.
Since Oct 29, 2026 the calendar view has its own settings panel (the three dots next to Manage view): your time zone, a 15, 30 or 60 minute grid, greyed-out non-working hours, hidden empty rows, visible buffer time, staff colors for admins and export of the current view to PDF or CSV. It's display only and doesn't change what customers can book.
| Setting | What it does | Starting point |
|---|---|---|
| Slot interval | How often a start time is offered (every 15, 30, 60 minutes) | Match the meeting length so the day doesn't fill with odd start times |
| Pre and post buffer | Blocked time before or after each appointment | Use one, usually post. Both together can remove open-looking slots |
| Minimum scheduling notice | Stops bookings too close to now | A few hours for most local businesses so nobody books in 10 minutes |
| Date range | How far ahead people can book | Since Aug 27, 2026 it can count only working days |
| Appointments per slot | How many people can take the same time | 1 for a 1:1 calendar |
| Appointments per day | Daily cap for this calendar | Only counts this calendar, not the person's others |
| Date-specific hours | Overrides for holidays or one-off days | Several dates can be picked at once since Feb 2026 |
From HighLevel's availability, buffers and changelog entries, read Nov 5, 2026.
Confirmations and reminders that cut no-shows
You have two places to send them, and you should pick one so customers don't get double texts.
The calendar's Notifications tab is quickest. It has six messages: booked (unconfirmed), booked (confirmed), cancellation, reschedule, reminder and follow-up, each by email, SMS, WhatsApp or in-app, to the contact, guests, the assigned user or extra numbers. Reminders and follow-ups can have several timings.
A workflow gives you more control: Automation > Workflows > Create Workflow > Recipe > Appointment Confirmation + Reminder, edit the messages, add the meeting link and publish. The whole workflow builder is covered in GoHighLevel workflows.
My timings: a confirmation right away, then a reminder 24 hours before, one an hour before and one about 30 minutes before. Put {{appointment.reschedule_link}} in the 24 hour reminder. Someone who can move their slot in one tap has an easy option besides just not turning up. SMS reminders are billed per segment, so keep them short.
Showed and no-show automations
Marking every appointment as Showed or No show is the part most businesses skip, and it's the part that makes the follow-ups work. Open Calendars > Appointments (or the appointment itself) and change the status. That also gives the owner a real show-up rate to look at, which is valuable information for them.
Then build two workflows on the Appointment Status trigger, filtered to that calendar.
Showed: wait a couple of hours, send a thank-you, then a review request. Move the opportunity to the next stage in the pipeline.
No-show: send a text within the hour, something like "Hey, sorry we missed you today. Want to grab another time? {{calendar link}}", wait a day, then follow up again and alert the owner. The money is made in the follow-ups. The same rebook logic used for missed calls is in Missed call text back.
Two gotchas. First, HighLevel's Cancellation notification also goes out when you mark someone No show, so if your no-show workflow sends its own message, edit or turn off the cancellation notification for contacts or they'll get two. Second, since Mar 6, 2026 marking Showed or No show no longer pushes an update to the customer's Google or Outlook calendar, so they won't get a confusing "event updated" email.
Reschedule and cancel links
Turn them on per calendar under Notifications and Additional Options > Cancellation and Reschedule Policy. Set a cut-off, like 24 hours before, and after that the links stop working and the customer has to call. Leave it blank and the links never expire.
The links go into the calendar invite automatically. For texts and emails, use {{appointment.reschedule_link}} and {{appointment.cancellation_link}}. They only fill in when the workflow starts from an appointment trigger such as Appointment Status or Customer Booked Appointment. If a link shows up blank, that's why.
Since Aug 11, 2026 staff can also open an appointment, click Appointment Actions > Generate Reschedule Link and send it by hand, which is handy when a customer calls in.
On a round robin calendar, decide whether a reschedule keeps the same person or goes back into the rotation.
Taking payment or a deposit at booking
A deposit is the strongest no-show fix there is, because people show up for things they've paid for. Connect a gateway first (Payments > Integrations), then on the calendar open Forms & Payments, toggle Accept Payments, enter the price, tick Accept Partial Payment and choose a flat amount or a percentage. It works on every calendar type.
On regular calendars the balance does not charge itself. It sits as an open order and someone collects it from the appointment: open it, go to the Payments tab and click Collect Payment to charge a card, apply a gift card or record cash. Rentals got automatic balance charging on Oct 28, 2026 (a 1 to 99% deposit with the rest charged on a due date), but that's only for Rentals bookings.
Other options: Collect Card on File saves the card without charging, which is good for a no-show fee policy. Coupon codes work on calendars. Since Apr 2, 2026 Stripe users can offer Klarna and Affirm at booking by switching them on under Payments > Settings > Integrations > Manage Stripe.
Put the calendar on the client's website
Click Share on the calendar and copy the Embed Code, then paste it into a custom code block on the site. In a HighLevel funnel or website, use the calendar element instead. On WordPress, the LeadConnector plugin has a calendar block. The steps for WordPress, Wix, Squarespace and Lovable, and what breaks on each, are in Connect GHL to any website.
If the business runs several calendars, embed the group or service menu link so customers pick from one page. A one-time link from the Share menu is good for a VIP or a quote visit you don't want reused.
Let AI book into the calendar
Once the calendar works, Conversation AI can fill it. Give the bot an Appointment Booking goal, connect this calendar, and it replies to texts, DMs and web chat, asks your questions and books a real open slot. It can also cancel and reschedule existing appointments, even ones on a different calendar. My full build is in Build an AI appointment setter.
One update from Oct 27, 2026 (in Labs): a prompt-based agent in Auto-Pilot now works out the contact's time zone from their city or address before it offers times, asks if it can't tell and saves it on the contact. HighLevel's example is a homeowner in Denver who used to see New York times, pick the wrong hour and miss the visit. If the client's customers are spread across time zones, turn that on.
Don't put available times in the bot's prompt. It reads them from the calendar, which is one more reason to get the availability settings right.
How to sell it: "fewer no-shows"
Fewer no-shows is one of my Level 1 offers, the ones a business owner gets without any explaining, because they know exactly how many people didn't turn up last week. Look for a no-show fee on their website or booking page, or a calendar that only sends one email confirmation. That's your opening.
The build is everything on this page: reminders by text, a reschedule link, a deposit at booking, and the Showed and No-show workflows that rebook people. You could build this for a local business and charge a monthly fee you set to run it and report the show-up rate. Then AI booking and missed call text back are the natural next things to add. How the offers stack up is in What to sell with GoHighLevel.
From my own account
In my own account the calendar is how people book a call with me. I share the link, they see my availability, fill in their info and book, and it syncs straight to my Google Calendar. It sends the confirmation email and SMS, then reminders before the call (I've used 24 hours, an hour and 30 minutes before) so no-shows stay as low as possible. You can also charge before they book, which works well for paid hourly consults. I didn't want to pay for Calendly on top of everything else just so people could book time with me, and I didn't have to.
How to set up a GHL calendar, step by step
- 01
Add the staff first
Go to Settings > My Staff > Add User and add everyone who will take bookings, including the owner and yourself if you're testing. Calendars are built on users, so a round robin or service calendar can only pick people who already exist here. Set each person's working hours and time zone on their staff profile.
- 02
Create the calendar
Calendars > Calendar Settings > + New Calendar (HighLevel also puts this under Settings > Calendars). Pick the type from the table below. Personal Booking is the one for a single person. Event Calendar and Service Calendar sit in the extra types, and Service Calendar only shows up after an agency admin turns on Service Menu under Calendar Settings > Preferences > In-App Preferences.
- 03
Fill in the basics
Give it a name the customer will understand, a short description, the team members, the custom URL and the meeting length. Since Aug 25, 2026 one calendar can offer up to 3 lengths (say 15, 30 and 60 minutes) and the booker picks one. Set the meeting location: phone, address, a custom value, or Zoom, Google Meet or Teams if they're connected.
- 04
Set availability and booking rules
In Availability, set weekly hours and date-specific hours for holidays. Then slot interval, pre and post buffer, minimum scheduling notice, date range and the per-slot and per-day limits. Details on each are in the availability section below.
- 05
Choose the booking form
Use the default form (name, email, phone) or build one in Sites > Forms > Builder and select it on the calendar. Ask what the business needs before the visit: the car make and model for a mechanic, the treatment for a med spa, a photo of the job for a contractor.
- 06
Turn on notifications and the cancel and reschedule policy
Open the calendar's Notifications tab and set the confirmation, reminder and follow-up messages by email, SMS or WhatsApp. Under Notifications and Additional Options, switch on Allow Cancellation of Meeting and Allow Rescheduling of Meeting and set how close to the appointment those links stop working.
- 07
Add payment or a deposit if the business wants one
With Stripe, NMI or Authorize.net connected in Payments > Integrations, open Forms & Payments on the calendar, toggle Accept Payments, set the amount, and tick Accept Partial Payment for a deposit.
- 08
Connect each person's Google or Outlook calendar
Each user does this from their own login: Calendars > Calendar Settings > Connections > + Add New, connect Google or Outlook, accept every permission, then pick the Linked Calendar and any Conflict Calendars. The client version of this is below.
- 09
Share it and book a test
Click Share in the calendar's header to copy the link, make a one-time link, grab the embed code or preview it. Book a test appointment from a private window and check the confirmation arrives, the booking lands in the right person's Google Calendar and any workflow fires.
30 days through my link (normally 14). How the trial works
Not ready for a trial?
Get the weekly HighLevel updates in your inbox
Every week I go through HighLevel's changelog and send you what actually changes things for agencies, plus new guides when they go up. One email a week.
FAQ
Where is the calendar in GoHighLevel?
In the sub-account's left menu under Calendars. Create and edit calendars from Calendars > Calendar Settings (also Settings > Calendars), and see bookings in the calendar view and the Appointments list.
Can I connect a client's Google Calendar without their password?
Yes, and you have to. Add them as a user in Settings > My Staff, they log in themselves and click Connect under Calendar Settings > Connections. HighLevel doesn't allow connecting someone's Google account through Login As.
What's the difference between round robin and collective booking?
Round robin books one available person from the team. Collective books everyone selected together, so it only shows times when all of them are free.
Why are time slots missing on my GoHighLevel calendar?
Usually buffers, minimum scheduling notice, the date range, conflict calendar events marked Busy, or the staff member's own working hours. Ask Calendar AI why a specific slot isn't bookable, or run Troubleshoot Calendar.
Can GoHighLevel take a deposit when someone books?
Yes. In the calendar's Forms & Payments section, turn on Accept Payments and Accept Partial Payment, then set a flat or percentage deposit. On regular calendars you collect the balance from the appointment's Payments tab.
Does the GHL calendar replace Calendly?
For most businesses, yes. It has booking links, embeds, Google and Outlook sync, reminders, payments and round robin, and it's included in HighLevel. HighLevel also has a Calendly migration guide and a Calendly integration if a client wants to keep it for a while.
How do I send a reschedule link?
Turn on rescheduling in the calendar's Cancellation and Reschedule Policy, then use {{appointment.reschedule_link}} in a workflow that starts from an appointment trigger. Staff can also open an appointment and use Generate Reschedule Link.
Sources / last checked Nov 5, 2026
- HighLevel help docs: calendar setup and types. Getting Started - Setup A Booking Calendar (modified May 12, 2026), Round Robin Calendars: Setup, Distribution & Availability (Mar 16, 2026), Appointment Distribution Logic for Round Robin (Apr 14, 2026), How To Create Service Calendars (Sep 9, 2026), Calendar Setup Assistant (Aug 11, 2026), plus the Class, Collective, Event, Group and Personal Booking calendar articles, on help.gohighlevel.com, read Nov 5, 2026.
- HighLevel help docs: Google, Outlook and sync. Integrating Google with HighLevel Calendars (May 8, 2026), How to Re-Integrate Google Calendar for a User (May 8, 2026), Integrating Outlook with HighLevel Calendars (Aug 27, 2026), Setting Up Linked Calendars & Conflict Calendars (Jul 8, 2026), User Permissions in Calendars (May 8, 2026), read Nov 5, 2026.
- HighLevel help docs: availability, notifications and links. Pre and Post buffers (Aug 27, 2026), Adjusting Availability Settings for Individual Calendars, Calendar notifications (Oct 14, 2026), Cancellation & Reschedule Policy (Oct 1, 2026), Workflow Trigger - Appointment Status (Apr 6, 2026), Calendar View Settings (Nov 4, 2026), read Nov 5, 2026.
- HighLevel help docs: payments, portal and AI. Partial Payment: Collect Deposit Amount (Nov 4, 2026), Payments Tab in Calendars (Oct 1, 2026), Service Booking in the Client Portal (Oct 27, 2026), Cancel and Reschedule Appointments with Conversation AI (Oct 27, 2026), read Nov 5, 2026.
- HighLevel changelog, Calendar entries 2026. Login As privacy for third-party events (Jan 19), no external update emails for Showed and No Show (Mar 6), Klarna and Affirm (Apr 2), round robin equal distribution (Apr 15), buffers in Day and Week views (Jul 8), reschedule links from appointments (Aug 11), Calendar AI setup (Aug 20), multiple meeting durations (Aug 25), date range counting working days (Aug 27), Calendar AI slot troubleshooting (Sep 22), Conversation AI contact time zone booking (Oct 27), Rentals partial payments (Oct 28), Calendar view settings and export, and Client Portal service booking (Oct 29), on ideas.gohighlevel.com/changelog, read Nov 5, 2026.
- My videos. "GoHighLevel in Under 4 Minutes: Booking & Appointments" (Dec 2023) and "The Only Tool I Would Buy In 2026 To Sell AI" (Feb 2026), where I call the calendar super underrated and walk through my reminders and paid bookings.

Author
Hamza Baig / Hamza Automates
Founder, Hexona Systems
I run Hexona Systems on GoHighLevel. HighLevel gave it the SaaSpreneur Platinum award in 2024 and Diamond in 2025 and 2026, and I spoke at their LevelUp event in 2026. Everything on this hub is something I use myself or have shown on camera.
- Platinum SaaSpreneur
- 2024
- Diamond SaaSpreneur
- 2025, 2026
- LevelUp speaker
- 2026
- YouTube subscribers, Oct 2026
- 34,200