Read the statement by Michael Teeuw here.
Default calendar and Nextcloud CalDav
-
I am attempting to get my nextcloud caldav calendar to work with the default calendar module.
I am trying to download my calendar locally as I don’t think I can get an ics link through nextcloud without addning “?export” to the end of the URI.
I run
curl -L https://nextcloud.mydomain.com/remote.php/dav/calendars/USER/personal/?export > . ~/MagicMirror/modules/cals/personal.ics
In my config.js file I have
{ symbol: "calendar", url: "http://localhost:8080/~/MagicMirror/modules/cals/personal.ics", user: "USERNAME", pass: "PASSWORD", method: "basic", }
I have put this together with some of the other forum posts on here but I seem to have gotten something wrong or something has changed.
Anyone know how to get this working?
-
@BasicUser said in Default calendar and Nextcloud CalDav:
url: “http://localhost:8080/~/MagicMirror/modules/cals/personal.ics”,
@BasicUser said in Default calendar and Nextcloud CalDav:
url: “http://localhost:8080/~/MagicMirror/modules/cals/personal.ics”,
put the file in the modules/calendar folder and then the url will be
url:"modules/calendar/personal.icsas the MM file server is hosted to the MM folder.
-
@sdetweil okay, i didnt have a calendar folder in modules so i created one and changed my config file to
{ symbol: "calendar", url: "modules/calendar/personal.ics", user: "USERNAME", pass: "PASSWORD", method: "basic", }
but it still didnt solve the issue
-
@BasicUser wherever u start mm, npm start, or pm2 start.
u should see info in the console log about opening the ics file.
if pm2, use the pm2 logs --lines=??? to display the last ??? lines of the logs
-
@BasicUser ok, i put my ics in the default/calendar folder and this works
url:"http://localhost:8080/modules/default/calendar/foo.ics"
so, you were more close than me
-
@sdetweil hmm
{ symbol: "calendar", url: "http://localhost:8080/modules/default/calendar/personal.ics", user: "USER", pass: "PASSW", method: "basic", }
It is saying “No upcoming events” still. I put a test event for tomorrow so that I know there should be one.
I ran
pm2 logs --lines=150 | grep calendar
0|mm | [2020-08-19 17:47:12.740] [LOG] Connecting socket for: calendar 0|mm | [2020-08-19 17:47:12.744] [LOG] Starting node helper for: calendar 0|mm | [2020-08-19 17:47:23.028] [LOG] Create new calendar fetcher for url: https://nextcloud.MYDOMAIN.xyz/remote.php/dav/calendars/USER/personal/ - Interval: 300000 0|mm | [2020-08-19 17:50:06.402] [LOG] Module helper loaded: calendar 0|mm | [2020-08-19 17:50:08.524] [LOG] Connecting socket for: calendar 0|mm | [2020-08-19 17:50:08.528] [LOG] Starting node helper for: calendar 0|mm | [2020-08-19 17:50:19.043] [LOG] Create new calendar fetcher for url: https://nextcloud.MYDOMAIN.xyz/remote.php/dav/calendars/USER/personal/ - Interval: 300000 0|mm | [2020-08-19 17:50:19.152] [LOG] Create new calendar fetcher for url: http://localhost:8080/modules/calendar/personal.ics - Interval: 300000 0|mm | [2020-08-19 17:52:41.135] [LOG] Module helper loaded: calendar 0|mm | [2020-08-19 17:52:43.207] [LOG] Connecting socket for: calendar 0|mm | [2020-08-19 17:52:43.210] [LOG] Starting node helper for: calendar 0|mm | [2020-08-19 17:52:53.215] [LOG] Create new calendar fetcher for url: https://nextcloud.MYDOMAIN.xyz/remote.php/dav/calendars/USER/personal/ - Interval: 300000 0|mm | [2020-08-19 17:52:53.278] [LOG] Create new calendar fetcher for url: http://localhost:8080/modules/calendar/personal.ics - Interval: 300000 0|mm | [2020-08-19 17:55:50.824] [LOG] Module helper loaded: calendar 0|mm | [2020-08-19 17:55:53.057] [LOG] Connecting socket for: calendar 0|mm | [2020-08-19 17:55:53.060] [LOG] Starting node helper for: calendar 0|mm | [2020-08-19 17:56:03.286] [LOG] Create new calendar fetcher for url: https://nextcloud.MYDOMAIN.xyz/remote.php/dav/calendars/USER/personal/ - Interval: 300000 0|mm | [2020-08-19 17:56:03.364] [LOG] Create new calendar fetcher for url: http://localhost:8080/modules/default/calendar/personal.ics - Interval: 300000
edit:
more recent logs0|mm | Use existing calendar fetcher for url: http://localhost:8080/modules/default/calendar/personal.ics 0|mm | [2020-08-19 18:06:02.407] [INFO] Calendar-Fetcher: Broadcasting 0 events. 0|mm | [2020-08-19 18:06:02.559] [INFO] 0|mm | Calendar-Fetcher: Broadcasting 0 events. 0|mm | [2020-08-19 18:06:02.608] [INFO] 0|mm | Calendar-Fetcher: Broadcasting 0 events. 0|mm | [2020-08-19 18:06:14.339] [INFO] 0|mm | Calendar-Fetcher: Broadcasting 0 events.
EDIT2: It is working now, my downloaded ics file was bad apparently. I redownloaded it and now it is working as expected, I think.
-
@BasicUser cool… thx for the feedback
-
@sdetweil This might just be my ignorance but I have added an item to my calendar after it was working to see if it would pull the new event. To my dismay it has not pulled the newest item. Are ICS files static or do they update dynamically?
edit: final edit.
{ symbol: "calendar", url: "https://nextcloud.MYDOMAIN.xyz/remote.php/dav/calendars/USER/personal/?export", user: "USER", pass: "PASSW", method: "basic", },
updated my config file to this and it is now working as expected. no idea why it wasnt before but i probably had something typed out incorrectly. thanks for the help
-
@BasicUser are you ok? can’t quite tell.
different cal.providers push updates at different times, and mm polls the calendar per the config
-
@sdetweil lol yes, all is working. it wasn’t updating when I downloaded the ics file and moved it to /default/calendar. I changed it to what I have in my most recent comment and that is working without issue.