Skip to content

Conversation

chamakura
Copy link

It looks like the parsing logic to extract date-times isn't handling timezones correctly. The way it's correctly implemented, it's assumed that the provided timestamp value is in UTC even when a corresponding timezone value is provided. This change factors in the timezone (when available) to correctly convert the value in UTC. (This is to handle #3 in https://www.kanzaki.com/docs/ical/dateTime.html)

This issue manifested in MagicMirror where events scheduled by someone in a different timezone were getting offset. For example, if someone in New York (timezone=America/New_York) sent me (I'm in timezone=America/Los_Angeles) an invite, the event would show up 3 hours later than expected because that's the difference between the timezones.

@peterbraden
Copy link
Owner

This adds a library to ical.js. Because it's intended that ical.js can be used in a browser without a build step, this won't work - would it be possible to extract the necessary logic from moment-tz?

@chamakura
Copy link
Author

I see - let me look into adding this without the library dependency.

@chamakura
Copy link
Author

So it looks like one option is to inline the dataset corresponding to all available timezones: https://github.com/moment/moment-timezone/blob/develop/builds/moment-timezone-with-data-10-year-range.js#L693
Would this be OK?

Or is there a way to dynamically link to dynamically link to https://momentjs.com/downloads/moment-timezone-with-data-10-year-range.min.js?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants