-
-
Notifications
You must be signed in to change notification settings - Fork 4.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Recurring events do not respect current DST if created before changing to or from current DST #3098
Comments
can u show the original with the rule we have a problem with the rule library, which only deals w local time, and the calendar parser which uses tz/utc. rrule returns the dates mangled the edge cases are where the time and the tinezone offset cause overflow |
another issue, DST switching the 1st event with trouble says |
Original with the rule, you mean the rrule options on this recurring event?
If I've completely misunderstood please just clarify which rule portion you're looking for and I can grab it! The Jan 12 2023 dtstart is when this recurring meeting was originally started -- possibly in the process of going from UTC to local and back, something is accommodating for the fact that DST changed and subtracted an hour, and then calendar does it again deliberately to acknowledge the difference in offset? For good measure, here is my config.js as it pertains to the calendar module:
|
no, the calendar event with the RRULE in it.. start on Jan 12 2023 you know you don't need to rsync unless u are trying to minimize network traffic and accept the delays in updates but this shows too
byweekday seems to be trouble for the RRULE with timezones |
Ah! Yes here is the original event record:
Once upon a time I had a good reason for copying everything locally, can't remember what it was now, and it hasn't annoyed me enough yet to go through changing it |
i believe if you take off the |
here is an updated test version of the fixes for all kinds of calendar date problems. NOTE: the changed branch name best to make a new folder and git clone there git clone https://github.com/sdetweil/MagicMirror this ONLY changes the default calendar if you need to fall back, just rename the folders around again so that all the testcases for node-ical and MagicMirror execute successfully. the ‘BIG’ change here is to get the local NON-TZ dates for the all the checking and conversion code is commented out or not used one fix in calendar.js for checking if a past date was too far back, and one change in calendarfetcher.js to put out a better diagnostic message of the parsed data… (exdate was excluded cause JSON stringify couldn’t convert the complex structure) I added the tests you all have documented please re-pull and checkout the new branch (I deleted the old branch) |
## [2.30.0] - 2025-01-01 Thanks to: @xsorifc28, @HeikoGr, @bugsounet, @khassel, @KristjanESPERANTO, @rejas, @sdetweil. >⚠️ This release needs nodejs version `v20` or `v22 or higher`, minimum version is `v20.18.1` ### Added - [core] Add wayland and windows start options to `package.json` (#3594) - [docs] Add step for npm publishing in release process (#3595) - [core] Add GitHub workflow to run spellcheck a few days before each release (#3623) - [core] Add test flag to `index.html` to pass to module js for test mode detection (needed by #3630) - [core] Add export on animation names (#3644) - [compliments] Add support for refreshing remote compliments file, and test cases (#3630) - [linter] Re-add `eslint-plugin-import`now that it supports ESLint v9 (#3586) - [linter] Re-activate `eslint-plugin-package-json` to lint `package.json` (#3643) - [linter] Add linting for markdown files (#3646) - [linter] Add some handy ESLint rules. - [calendar] Add ability to display end date for full date events, where end is not same day (showEnd=true) (#3650) - [core] Add text to the config.js.sample file about the locale variable (#3654, #3655) - [core] Add fetch timeout for all node_helpers (thru undici, forces node 20.18.1 minimum) to help on slower systems. (#3660) (3661) ### Changed - [core] Run code style checks in workflow only once (#3648) - [core] Fix animations export #3644 only on server side (#3649) - [core] Use project URL in fallback config (#3656) - [core] Fix Access Denied crash writing js/positions.js (on synology nas) #3651. new message, MM starts, but no modules showing (#3652) - [linter] Switch to 'npx' for lint-staged in pre-commit hook (#3658) ### Removed - [tests] Remove `node-pty` and `drivelist` from rebuilded test (#3575) - [deps] Remove `@eslint/js` dependency. Already installed with `eslint` in deep (#3636) ### Updated - [repo] Reactivate `stale.yaml` as GitHub action to mark issues as stale after 60 days and close them 7 days later (if no activity) (#3577, #3580, #3581) - [core] Update electron dependency to v32 (test electron rebuild) and all other dependencies too (#3657) - [tests] All test configs have been updated to allow full external access, allowing for easier debugging (especially when running as a container) - [core] Run and test with node 23 (#3588) - [workflow] delete exception `allow-ghsas: GHSA-8hc4-vh64-cxmj` in `dep-review.yaml` (#3659) ### Fixed - [updatenotification] Fix pm2 using detection when pm2 script is inside or outside MagicMirror root folder (#3576) (#3605) (#3626) (#3628) - [core] Fix loading node_helper of modules: avoid black screen, display errors and continue loading with next module (#3578) - [weather] Change default value for weatherEndpoint of provider openweathermap to "/onecall" (#3574) - [tests] Fix electron tests with mock dates, the mock on server side was missing (#3597) - [tests] Fix testcases with hard coded Date.now (#3597) - [core] Fix missing `basePath` where `location.host` is used (#3613) - [compliments] croner library changed filenames used in latest version (#3624) - [linter] Fix ESLint ignore pattern which caused that default modules not to be linted (#3632) - [core] Fix module path in case of sub/sub folder is used and use path.resolve for resolve `moduleFolder` and `defaultModuleFolder` in app.js (#3653) - [calendar] Update to resolve issues #3098 #3144 #3351 #3422 #3443 #3467 #3537 related to timezone changes - [calendar] Fix #3267 (styles array), also fixes event with both exdate AND recurrence(and testcase) - [calendar] Fix showEndsOnlyWithDuration not working, #3598, applies ONLY to full day events - [calendar] Fix showEnd for Full Day events (#3602) - [tests] Suppress "module is not defined" in e2e tests (#3647) - [calendar] Fix #3267 (styles array, really this time!) - [core] Fix #3662 js/positions.js created incorrectly --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: Michael Teeuw <[email protected]> Co-authored-by: Kristjan ESPERANTO <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Karsten Hassel <[email protected]> Co-authored-by: Ross Younger <[email protected]> Co-authored-by: Veeck <[email protected]> Co-authored-by: Bugsounet - Cédric <[email protected]> Co-authored-by: jkriegshauser <[email protected]> Co-authored-by: illimarkangur <[email protected]> Co-authored-by: vppencilsharpener <[email protected]> Co-authored-by: veeck <[email protected]> Co-authored-by: Paranoid93 <[email protected]> Co-authored-by: Brian O'Connor <[email protected]> Co-authored-by: WallysWellies <[email protected]> Co-authored-by: Jason Stieber <[email protected]> Co-authored-by: jargordon <[email protected]> Co-authored-by: Daniel <[email protected]> Co-authored-by: Ryan Williams <[email protected]> Co-authored-by: Panagiotis Skias <[email protected]> Co-authored-by: Marc Landis <[email protected]> Co-authored-by: HeikoGr <[email protected]> Co-authored-by: Pedro Lamas <[email protected]> Co-authored-by: veeck <[email protected]>
I have several recurring meetings which are being displayed with an incorrect start/end time using the default calendar module. I'm using vdirsyncer to pull my calendar down from Google Calendar into a local file on my rpi 4 running:
Linux raspberrypi 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64 GNU/Linux
One sample of a problematic event:
This has the correct start and end time of my event in my local timezone; 2023-05-04 14:00 - 2023-05-04 15:00. The calendar module is displaying the start/end of this event as 2023-05-04 13:00 - 2023-05-04 14:00 incorrectly.
When checking the debug for Magic mirror, appears to be adjusting the start time back 1 hour due to daylight savings, even though the start/end time has already accommodated for this.
The correct event date should have been:
Thu May 04 2023 14:00:00 GMT-0600 (Mountain Daylight Time)
. The GMT timestamp is recorded as 19:00, when the correct time is actually 20:00, so I believe the issue is in identifying the accurate start time in GMT for the recurrences within this scenario.This line:
Should actually be:
Which matches the timestamps that appear in the event array, also. Google is reporting the accurate GMT start times for each event:
But there is a DST offset being applied on top of that which seems to be causing the problem.
Another recurring event that I have, which displays correctly:
Again, the DTSTART and DTEND are accurate. Note that the created and recurrence-id timestamps are after DST started.
The GMT timestamps for the event.recurrences object are also incorrect (08:30 MDT == 14:30 GMT), so this seems to be getting confused with the timezone where the event was created, however, this seems to be consistent at least, as the time does at least end up correct in the end. No DST offset is applied; both the start date/time and event date are showing MDT.
As a final comparison, here is a recurring event created during DST, with my local timezone:
Debug logs:
Here 16:00 is the correct start time, the GMT timestamp of 22:00, and the resulting start date/time of
date/time=Fri May 12 2023 16:00:00 GMT-0600 (Mountain Daylight Time)
are all correct.The text was updated successfully, but these errors were encountered: