Help Needed: Booking System with Time Zones – Repeating Group Not Displaying for Some Users

Hi everyone,

I’m running into a baffling issue with a booking system I built on Bubble, and I’m hoping someone here might have insights or suggestions.

The Setup

Here’s some context about how the system is designed:

  1. Appointment Scheduling Logic
  • Each user selects their time zone during sign-up, which is stored in a data type called Time Zones containing their UTC offset.
  • When an appointment is booked:
    • The appointment time is saved in the professional’s local time and also saved in UTC for universal reference.
    • The logic ensures appointments display correctly for all parties regardless of time zone, and this has been tested thoroughly. It works as intended for everyone.
  1. Repeating Group for Time Slots
  • Another data type contains every 15-minute interval for each day (e.g., December 15th at 12:00 AM, 12:15 AM, etc., up to 11:45 PM).
  • This data is hardcoded and static, unaffected by user interactions.
  • Users select a date from a calendar, and the corresponding 15-minute intervals for that day are displayed in a repeating group for them to choose from as a starting time for their appointment.

The Problem

Here’s where things get weird:

  • About half of the users cannot see the repeating group displaying the 15-minute intervals.
  • After hours of looking for a pattern, I discovered that only the users outside of my time zone (where this app was built in) are having this problem. And not some of them, but all of them outside my time zone. Testing concluded that it is due to the users system time zone settings, regardless of time zone selected in the app.
  • I tested this by changing my computer’s system time zone:
    • When I set my system to my local time zone, everything works fine, regardless of the time zone selected in the app while registering.
    • When I set my system to any other time zone, again regardless of the time zone selected in the app while registering, the repeating group doesn’t display any data.

Important Notes

  • This issue arose only after merging changes to the live version.
  • The data type for time intervals is static and should not be influenced by user input or time zones.
  • Users’ system time zones seem to be causing this issue somehow, though I don’t have any workflows or logic that explicitly depend on system time zones.
  • Again, these time increments are static placeholder values, independent of user time zones, used only for selection before saving the appointment with the appropriate time zone adjustments.
  • All plugins used are for UI purposes (e.g., displaying data) and should not interfere with workflows.

What I’ve Tried

  • Reviewed and rebuilt workflows to ensure no dependencies on system time zones.
  • Manually tested data saving and retrieval logic—it works perfectly in the database.

Request for Help

I’m stumped. Has anyone experienced something similar or have ideas on what could be causing this?

  • Could Bubble’s server settings / built-in elements or logic (like “user’s current date/time” - which I use in some cases I am sure, but have never been problematic before) / caching introduce time zone-related behavior?
  • Is there any way or path for system time zones to influence how this static data is displayed in a repeating group?

If anyone needs more details (e.g., workflows, screenshots), I’m happy to provide them. This issue is blocking users from booking appointments and has become critical to resolve.

Thanks in advance for any help you can provide!

You should read this post Booking in different timezones - #8 by adamhholmes

1 Like

Hey @zach3 this seems quite baffling and it got my interest, as I will be working soon with booking situations.

Is there any chance I can have access to your editor to take a peek and add a new set of eyes?

Also, when you tried changing your timezone and could replicate the error, did you look into the debugger to what was being displayed on the repeating group? This kind of has the looks of Privacy Rules (although it doesn’t seem to make sense).

The idea that the time slots are static and saved in the database might be issue as you are essentially converting the professionals time zone to the bookers timezone and so the static time slots do not match up and some may be empty and therefore not displayed.

If you are interested in a plugin you can check mine out. Very easy, doesn’t require any specific data structure, compatible across timezones.

Sorry for the late response. Sadly due to us handling very sensitive data, I can not give you access to the editor. I believe that the issue is related to the link that was sent above and Bubble automatically assigning the date field that I had been storing in the time intervals (which were being stored as dates) in my specific timezone, so in the backend it was changing that time to UTC when I was treating it as UTC already. The link above mentions it and I have been working on a solution for a couple days I will share on here if it ends up working!

Thank you. This has been a big help!

1 Like

That’s alright and totally understandable. I will keep watching here.

Best of luck!

One thing to watch out for using UTC offset is that it is not always the same because of Daylight Savings Time. Since we are not close to a DST change don’t think this is the exact problem you are facing now but it is one that can pop up later.

For your exact issue about the Repeating Group looking different while in different time zones, my guess is that the Calendar Repeating Group is building dates in the User’s timezone and you are not expecting this.
So a December 15th date on their calendar is a different range of 24hours than someone who loads that calendar in a different time zone. Meaning the ‘Repeating Group date popup’s Selected Date’ might be X hours off from what you expect (the difference of two timezones off)

Example, let’s say you build the schedule out in Los Angeles, and then the user views it in New York City. The NYC user’s calendar would be shifted 3 hours ahead, so each ‘day’ they click will have a 3 hour difference from a ‘day’ in Los Angeles.

Not 100% sure that is the issue here but without diving into the app it’s my best guess.

PS - if you want to simplify everything and make sure this work, I created a Plugin exactly for this, TopCal, which ensures that bookings across time zones and DST works flawlessly. You can test it out here: TopCal Plugin

1 Like