Read the statement by Michael Teeuw here.
Not loading one of two Google calendars
-
@bdeelman can you show me the config for the module, xxx out the url as here
how many events are in there
-
@bdeelman also, can you look in the log output for any error messages
log is where you do npm start
if you are using pm2 to launch MagicMirror
thenpm2 logs --lines=nnn
where nnn is the nunbrr of lines to show, default 15
-
Hi Sam,
Total number of events: 3080. 58 upcoming. So maybe too much?
I use MM at a Docker and that did not use PM2. The one from karsten13.
Ton of DEBUG with no errors. He is spitting all VEVENT form the past years.
KR,
Bert -
@bdeelman yes, the calendar source sends everything, so its a memory hog, and i think we run out of memory.
another person reported similar problemalso if you have maxevents set that includes past events
ive thought of a fix for that, but havent come up with a good answerwe have maximumnumber of days so we look forward AND back that range, default a year. but that’s 2 years.
what part of that range is important?
then we have maxevents. starting at either end is wrong. but we start at the oldest. might never have any future events in the max range
i think there should be two lists
all old
future, limited by days/max eventsbut no one expects two lists (breaking part)
another hacky way is one list. we find today and the apply limits on the forward part
-
Hi Sam,
The upcoming events are important. Always looking forward ;)
Is there a way setting variables to fix it? I can remove all old events from Google, but why? Maybe we need to import only future events.
What will be the best solution?
KR,
Bert -
@bdeelman we cannot import only future
we get everything the source provides when we ask for the events. google doesn’t provide a filter mechanismwe dont parse them directly , calling a 3rd party
lib. but they have to parse them so we can filter. and boom we die before we can filter.future is important. a year out? a day? a week?
i have a rolling 3 month future view. ( was a test, but i find it useful)
but even my all old, limited future idea doesn’t solve the total size problem
we are publishing a bunch of fixes i have created for calendar jan 1
this issue remains open.
would you be willing to share your cal url, via direct message, so i can test? i don’t share any data w others -
Hi Sam,
I’ll generate a .ics calendar file with 4500 events, including a mix of:
Single events: Appointments, meetings, etc.
Recurring events: Weekly or yearly recurrences for things like birthdays, anniversaries.
Time ranges: Events spanning multiple hours or days.
The events will cover the period from January 1st, 2019 to January 1st, 2026.I can put it at a website if you want? If you need an URL.
KR,
Bert -
@bdeelman tell me where it is so I can download, will advise when done
make sure it fails of course, to test
put it in a directory off the MM folder then
then url in calhttp://localhost:mm_port/path/to_ics.file
-
Hi Sam,
What I did, with some help of ChatGPT.
The newly random events are working flawless. I prepared Python script to check the quality of the Google .ics file. I have 3071 events and 9 of them gave an error.
Error parsing event: 'NoneType' object has no attribute 'dt'
Indicates that one of the events in my .ics file has a missing or improperly formatted DTSTART or DTEND.
I made another script to check how much. Nine 9 events has missing date fields. Another script to remove those 9 entries and load it into MM. And now they show up.
But…then I saw an error at the console at the customEvents parts.
{ keyword: "Verjaardag", symbol: "birthday-cake", color: "Gold", transform: { search: "^([^']*) '(\\d{4})$", replace: "$1 ($2.)", yearmatchgroup: 2, }, },
But with this code the other Google ics was working. Strange, without this code the two Google ics are working. So not sure if commenting the customEvents did the trick.
I can’t revert because I deleted the “wrong” events from the calendar.
KR,
Bert -
@bdeelman ok, we dont have a dt property, so that might have been a python issue
its ok to have start without an end , the library handles that
do you know what the customevents error was?