I can’t speak for epoch or specifically the ins and outs of it. My guess is that it has no knowledge of daylight savings. I spent some time a couple weeks ago converting a date to epoch to do some further calculations, but ran into some unrelated roadblocks because I was trying to convert year/month/day to epoch, when I really should have been doing year/ordinal day. The entire formula I was attemtping to come up with was just too involved, so I went a simpler route.
I’d say that if you have a date and time set for April 2nd @ 11am, any device regardless of timezone or daylight savings will see that date and time as April 2nd 11am and any filtering or conditions comparing that date/time to today or now, will be based on the date/time of the local user’s device. i think trying to convert to epoch would unnecessarily complicate things.
Not sure how exactly your are handling your booking slots in your app, but I think you could break everything down into one simple glide table. First you would have to figure out the maximum timeslots in one day. Then you can dynamically figure the length of each timeslot based on prior inputs. You could have a user first select a server provider, then select a day, then based on those inputs you can figure out how to display the booking slots for only that selected day.
This is much like what I’m doing in my calendar app. I have the MonthLayout table, which has only 42 rows and will never have any more or any less. It will default to the current month, but a user can navigate to any month in any year and it will dynamically figure out how to build out those 42 rows based on the selected month/year. Then I have each date relating to an events (in your case bookings) sheet to see what matches for that day and marks on the calendar that there are events on that day. That one table of 42 rows can dynamically display an infinite number months. The MonthLayout table is really just a placeholder template that dynamically changes based on user input.
I’m thinking you could do something similar. Just picking a random number, you could have a table with 30 rows. In that table you could have a couple of columns that would accept user input, such as service provider and date. The would cross reference to a service provider sheet to figure out what their availability is and then through various math, you could dynamically figure out each of those timeslots for that day and show that to the user. Once they select a timeslot and book it, then you can have additional relations to the bookings sheet and use that to determine if you want to show or hide that timeslot.
All of this could be done it a glide table without any google sheets.