MagicMirror Forum
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • 3rd-Party-Modules
    • Donate
    • Discord
    • Register
    • Login
    A New Chapter for MagicMirror: The Community Takes the Lead
    Read the statement by Michael Teeuw here.

    MMM-CalDAV

    Scheduled Pinned Locked Moved Productivity
    97 Posts 10 Posters 40.0k Views 9 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • M Offline
      MMRIZE
      last edited by

      MMM-CalDAV

      CalDav broker for MagicMirror

      Concept & Motivation

      Some CalDAV server doesn’t provide ICAL format, so it cannot be used with MM’s calendar modules.

      This module enables MM to convert your CalDAV calendar data into the popular ICAL(.ics) file. Converted ICAL output is hosted on MM itself.

      It has no screenshot

      Configuration

      {
        module: "MMM-CalDAV",
        config: {
          name: "company",
          serverUrl: "http://gw.mycomp.com/principals/users/eouia0819@gmail.com",
          credentials: {
            username: "eouia0819@gmail.com",
            password: "myPassWord!@#$",
          },
          vcalendarHeader: false
        }
      },
      
      // If you want additional extra CalDAV connection, just describe it once more. (or multiple times as you need.)
      {
        module: "MMM-CalDAV",
        config: {
          name: "homenas",
          serverUrl: "http://mynas.synology.me:5000/caldav/eouia",
          credentials: {
            username: "eouia",
            password: "AnotherPassword!@#$",
          },
          calendarFilter: ["My Calendar", "School Schedule"]
        }
      },
      

      Then it will provide the ICAL URL like;

      https://localhost:8080/CALDAV/company.ics
      https://localhost:8080/CALDAV/homenas.ics 
      

      You can use this URL for your calendar modules.

      Details : https://github.com/MMRIZE/MMM-CalDAV

      G 1 Reply Last reply Reply Quote 0
      • G Offline
        GregoryWest @MMRIZE
        last edited by

        @mmrize Thanks for the reply!! I put in the code, and put the following into my config.txt:

           	{
           		module: "MMM-CalDAV",
           		possition: "top right",
           		config: {
           		name: "gregcal",
           			serverUrl: "https://full.candev.url.com",
           			credentials: {
           				username: "---------------",
           				password: "-------------",
           			},
           		}
           	},
           	{
           		module: "calendar",
           		header: "Gregs Calendar",
           		position: "top_right",
           		config: {
           			colored: true,
           			calendars: [
           				{
           				url: "https://localhost:8080/CALDAV/gregcal.ics",
           				symbol: 'check',
           				},
           			]
           		}
           	},
        
        

        MMM-CalDAV reports on the screen:
        module_6_MMCalDAV and no calendar information is displayed. Also opening https://MMMip:8080/CALDAV/gregcal.ics does not open anything either.

        Any hints?

        S 1 Reply Last reply Reply Quote 0
        • S Do not disturb
          sdetweil @GregoryWest
          last edited by

          @gregorywest did u make a ~/MagicMirror/CALDAV folder?

          Sam

          How to add modules

          learning how to use browser developers window for css changes

          G 1 Reply Last reply Reply Quote 0
          • G Offline
            GregoryWest @sdetweil
            last edited by

            @sdetweil DOH always the easy stuff I miss… will try tonight

            G 1 Reply Last reply Reply Quote 0
            • G Offline
              GregoryWest @GregoryWest
              last edited by

              @gregorywest OK Put CALDAV folder inside the ~/MagicMirror folder. Still get the same error messages on the MMM screen. When I try and web browse into the ics file I get a connection refused error. Is it possible I have a firewall causing me issues?

              S G 2 Replies Last reply Reply Quote 0
              • S Do not disturb
                sdetweil @GregoryWest
                last edited by sdetweil

                @gregorywest browse from where?

                the default settings in mm are only apps INSIDE the mm machine can connect

                so,

                change the address and ipWhitelist options in config.js

                address:"0.0.0.0",
                ipWhitelist:[],
                

                this allows any computer, phone,… on your local network to connect to the mm system

                also, by default, mm is NOT https enabled, so the the calendar url should be http://

                Sam

                How to add modules

                learning how to use browser developers window for css changes

                1 Reply Last reply Reply Quote 0
                • G Offline
                  GregoryWest @GregoryWest
                  last edited by

                  @gregorywest created the CALDAV folder. put in the folder a copy of my ics file. This ics file is now being displayed. the problem still remain that MMM_CalDAV does not seem to be updating the ics file at all. still have the module6 message on my screen.

                  S 1 Reply Last reply Reply Quote 0
                  • S Do not disturb
                    sdetweil @GregoryWest
                    last edited by

                    @gregorywest ok looking at the code, I led u astray…

                    the module generates the file, but presents it when called at the /CALDAV/???.ics url

                    so, remove the CALDAV folder, but leave that url in the calendar module config

                    and it should work. there is a bug in the doc, as the url server is set on http, but the doc says https

                    Sam

                    How to add modules

                    learning how to use browser developers window for css changes

                    G 1 Reply Last reply Reply Quote 0
                    • G Offline
                      GregoryWest @sdetweil
                      last edited by

                      @sdetweil really confused now. you need the /CALDAV/ folder removed. leathe the config.js as it is?

                      S 1 Reply Last reply Reply Quote 0
                      • S Do not disturb
                        sdetweil @GregoryWest
                        last edited by

                        @gregorywest yes, the module creates a server at /CALDAV, and when the calendar module uses that URL, this module returns an ICS file. live… (same as if you had been using a google calendar)

                        this is different than the other converters that dump a file in a folder.

                        Sam

                        How to add modules

                        learning how to use browser developers window for css changes

                        G 1 Reply Last reply Reply Quote 0
                        • G Offline
                          GregoryWest @sdetweil
                          last edited by GregoryWest

                          @sdetweil WOW its working!!! Thanks for your patience. Looking good. Something just occured to me. Can I do this with multiple users/calendars? The plan is for 5 calendars to be on the screen, they are all coming from the same SoGo server.

                          S M 2 Replies Last reply Reply Quote 0
                          • S Do not disturb
                            sdetweil @GregoryWest
                            last edited by

                            @gregorywest that I do not know

                            Sam

                            How to add modules

                            learning how to use browser developers window for css changes

                            G 1 Reply Last reply Reply Quote 0
                            • G Offline
                              GregoryWest @sdetweil
                              last edited by

                              @sdetweil I noticed a different issue now. I was updating my calendar in SoGo, but none of the updates are showing up on MMM. This is even the case after a reboot of MMM.

                              The problem of the multiple calendars might be a show stopper. Will keep muddling through this.

                              Greg

                              S M 2 Replies Last reply Reply Quote 0
                              • S Do not disturb
                                sdetweil @GregoryWest
                                last edited by

                                @gregorywest ok, for multiple cals, u use another instance of the module in config.js
                                his doc shows that…

                                update? should be the updateInterval parm… default 15 mins it says

                                Sam

                                How to add modules

                                learning how to use browser developers window for css changes

                                1 Reply Last reply Reply Quote 0
                                • M Offline
                                  MMRIZE @GregoryWest
                                  last edited by

                                  @sdetweil
                                  Thanks your kind help. I was absent for days. So I couldn’t support this issue.

                                  @GregoryWest
                                  When you want to get several calendars(or accounts), just add this module again in your config.
                                  And to refresh calendar, wait updateInterval.
                                  And with rebooting, usually last result will be shown after reboot.(CalDAV parsing is quite slow ). Generally it will take updateInterval after reboot, the change will be displayed.

                                  1 Reply Last reply Reply Quote 0
                                  • M Offline
                                    MMRIZE @GregoryWest
                                    last edited by MMRIZE

                                    @gregorywest said in MMM-CalDAV:

                                    @sdetweil WOW its working!!! Thanks for your patience. Looking good. Something just occured to me. Can I do this with multiple users/calendars? The plan is for 5 calendars to be on the screen, they are all coming from the same SoGo server.

                                    What you want is;

                                    • 5 CalDAV calendars from one account (It has more than 5 calendars) as one iCal Calendar : Just use calendarFilter
                                    • 5 CalDAV calendaras from one account as 5 iCal Calendars: Use this module 5 times with calendarFilter
                                    • 5 CalDAV calendars from several accounts as one summarized iCal Calendar : Sorry, impossible with this module.
                                    • 5 CalDav calendars from several accounts as 5 iCal Calendars : Use method 2.
                                    1 Reply Last reply Reply Quote 0
                                    • M Offline
                                      MMRIZE
                                      last edited by MMRIZE

                                      UPDATE 2.0.0

                                      • Newly rebuilt from scratch
                                      • OAUTH supported (For Google Calendar)
                                      • Multi servers/calendars in one module.
                                      • more secure and efficiently

                                      Now, you can use Google Calendar in the default calendar module(and more).
                                      https://github.com/MMRIZE/MMM-CalDAV

                                      1 Reply Last reply Reply Quote 0
                                      • M Offline
                                        MMRIZE @Guest
                                        last edited by

                                        @matt216
                                        More details about your environment are needed to know what happens.

                                        Let’s start with the concept.

                                        Some CALDAV Providers don’t serve any public iCAL(.ics) URL to be consumed externally. You don’t need this module if your CALDAV service can host iCAL URLs. I have no idea about baikal, but I think you know whether that service would provide iCAL or not.

                                        MMM-CALDAV can access the CALDAV server(which would not host any public iCAL URL) to get target calendar events. Then, this module converts the event data to a real iCAL file(.ics). And this module also hosts that file as a URL accessible from the default calendar module or some iCAL consuming modules with security. MMM-CALDAV will work like a private iCAL provider service.

                                        So, to show your event on MM, you may need both MMM-CALDAV and calendar module together.

                                        .env file is needed to connect/authenticate CALDAV server and some security features. Calendar events are very private so I want to block the security hole on working this module. You should put .env in MMM-CALDAV directory.

                                        So, where are you stuck now? Tell me what happens.

                                        M 1 Reply Last reply Reply Quote 0
                                        • M Offline
                                          matt216 @MMRIZE
                                          last edited by

                                          @MMRIZE Thank you for your help, but I managed to figure out getting baikal to generate the ics file, so I don’t need this module anymore.

                                          Thanks anyway

                                          1 Reply Last reply Reply Quote 1
                                          • M Offline
                                            MMRIZE
                                            last edited by

                                            Update 2.1.0

                                            • Birthday calendar enabled. (CardDAV implementation)
                                            • Some code refactoring.
                                            • calendars: [], is changed to targets: []. you have to reconfigure your config.js

                                            Now you can get Birthdays calendar from iCloud or Google Contacts. (Of course, other CardDAV supported contacts services.)

                                            T 1 Reply Last reply Reply Quote 0

                                            Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                            Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                            With your input, this post could be even better 💗

                                            Register Login
                                            • 1
                                            • 2
                                            • 3
                                            • 4
                                            • 5
                                            • 10 / 5
                                            • First post
                                              Last post
                                            Enjoying MagicMirror? Please consider a donation!
                                            MagicMirror created by Michael Teeuw.
                                            Forum managed by Sam, technical setup by Karsten.
                                            This forum is using NodeBB as its core | Contributors
                                            Contact | Privacy Policy