-
-
Notifications
You must be signed in to change notification settings - Fork 4.3k
v2.24.0 - Default Calendar - issue moving allday event #3144
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Comments
may @sdetweil can look into this because he answered in the mentioned forum thread and opened an issue in jens-maus/node-ical#234 |
yes. I haven't had much time to find a solution. the rrule/luxon libs are returning incorrect dates seems related to having byday in the rule (only specific days of the week) |
Thanks fro the quick replies. |
@sdetweil is this fixed with the new |
no.. not yet fixed |
see this.. waiting on user test for submitting PR here and node-ical here is a test version of the fixes for all kinds of date problems. best to make a new folder and git clone there
copy your config.js and custom.css from the prior folder 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) |
Testing fixes in default/calendar/ and node_modules/node-ical/ files. Add TestCal_AllDayRepeatingEvent Move first event from Friday to Saturday ('This event'): Delete first event ('This event'): Delete the second event ('This event'): Delete the remainder of events ('All events') Same tests with a single day repeating event, with begin and end time, passed. |
Here some data I gathered: |
there will be a different ics generated for each of these test cases w moved or deleted entries. i am on my phone currently, so cant tell if these ics are correct |
Yes, sorry, I left the command out that retrieves the latest basic.ics file. So, after every change I did: First: Then:
|
can you provide those specific ics files, cant tell if you did doesn't matter what it was before unless u are reporting it to the cal provider. we just see what the provider gives. (and node-ical does all the combining, so we never know directly) |
Did not save the ics file for every part of the test, would need to re-test. |
but your grep/awk would only see one event and there would be multiple in most cases |
when u move the start, the initial event will have an exdate entry for the first, with the rrule and a second vevent for the single day with the same uid on the new day |
My grep does show more events, when there are more present. But in order not to discuss this and to avoid the grep not to be right I will attach the actual ics files. :-) |
great thx, should only show one rrule. extras don't have it, just the matching uid |
Sam, I am very sorry, but I get this error when an event comes in.
Should be the latest files from your fixcaldates branch:
|
thanks.. git pull again |
Sam, the new file got rid of the error I saw, but for some reason it still does not work for me. What needs to be done to have everything running in a different timezone? I already lived with this behaviour for a long time and refrain from using repeating all day events, so only spend time on it if you 'enjoy' it. Greetings, |
oh such fun, timezone are indeed a challenge its complicated, yes, but i like the challenge, and it needs to be done. so hang in there with me answer to your what do we need to do, as a user nothing. set your system to your timezone and all should work. you shouldn't have to think about it |
Always happy to assist you with testing. Last thing for today: V - When I add a single event on 2024.10.22 from 23:00 to 00:00 then it displays correct on Oct 22nd. X - When I add a repeating event on 2024.10.22 from 23:00 to 00:00 (repeat every 1 day - 3 occurrences) then it wrongly displays Oct 23rd, 24th and 25th (not from Oct 22nd onwards). X - When I add a repeating event on 2024.10.22 from 22:00 to 23:30 (repeat every 1 day - 3 occurrences) then it also wrongly displays Oct 23rd, 24th and 25th (not from Oct 22nd onwards). V - When I add a repeating event on 2024.10.22 from 21:00 to 22:00 (repeat every 1 day - 3 occurrences) then it correctly displays Oct 22nd, 23rd and 24th. V - When I add a repeating event on 2024.10.22 from 21:05 to 22:05 (repeat every 1 day - 3 occurrences) then it correctly displays Oct 22nd, 23rd and 24th. Quick tests, no logs saved. So, it means that when you are adding repeating events within distance of GMT+0 (start time on or after GMT+0 ??) you are bound to have issues. |
ah, full dates were returned in UTC time instead of required local time do
to get the latest node-ical too |
didn't see your other info .. will check |
that last image is clipped on the right.. I can't tell if you still have a failing testcase.. |
I fixed and added official testcases for moved date roll over into next day. (berlin event, one of 3 moved, viewed from berlin, chicago and sydney) give it a try.. |
showEnd only works w timeFormat:"absolute" 23:59 i subtracted a second, so this happened i don't know how to use the tests under tests except during testing (npm run test:electron) as the tests folder isnt a valid source except under test good feedback |
if you look at the last 3 testcases i added |
ok, these last are cause by node-ical, mis parsing the date/time. 27th is DST switch, 3am local time, text correct here
the ics says
to utc time should be -2 hours (node-ical is in utc only) the oct 21 event
ics
|
Just to avoid confusion, here summertime ends on Sunday October 27th, at 03:00 CEST. Going to 02:00 CET. |
yes.. sunday morning dst change.. stil ical parses incorrectly 11pm event is still at 11pm (on the wall clock) |
moment-timezone messed it up
|
node ical bug, fixed temp
|
Sam, I have tested the repeating events, using different times and dates (before, during and after the transition to wintertime, and ran some sanity checks. Never ran any tests, however, with dates and times in different timezones (like starting in Germany/Berlin and ending in America/New_York). Thanks for getting to the bottom of this and admire your perseverance!! E.J. |
awesome. thanks for the great teastcases |
for tz date tests, just change your system timezone |
I more meant, that, when, for example, flying from Berlin to New York and will enter the Berlin date & time for departure and the New York date & time for arrival. Perhaps I will just give it a try ... |
I have one more question. My MagicMirror that I use for daily life is running on a Raspberry Pi 3 Model B Plus with Raspian 'buster' (armv7l) and still is on MM version 2.24.0. The changes you made for the calendar module, are they back-portable ? Or should I go to MM version 2.29 and apply your changes like I did on my test-bench ? |
calendar should work, make a folder there called save copy the new version files in and give it a try new MagicMirror version will not work on buster. new nodejs and electron need a library not available i do not think omxplayer works on bullseye or bookworm |
actually, we dropped a lib calendarfetcher.js uses |
Okay, thx, will do. Omxplayer cannot even be installed on everything newer than buster. |
I tried to make a recurring event w diff timezones, google cal said recurring must be same timezome so your travel one could be starting at 10am Berlin TZ, ending at 6pm LA timezone. same of diff days.. I will test that, works good |
## [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] <support@github.com> Co-authored-by: Michael Teeuw <michael@xonaymedia.nl> Co-authored-by: Kristjan ESPERANTO <35647502+KristjanESPERANTO@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Karsten Hassel <hassel@gmx.de> Co-authored-by: Ross Younger <crazyscot@gmail.com> Co-authored-by: Veeck <github@veeck.de> Co-authored-by: Bugsounet - Cédric <github@bugsounet.fr> Co-authored-by: jkriegshauser <joshuakr@nvidia.com> Co-authored-by: illimarkangur <116028111+illimarkangur@users.noreply.github.com> Co-authored-by: vppencilsharpener <tim.pray@gmail.com> Co-authored-by: veeck <michael.veeck@nebenan.de> Co-authored-by: Paranoid93 <6515818+Paranoid93@users.noreply.github.com> Co-authored-by: Brian O'Connor <btoconnor@users.noreply.github.com> Co-authored-by: WallysWellies <59727507+WallysWellies@users.noreply.github.com> Co-authored-by: Jason Stieber <jrstieber@gmail.com> Co-authored-by: jargordon <50050429+jargordon@users.noreply.github.com> Co-authored-by: Daniel <32464403+dkallen78@users.noreply.github.com> Co-authored-by: Ryan Williams <65094007+ryan-d-williams@users.noreply.github.com> Co-authored-by: Panagiotis Skias <panagiotis.skias@gmail.com> Co-authored-by: Marc Landis <dirk.rettschlag@gmail.com> Co-authored-by: HeikoGr <20295490+HeikoGr@users.noreply.github.com> Co-authored-by: Pedro Lamas <pedrolamas@gmail.com> Co-authored-by: veeck <gitkraken@veeck.de>
See this topic for details:
https://forum.magicmirror.builders/topic/17318/calendar-module-problem-with-moved-allday-event-google-calendar?_=1688317001295
I could apply the workaround till v2.23.0, but not anymore on v2.24.0.
Using: https://calendar.google.com/
Create events:
Move events two days - 'This event':
Delete Recurring events - 'This event':
Delete Recurring events - 'All events':
Get events:
$ rm basic.ics; wget https://calendar.google.com/calendar/ical/xxxxxxxxx/basic.ics
--> basic.ics
Collected:
basic_AllDayRepeatWeekly.ics
basic_OneDayRepeatWeekly.ics
basic_MoveEvents.ics
basic_DeleteEvents.ics
basic_DeleteAllEvents.ics
basic_DeleteAllEvents.ics.txt
basic_DeleteEvents.ics.txt
basic_MoveEvents.ics.txt
basic_OneDayRepeatWeekly.ics.txt
basic_AllDayRepeatWeekly.ics.txt
Search an event and print complete record(s):
$ awk 'BEGIN { RS="END:VEVENT" ; ORS = "END:VEVENT\n" }/AllDayRepeatWeekly/' basic.ics
The text was updated successfully, but these errors were encountered: