Calendar problems in GoHighLevel show up in three ways: appointments don't appear in Google or Outlook, busy times in Google don't block GoHighLevel (so you get double bookings), or the booking widget shows no available times. Almost all of them come down to a few settings. This guide explains how the sync works and how to fix each problem.
1. How GoHighLevel calendar sync works
Each user connects their own Google or Outlook account in GoHighLevel. Two settings matter:
| Setting | What it does | If it's wrong |
|---|---|---|
| Linked calendar | Where GoHighLevel writes appointments booked for that user | Bookings don't appear in Google or Outlook, or land in the wrong calendar |
| Conflict calendars | Which Google or Outlook calendars GoHighLevel checks for busy times | Personal or other meetings don't block booking slots, causing double bookings |
You'll find both in the user's calendar connection settings (under Settings, Calendars or the user's profile, depending on your version of the interface). Connections belong to users, not the sub-account, which is the cause of many problems below.
2. Appointments don't show in Google or Outlook
- The appointment is assigned to a different user. It syncs to the assigned user's calendar, not yours. Check who the appointment belongs to.
- That user never connected a calendar, or connected it in a different sub-account.
- No linked calendar is selected, or it's set to a calendar you don't look at.
- The connection expired. Password changes, removed app access or security checks on the Google or Microsoft account break it. Disconnect and reconnect.
- The appointment was booked before the connection was made. Older appointments may not sync back.
3. Double bookings: Google busy times don't block GoHighLevel
- The calendar isn't added as a conflict calendar. Add every calendar that holds real commitments, including shared or work calendars.
- The Google event is marked "Free" instead of "Busy", so it doesn't block time. Change it to Busy.
- All-day events such as holidays often don't block time. Use a timed "busy" block or a date-specific override in GoHighLevel availability.
- Round-robin calendars: every team member in the rotation needs their own conflict calendars connected.
- Bookings from other tools (another scheduling app) that don't write to a conflict calendar won't block slots.
4. The booking widget shows no available times
- No team member assigned to the calendar, or the assigned user has no availability set.
- Availability or office hours are empty for those days.
- Minimum scheduling notice is too long (for example, 48 hours means nothing shows for the next two days).
- Date range only allows booking a short way ahead.
- Maximum bookings per day or per slot is already reached.
- Buffers and slot length leave no gaps that fit.
- A conflict calendar is full, for example a recurring all-day event marked Busy.
- Wrong calendar embedded: the widget on your website points to a different calendar or sub-account.
5. Times are wrong (time zones)
Four time zone settings have to agree:
- The sub-account's time zone (business profile).
- Each user's time zone.
- The calendar's own time zone setting, if set.
- The Google or Outlook calendar's time zone.
The booking widget shows times in the visitor's time zone, which is correct, but confirms and reminds in whatever the message template uses. Check reminder texts show the time zone, especially for clients in other states or countries. Time zone mistakes also make workflows fire at the wrong time (see workflow not working).
6. Outlook and Microsoft 365 problems
- "Need admin approval": many company Microsoft 365 accounts block third-party apps until an IT admin approves them. Ask your admin to approve the connection.
- Shared or delegated mailboxes may not appear as calendars to pick. Connect the account that owns the calendar.
- Reconnect after password or MFA changes.
7. Apple (iCloud) calendars
If your version of GoHighLevel doesn't offer an iCloud connection, the usual workaround is to keep your working calendar in Google or Outlook (Apple Calendar on your phone can show those too) and connect that to GoHighLevel.
8. Video links missing
If confirmations don't include a Zoom or Google Meet link, check the calendar's meeting location is set to that provider and the user has connected Zoom or Google with the right permissions. Reconnecting usually fixes missing links.
9. Changes made in Google don't update GoHighLevel
Moving or deleting an appointment directly in Google or Outlook doesn't always update the appointment in GoHighLevel the way you expect, and reminders may still go out. Reschedule and cancel in GoHighLevel (or let customers use their reschedule link), so workflows, reminders and pipeline stages stay correct.
A quick checklist
- Each user has connected their own Google or Outlook account.
- Linked calendar set; all real calendars added as conflict calendars.
- Calendar has team members assigned, with availability.
- Notice period, date range, buffers and daily limits make sense.
- Time zones match across the sub-account, users and calendars.
- Book a test appointment yourself and check it appears everywhere.
Calendar still misbehaving?
I'm Arslan Mumtaz, a software engineer who builds and fixes GoHighLevel calendars, round-robin booking and reminder sequences. Many calendar issues take an hour or two to fix, at $20/hr. See pricing or book a free call. Related: SMS not sending and 400 and 404 errors.
Frequently asked questions
Does GoHighLevel sync with Calendly?
Not natively. If you keep Calendly, send its bookings into GoHighLevel with Zapier or a webhook; most businesses move booking into GoHighLevel so reminders and workflows run from one place.
Can GoHighLevel calendars handle group classes or events?
Yes. Use a class or event-style calendar that lets several people book the same time slot, with a limit on seats.
Can clients choose which team member they book with?
Yes. Give each team member their own calendar, or use a round-robin calendar to spread bookings across the team automatically.