If your GoHighLevel reminders fire at the right time for some registrants but an hour early or late for others, the cause is almost always a time zone mismatch between AEvent and GoHighLevel. This guide explains why the drift happens and walks you through matching the two time zones so every wait-step and reminder fires at the correct moment for everyone.
The symptom
You may notice one or more of these:
Reminders arrive at the right time for registrants in one time zone (often your own), but an hour or more off for everyone else.
Every email or SMS in a countdown workflow seems to send at once, or bunched together, instead of spread across the schedule.
A "1 hour before" reminder lands two hours before, or after the event has already started, for people outside your zone.
Why the times drift
Two systems read the event time, and they read it in different time zones.
AEvent writes the event time in your AEvent account time zone. When someone registers, AEvent sends your webinar's start time into a GoHighLevel custom field, formatted in your account and webinar time zone. This is a single, fixed anchor: the same clock time for every contact.
GoHighLevel evaluates "Until a scheduled date/time" wait-steps in your GoHighLevel sub-account time zone. It applies that one sub-account zone to every contact in the workflow, not each contact's own zone.
If your AEvent account time zone and your GoHighLevel sub-account time zone are the same, everything lines up. If they differ, GoHighLevel reads AEvent's timestamp in the wrong zone and shifts every reminder by the gap between the two zones. Registrants who happen to live in the sub-account zone look correct, which is why the problem often shows up as "only people in one time zone get the right time."
A worked example of the drift
Suppose your webinar starts at 2:00 PM Pacific and your AEvent account time zone is Pacific.
AEvent sends 2:00 PM into the GoHighLevel field for every registrant.
Your GoHighLevel sub-account time zone is set to Mountain.
GoHighLevel reads that 2:00 PM as 2:00 PM Mountain, which is 1:00 PM Pacific in real time, so it treats the event as starting an hour earlier than it does.
Your 1 hour before reminder is measured from that misread time, so it goes out at 12:00 PM Pacific, an hour earlier than the 1:00 PM Pacific you intended.
Every wait-step in the workflow shifts by that same one-hour gap. The fix is to remove the gap by matching the two time zones.
The fix: match the two time zones
Find your AEvent account time zone. In AEvent, open Settings and note the account time zone. This is the zone AEvent uses to write the event time into GoHighLevel.
Set your GoHighLevel sub-account time zone to match. In GoHighLevel, open Settings then Business Profile for the sub-account and set its time zone to the same zone as your AEvent account. Save.
GoHighLevel: Settings > Business Profile > Time Zone. Set it to match your AEvent account time zone.
Confirm the AEvent field uses the account-zone value. In your AEvent campaign, open Integrations, click the GoHighLevel Settings gear, open Custom Fields (Personalization), and confirm the event-time field's Value is Webinar Start Time (the account and webinar time zone option), not Registrant Timezone. The account-zone value keeps one correct anchor for everyone.
Check your wait-steps. In GoHighLevel, open each Wait action that uses Until a scheduled date/time and confirm the offset is what you intend (for example, 1 hour Before). Once the zones match, these offsets are measured from the true event time.
Prefer matching zones over offsetting. You can compensate for the gap by shifting every wait-step by the difference between the two zones, but this is fragile: it breaks the first time either zone changes for daylight saving, and it has to be reapplied to every step. Matching the sub-account time zone to the account time zone is the reliable fix.
Contacts already mid-workflow
Changing the sub-account time zone does not re-run wait-steps that a contact has already passed. Contacts who are still waiting on an upcoming step will be re-evaluated against the corrected time, so their remaining reminders should land correctly. To be safe, spot-check a few contacts who registered before the change and confirm their next scheduled step reads the right time. If a contact is stuck on a step whose time has already passed, and your workflow offers an "if this date has already passed" option on the wait, set it deliberately so late registrants are not held indefinitely.
Verify with a test registration
Register a test contact through your AEvent form.
Open that contact in GoHighLevel and confirm the event-time field holds the correct start time in your matched zone.
Open the contact's workflow history and confirm the next wait-step is scheduled for the time you expect.
If you can, register a second test contact set to a different time zone and confirm their reminders are scheduled for the same real-world moment, not shifted.
You should see: both test contacts scheduled to receive each reminder at the same true clock time, regardless of the contact's own time zone.
Good to know: account zone vs registrant zone
AEvent can send the event time in two ways: Webinar Start Time (your account and webinar time zone, a single value for everyone) or a Registrant Timezone value (localized per contact). For GoHighLevel wait-step scheduling, use Webinar Start Time. GoHighLevel applies one sub-account time zone to every contact when it evaluates a wait-step, so a per-registrant localized value would be read in the wrong zone and reintroduce the drift. The registrant-time value is useful for display copy inside emails and SMS, where showing each person their local time is helpful, but it is not the value to anchor scheduling to.



