Variable Timezones for Scheduling SMS/Email Messages

Okay so I know timezones are a common issue in Bubble and that there are several fixes posted already BUT I believe we have a different use-case here that I have not yet found a solution for!

We have a calendly-like booking system. The user books an appointment and uses a dropdown field to select the CUSTOMER’s timezone (The user is not the customer in this case. The user may have the same timezone as the customer but not guaranteed).

We have automated emails/SMS appointment reminders going out to the customer “x” hours before the appointment.

The issue is telling bubble the time/timezone to use when scheduling those appointment reminders.

In the below screenshot you can see where are using “Customer State Date and Time” and then a value for the amount of hours/minutes before the start date and time to send the SMS. This field requires a date-type entry and we cannot add text (Unix string) or Timezone code/ID! So ultimately we’re at the mercy of Bubble…

Here we can see the start date and time is being saved accurately in the database but it’s missing a timezone!

Now let’s say the user books in an appointment for a customer who just happens to be in the SAME timezones. No issues! Because Bubble is automatically taking the user’s timezone and using it to schedule the messages. The issue is when the customer is not in the same timezone as the user’s browser.

We are defining and saving the customer’s timezone in the DB but Bubble won’t let us utilize that. We have several choices: Current Users Timezone, Static Timezone, Dynamic etc but have had no luck with anything. Also tried using Unix timestamp but getting a formatting error…

There MUST be a simple fix here that we aren’t seeing…

I have this exact same problem! I’ve tried to use ‘Dynamic Time Zone’ by pulling text from the database but no luck. Does anyone know how to make this work?


1 Like

To be fair they are a common issue in any computer system :slight_smile:

Bubble stores all times in UTC and then adjusts when they are displayed. It does not store the timezone.

A scrappy method it to workout what the timezone offset is, and then adjust to you “-5” but that gets annoying if DST happens between the two.

A better alternative is to set the input (or even the whole page) to have the timezone of the CUSTOMERS timezone (i.e. override the browser timezone).


This is in the Version options…you may need to enable it.

So when you enter the date of the meeting you set the Time zone, so 10am means 10am in the customer time zone, not your timezone. So then -5 should be right.