I can’t read code but I have a vague understanding of what it’s doing, and the calendar works fine for the client’s needs… except for one quirk:
I created a workflow so a user can click on a calendar day and add their “Availability” to this calendar. It creates a new Availability in the database where the date = the parent group’s date on the calendar cell.
When I’m using a computer on the west coast, as an example, the date recorded in the database is something like “12/11/2023 12:00 am” but when I use a computer on an east coast timezone it’s “12/11/2023 09:00 pm”
Time for each Date is irrelevant for these availabilities and doesn’t show on the calendar, so this wouldn’t be a problem, except users who are looking at this calendar can only see availabilities that were created and recorded in their own timezone, which creates problems for the client.
It’s not a privacy permissions issue, the client doesn’t want to use the date/time picker, and my repeating group data is very simple:
Timezones can be tough, but they are extensively talked about in the forums. Here is a post from just a few days ago where @cmarchan linked the arguably best resource for understanding bubble timezones.
Give it a read, as it really helps.
But I also mentioned a Bubble feature in the Settings that overrides all timezones when saving date/times to the database . You can use this feature at the workflow-level so that the dates which are specifically being used for the calendar don’t get affected by timezones (so they just represent dates rather than date/times)
Thanks for the link, I believe overriding the timezone in Bubble app settings might be the solution I was looking for. Going to have to run some tests though.
Update: This worked. I enabled the setting on the Bubble app to allow timezones to be controlled on the page level. I went to the page that had a calendar and set to static choice and picked an arbitrary timezone. Then I made sure the repeating group was displaying days “rounded down to the day, in that static timezone,” and also did the same for when the user created a new Availability. Not sure if all of those steps are necessary for this to work, but this is the combination that ended up working for me.