DevExpress / devextreme-reactive

Business React components for Bootstrap and Material-UI
https://devexpress.github.io/devextreme-reactive/
Other
2.08k stars 382 forks source link

Recurring event not handling daylight saving time #3646

Closed jakubjanousek closed 1 year ago

jakubjanousek commented 1 year ago

Is there an existing issue for this?

I'm using ...

React Scheduler

Current Behaviour

Let's say we have a recurring event that should happen daily and was created in Prague timezone on 21st March (GMT+1). on 26th March Prague is changed to GMT+2 (daylight saving time). Therefore when viewed from a timezone that is not observing daylight saving time (ie. Mumbai), the calendar should look as following (notice the last event is moved one hour prior)

Screenshot 2023-03-22 at 8 18 26

Unfortunately with @devexpress/dx-react-scheduler, this is not observed and the event is parsed every day at the same time as the first occurrence, see screenshot

Screenshot 2023-03-22 at 8 23 39

What can be done to fix this? This leads to various weird overlaps with non-repeated events and lots of confusion

Expected Behaviour

Recurring schedule adapts to the user's timezone even with recurring events

Steps to Reproduce

No response

Environment

@devexpress/dx-react-scheduler: 4.0.3

jakubjanousek commented 1 year ago

Any idea in here? This is a real issue we have on production and it would help us tremendously if we know what is going on. Thanks

artem-kurchenko commented 1 year ago

Hi @jakubjanousek

Reactive Scheduler now displays dates as is and doesn't track changes within time zones. There is no straightforward solution to display dates depending on the browser's settings unless you pre-process data that should be passed to Scheduler.

We have a different product for React that supports this feature (different time zones) out of the box: dxScheduler. Demo: Time Zones Support Feel free to consider it as an alternative. If you have any questions about it please contact us at https://supportcenter.devexpress.com/ticket/create