Fix GoHighLevel Calendar Showing No Available Times: Step-by-Step Guide

by Fahim

You load up your booking page or test a funnel widget, and GoHighLevel gives you a completely blank date picker or the dreaded “No Available Times” error. I’ve wasted hours chasing this down across dozens of client setups. In nearly every case, it comes down to six specific settings blocking slot generation.

I hit this exact wall last week launching a sub-account for a client. The calendar rendered perfectly in preview mode, but live visitors couldn’t select a single date. Turns out, a single unchecked toggle in the user’s staff profile zeroed out the entire week. Let’s walk through the checklist and get your booking slots back online.

Close-up of a screen displaying a digital booking calendar interface during troubleshooting
Close-up of a screen displaying a digital booking calendar interface during troubleshooting

The 5-Minute Calendar Triage Checklist

Before you dig into complex round-robin logic or re-authenticate integrations, run through these five quick checks. About 90% of blank calendar issues stem from one of these:

  • User Assignment: Nobody is assigned to the calendar, or the assigned user has zero working hours configured.
  • External Sync Conflicts: A connected Google or Outlook calendar has an all-day event set to “Busy” blocking the entire day.
  • Minimum Scheduling Notice: The notice window is set too high, hiding today’s and tomorrow’s slots.
  • Date Range Limits: The “Look Busy” slider is cranked to 100%, or the booking date range is set to 0 days.
  • Timezone Mismatches: Sub-account timezones and user profile timezones disagree, pushing valid working hours outside the calendar’s display window.

If you’re embedding this calendar inside a funnel, make sure your domain and DNS records are actually resolving first. Check our guide on how to connect a custom domain to GoHighLevel funnels if your pages aren’t loading properly.

Fix 1: Configure Assigned User Working Hours

In GoHighLevel, availability is calculated by the intersection of your calendar hours and your user hours. If the calendar says you’re open 9:00 AM to 5:00 PM, but the staff member assigned has no hours checked in their profile, HighLevel calculates availability as zero.

  1. Go to Settings > My Staff in your sub-account.
  2. Click Edit on the user assigned to the calendar.
  3. Expand the User Availability accordion.
  4. Make sure Monday through Friday (or your target days) are checked with valid start and end times.
  5. Double-check that the User Timezone matches your local timezone.

If you’re using an unassigned Simple Calendar instead, go to Settings > Calendars, hit the three dots next to your calendar, click Edit, and verify the hours directly under the Availability tab. For team calendars, every single user in the round-robin pool must have active hours configured.

Fix 2: Clear Google and Outlook Calendar Sync Conflicts

When you connect an external Google or Microsoft Outlook account, HighLevel scans those calendars for conflicts. Here’s the trap: if you have an all-day event on your external calendar—like a holiday, someone’s birthday, or a generic reminder—and its status is set to Busy, HighLevel blocks out all 24 hours of that day.

To inspect your connected calendar sync:

  1. Head to Settings > Profile (or My Staff > Edit User if checking a teammate).
  2. Scroll down to Calendar Integration.
  3. Check the Check for Conflicts dropdown. Make sure you only select your primary work calendar, not secondary holiday feeds or family calendars.
  4. Open Google Calendar or Outlook, find any all-day events, and change their availability status from Busy to Free.

Check the official HighLevel calendar setup documentation for how two-way sync handles multi-calendar conflict rules.

Fix 3: Adjust Notice Windows and Date Range Restrictions

HighLevel gives you granular control over lead times and advance bookings. Set them too tight, and your calendar instantly wipes out all visible slots.

Go to Settings > Calendars, edit your calendar, open the Availability tab, and inspect these three settings:

  • Minimum Scheduling Notice: If set to 48 hours, visitors will never see slots for today or tomorrow. If you want same-day or next-day bookings, drop this to 2 hours or 0 hours.
  • Date Range: If set to Over a date range with an expired date, or Within X days set to 1, the widget will show zero openings the moment today’s slots pass. Change this to Within 14 Days or Within 30 Days.
  • Look Busy: If you turned on “Look Busy” and set the slider to 100%, HighLevel hides every single open slot to simulate a packed schedule. Drop this slider to 0% while debugging.

Fix 4: Resolve Account and User Timezone Mismatches

Timezone mismatches create strange edge cases where slots disappear entirely. If your sub-account timezone is set to UTC+0 but your user profile is set to America/Los_Angeles (UTC-8), you’re dealing with an 8-hour shift. An available window of 9:00 AM to 12:00 PM UTC converts to 1:00 AM to 4:00 AM Pacific—outside your widget’s display range.

Check these three locations to make sure they align:

  1. Sub-account timezone: Settings > Business Profile > General > Time Zone.
  2. User timezone: Settings > My Staff > Edit User > User Availability.
  3. Calendar default timezone: Settings > Calendars > Edit > Forms & Payment > Timezone.

If you’re managing multiple sub-accounts through webhooks or the API, you can verify your sub-account details with our guide on how to find your sub-account Location ID in GoHighLevel.

Fix 5: Audit Round Robin and Team Priority Settings

With Round Robin or Collective calendars, slot availability depends on team assignment rules. If team members are paused, inactive, or assigned a 0% weight, the frontend widget won’t render any time slots.

  1. Edit your Round Robin calendar and navigate to the Team Members tab.
  2. Verify all assigned users are toggled to Active.
  3. Check that the distribution percentage or priority weight isn’t set to zero for all team members.
  4. If you’re using Optimize for Availability, ensure at least one team member with valid working hours is assigned to that calendar.

If you have downstream automation triggers wired up to these appointments, make sure your workflows are listening properly. If you run into missing data down the line, take a look at how to fix GoHighLevel webhooks not firing.

Fix 6: Check Embed Code and Custom Script Collisions

If your calendar works via the direct HighLevel preview link (https://api.leadconnectorhq.com/widget/booking/...) but fails when embedded on an external WordPress site or custom landing page, the problem is client-side.

Common culprits include container CSS hiding overflowing content, or ad blockers and privacy extensions blocking the widget script from executing. Here is the standard, clean HighLevel iframe embed snippet:




Swap out YOUR_CALENDAR_ID_HERE with your actual calendar ID. If your site enforces a strict Content Security Policy (CSP), make sure to whitelist *.leadconnectorhq.com and *.msgsndr.com in your HTTP response headers so the iframe can load its assets.

Frequently Asked Questions

Why does my calendar show slots in preview mode but not on my live funnel?

The internal preview sometimes bypasses external calendar conflict checks, while the live funnel strictly enforces user-level availability and synced calendar blocks. Clear your cache, confirm your sub-account and user timezones match, and verify the assigned staff member doesn’t have an active “Busy” event on their synced Google or Outlook calendar.

Can an all-day event in Google Calendar block HighLevel bookings?

Yes. Google Calendar defaults manual all-day events to “Busy”. When HighLevel syncs, it flags that entire 24-hour window as occupied and removes all slots for that day. Change the event status in Google Calendar to “Free” to restore availability.

How do I allow same-day appointments in GoHighLevel?

Go to Settings > Calendars, edit your calendar, open the Availability tab, and set Minimum Scheduling Notice to 0 hours or 1 hour. If left at 24 hours, users can never book slots on the current day.

What is the difference between Slot Duration and Slot Interval?

Slot Duration is the actual meeting length (e.g., 30 minutes). Slot Interval is how frequently start times appear on the grid (e.g., every 15 minutes). If your Slot Duration is 60 minutes but your open window is only 45 minutes long, HighLevel won’t render any slots.

If you’re still seeing slot calculation issues after checking these settings, read through our deep dive on troubleshooting HighLevel calendar availability slots.

Official resources

all_in_one_marketing_tool