MagicMirror² v2.8.0 is available! For more information about this release, check out this topic.

Sync private iCloud calendar with MagicMirror

  • @Beh I followed your instruction step-by step but I can’t find the .vdirsyncer/config. I get the same error as @bgz. Do you know the solution to this problem? I tried creating the vdirsyncer folder but i got the message “Access denied”.

  • @Sammie1232 Seems like the folder and/or the file do not exist. Please create them if they are not there.

    The folder needs to be owned by the current user. On a Raspi, this command would look like this: chown -R pi:pi /home/pi/.vdirsyncer

  • You can make a iCloud Family Calendr ‘public’ by following the next steps:

    On an iPhone

    • Go to Calendar app
    • At the bottom you see ‘calendar’
      click on it
    • click on the ‘i’ behind the family calendar
      go to the bottom and make sure ‘public calendar’ is selected
    • select option ‘share’ and then select copy
      Now you have the public url and can use

    On a Mac

    • open calendar app
    • select the family calendar on the left
    • right click on the ‘wifi’ symbol
    • select settings for sharing
    • select public calendar and you can copy the url

  • @htilburgs This is exactly what I‘m trying to prevent/workaround with this tutorial.
    Using a public calendar URL allows anyone to see your calendars without any authentication at all. This way your calendars are open and accessible by anyone who knows the URL. (URLs can be crawled by machines ;))

    This here is just a secure method to sync your calendars.

    If you don‘t care about having your personal life available to anyone or anything, it‘s your business.

  • @Beh thanks for this. everything is working fine for me just a small error I wanted to ask about in my /home/pi/.pm2/logs/MagicMirror-error.log, it complains the following:

    ERROR! Could not find main module js file for calendars

    Its not a show stopper but because the calendars folder is created in the modules folder this is why it is asking for a js file.