-
-
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
v2.24.0 - Default Calendar - issue moving allday event #3144
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 |
on the kk vs HH HH is hour 0-23 |
Right. And I found this explanation:
To me that explains why I was seeing 24:00. |
also, can you clarify what those times are ? 00:00-01:00 UTC? or? 11-12p berlin time my calendar (google) will not allow me to start an event at midnight TODAY, (trying oct 21) |
yes, kk means to count in human terms.. 1 is the first hour of the day, not 0 |
00:00 - 01:00 Germany/Berlin time. timeFormat: "relative", timeFormat: "absolute", ( just updated config.js )
|
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 |
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: