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-CalendarExt3

    Scheduled Pinned Locked Moved Utilities
    689 Posts 82 Posters 2.8m Views 86 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 @Lilleberg
      last edited by

      @Lilleberg Show us your config.

      L 1 Reply Last reply Reply Quote 0
      • L Offline
        Lilleberg @MMRIZE
        last edited by

        Here is my config- I have replaced the calendar urls under as I dont want to show them to the world.

        modules: [
        		{
        			module: 'MMM-Remote-Control',
        			// uncomment the following line to show the URL of the remote control on the mirror
        			// position: 'bottom_left',
        			// you can hide this module afterwards from the remote control itself
        			config: {
                    apiKey: 'c92e9765778gh56h83f66fffd333c6a5'
        			}
        		},
        		{
        			module: "alert",
        		},
        		{
        			module: 'MMM-YrThen',
        			position: 'top_left',
        			config: {
        				location: '1-107159',
        				showAll: "false",
        				details: "false",
        				title: "Været på Frekhaug neste uke",
        				header: "true",
        				size: "medium",
        				windGust: "true",
        				windUnit: "m/s",
        			}
        		},
        		{
        			module: "clock",
        			position: "top_right",
        			config: {
        			dateFormat: "dddd, D. MMMM YYYY",
        			showSunTimes: "true",
        			lat: "60.520806",
        			lon: "5.237736",
        			},
        		},
        		{
        			module: 'MMM-YrNow',
        			position: 'top_right',
        			config: {
        				locationId: '1-107159',
        				showWeatherForecast: true
        			}
        		},
        		{
        			module: "calendar",
        			position: "top_left",
        			hiddenOnStartup: "true",
        			config: {
        				broadcastPastEvents: true, // <= IMPORTANT to see past events
        				calendars: [
        					{
        						symbol: "none",
        						url: "Google Calendar url",
        						color: "#8BD3E6", //Blå
        						name: "Øyvind",
        					},
        					{
        						symbol: "none",
        						url: "Google Calendar url",
        						color: "#800080", //Lilla
        						name: "Solvor",
        					},
        					{
        						symbol: "none",
        						url: "Google Calendar url",
        						color: "#FF6D6A", //Rød
        						name: "Håkon",
        					},
        					{
        						symbol: "none",
        						url: "hGoogle Calendar url",
        						color: "#E9EC6B", //Gul
        						name: "Marius",
        					},
        					{
        						symbol: "none",
        						url: "Google Calendar url",
        						color: "#77DD77", //Grønn
        						name: "Sverre",
        					},
        					{
        						symbol: "none",
        						url: "Google Calendar url",
        						color: "#fffff", //Hvit
        						name: "Helligdager",
        					},
        					
        				]
        			},
        		},
        		{
        			module: 'MMM-GoogleCalendar',
        			position: "top_left",
        			hiddenOnStartup: "true",
        			config: {
        				calendars: [
        					{
        					symbol: "none",
        					calendarID: "Google Calendar id"
        					color: "#000000", //Svart
        					name: "Familie",
        					},
        					],
        			}
        		},	
        		{
        			module: "MMM-CalendarExt3",
        			position: "bottom_bar",
        			title: "",
        			config: {
        				mode: "week",
        				weekIndex: "0",
        				weeksInView: "4",
        				instanceId: "basicCalendar",
        				locale: 'nb',
        				maxEventLines: 10,
        				firstDayOfWeek: 1,
        				calendarSet: [],
        				eventHeight: "22px",
        				displayLegend: "true",
        				eventTransformer: (e) => {
        					e.startDate = new Date(e.start?.date || e.start?.dateTime).valueOf()
        					e.endDate = new Date(e.end?.date || e.end?.dateTime).valueOf()
        					e.title = e.summary
        					e.fulldayEvent = (e.start?.date) ? true : false
        					return e
        					}
        			}
        		},
        		 
        
        	]
        
        M 1 Reply Last reply Reply Quote 1
        • M Offline
          MMRIZE @Lilleberg
          last edited by

          @Lilleberg
          Check broadcastEvents:true in your MMM-GoogleCalendar’s config. Unlike the original calendar module, MMM-GoogleCalendar has this value as false by default.

          L 1 Reply Last reply Reply Quote 0
          • L Offline
            Lilleberg @MMRIZE
            last edited by

            @MMRIZE Tried adding this to the config, but still no result. The module broadcasts the events, but they wont show in the Ext3 module. Se attached image. I have removed the other calendars from the config, and only show the events from the Google Calendar module.20240312_183109.jpg

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

              @Lilleberg If possible, can you share the copy of your calendar? (And the final config file also) (eouia0819@gmail.com)
              Without the real data I couldn’t catch what really happened in yours.

              L N 2 Replies Last reply Reply Quote 0
              • L Offline
                Lilleberg @MMRIZE
                last edited by

                @MMRIZE I’m sending you an e-mail

                1 Reply Last reply Reply Quote 0
                • N Offline
                  nicmoly @MMRIZE
                  last edited by

                  @MMRIZE Hi Im also having the exact same issue as @Lilleberg , I have however seen glimpses of this working as intended but it seems to be on a whim, either it restarts and works and then not again untill a further reboot or it just wont. I find it weird that using MMM-CalendarExt3Journal works perfect every time with similar settings. Any ideas on what may be going on? Weird thing is leaving the MMM running all the sudden it works like 20-30min later, so im wondering if theres some weirdness with how the data comes in from the GoogleCalendar module
                  Heres my config for refrence:

                  {
                      		module: 'MMM-GoogleCalendar',
                     			header: "My Google Private Cal",
                    			position: "upper_third",
                  			hiddenOnStartup: true,
                   			config: {
                  				broadcastEvents: true,
                  				broadcastPastEvents: true,
                  				calendars: [
                  						{
                  							symbol: "calendar-week",
                  							calendarID: "***",
                  							name: "1_cal", // <= RECOMMENDED to assign name
                  							color: "yellow" // <= RECOMMENDED to assign color
                  						},
                  						{
                  							symbol: "calendar-week",
                  							calendarID: "***",
                  							name: "2_cal", // <= RECOMMENDED to assign name
                  							color: "red" // <= RECOMMENDED to assign color
                  						},
                  						{
                  							symbol: "calendar-week",
                  							calendarID: "en.canadian#holiday@group.v.calendar.google.com",
                  							name: "holiday_cal", // <= RECOMMENDED to assign name
                  							color: "green" // <= RECOMMENDED to assign color
                  						},
                  						
                  				],
                  			}
                  		},
                  		{
                    			module: "MMM-CalendarExt3",
                    			position: "lower_third",
                  			title: "Family Calendar",
                    			config: {
                  				mode: "month",
                  				instanceID: "I-calendar-month",
                  				maxEventLines: 5,
                  				firstDayOfWeek: 1,
                  				preProcessor: (e) => {
                  					if (e.start?.dateTime) {
                  				  		e.startDate = new Date(e.start.dateTime).valueOf()
                  					} else if (e.start?.date) {
                  				  		e.startDate = new Date(`${e.start.date}T00:00:00`).valueOf()
                  					}
                  
                  					if (e.end?.dateTime) {
                  				  		e.endDate = new Date(e.end.dateTime).valueOf()
                  					} else if (e.end?.date) {
                  				  		e.endDate = new Date(`${e.end.date}T00:00:00`).valueOf()
                  					}
                  
                  					e.title = e.summary
                  					e.fullDayEvent = (e.start?.date) ? true : false
                  					return e
                  				},
                    			}
                  		},
                  //		{
                  //  			module: "MMM-CalendarExt3Journal",
                  //  			position: "bottom_bar",
                  //  			config: {
                  //				height: '50vh',
                  //   			 	width: '100%',
                  //				//locale: 'en-GB',
                  //				staticWeek: true,
                  //				staticTime: true,
                  //				hourLength: 14,
                  //				beginHour:  8,
                  //				preProcessor: (e) => {
                  //					if (e.start?.dateTime) {
                  //				  		e.startDate = new Date(e.start.dateTime).valueOf()
                  //					} else if (e.start?.date) {
                  //				  		e.startDate = new Date(`${e.start.date}T00:00:00`).valueOf()
                  //					}
                  //
                  //					if (e.end?.dateTime) {
                  //				  		e.endDate = new Date(e.end.dateTime).valueOf()
                  //					} else if (e.end?.date) {
                  //				  		e.endDate = new Date(`${e.end.date}T00:00:00`).valueOf()
                  //					}
                  //
                  //					e.title = e.summary
                  //					e.fullDayEvent = (e.start?.date) ? true : false
                  //					return e
                  //				}
                  //  			}
                  //		},
                  
                  M 1 Reply Last reply Reply Quote 0
                  • M Offline
                    MMRIZE @nicmoly
                    last edited by

                    @nicmoly
                    Usually, your symptom happens by insufficient waitFetch. Give it more. (By default it would be 5_000 ms. Give it more like 10_000)

                    1 Reply Last reply Reply Quote 0
                    • B Offline
                      bobbylx
                      last edited by

                      Had an issue with my monitor so I took that opportunity to reload Pi OS and MM. Unfortunately, I goofed and flashed over my config and css backups. So I’m starting fresh.

                      That went fine but I cannot figure out why my calendar is not loading. My MM loads in Midori, I get my date/time in the upper left but the rest of the page is blank, no config warnings or empty boxes, just a completely black page. Config check shows no issues. Can someone look at my config.js real quick and see if I’m missing something? I have not touched any other files at this point, I was just trying to get the calendar to load before I start really customizing.

                      let config = {
                              address: "localhost",   // Address to listen on, can be:
                                                                              // - "localhost", "127.0.0.1", "::1" to listen on loopback interface
                                                                              // - another specific IPv4/6 to listen on a specific interface
                                                                              // - "0.0.0.0", "::" to listen on any interface
                                                                              // Default, when address config is left out or empty, is "localhost"
                              port: 8080,
                              basePath: "/",  // The URL path where MagicMirror² is hosted. If you are using a Reverse proxy
                                                                                              // you must set the sub path here. basePath must end with a /
                              ipWhitelist: ["127.0.0.1", "::ffff:127.0.0.1", "::1"],  // Set [] to allow all IP addresses
                                                                                              // or add a specific IPv4 of 192.168.1.5 :
                                                                                              // ["127.0.0.1", "::ffff:127.0.0.1", "::1", "::ffff:192.168.1.5"],
                                                                                              // or IPv4 range of 192.168.3.0 --> 192.168.3.15 use CIDR format :
                                                                                              // ["127.0.0.1", "::ffff:127.0.0.1", "::1", "::ffff:192.168.3.0/28"],
                      
                              useHttps: false,                        // Support HTTPS or not, default "false" will use HTTP
                              httpsPrivateKey: "",    // HTTPS private key path, only require when useHttps is true
                              httpsCertificate: "",   // HTTPS Certificate path, only require when useHttps is true
                      
                              language: "en",
                              locale: "en-US",
                              logLevel: ["INFO", "LOG", "WARN", "ERROR"], // Add "DEBUG" for even more logging
                              timeFormat: 24,
                              units: "metric",
                      
                              modules: [
                                      {
                                              module: "alert",
                                      },
                                      {
                                              module: "updatenotification",
                                              position: "top_bar"
                                      },
                                      {
                                              module: "clock",
                                              position: "top_left"
                                      },
                                      {
                                              module: "calendar",
                                              header: "US Holidays",
                                              position: "",
                                              config: {
                                                      calendars: [
                                                              {
                                                                      fetchInterval: 7 * 24 * 60 * 60 * 1000,
                                                                      symbol: "calendar-check",
                                                                      url: "https://ics.calendarlabs.com/76/mm3137/US_Holidays.ics"
                                                              }
                                                      ]
                                              }
                                      },
                                      {
                                              module: "compliments",
                                              position: ""
                                      },
                                      {
                                              module: "weather",
                                              position: "top_right",
                                              config: {
                                                      weatherProvider: "openweathermap",
                                                      type: "current",
                                                      location: "New York",
                                                      locationID: "5128581", //ID from http://bulk.openweathermap.org/sample/city.list.json.gz; unzip the gz file and find your city
                                                      apiKey: "YOUR_OPENWEATHER_API_KEY"
                                              }
                                      },
                                      {
                                              module: "weather",
                                              position: "top_right",
                                              header: "Weather Forecast",
                                              config: {
                                                      weatherProvider: "openweathermap",
                                                      type: "forecast",
                                                      location: "New York",
                                                      locationID: "5128581", //ID from http://bulk.openweathermap.org/sample/city.list.json.gz; unzip the gz file and find your city
                                                      apiKey: "YOUR_OPENWEATHER_API_KEY"
                                              }
                                      },
                                              {
                                                module: "calendar",
                                                position: "",
                                                config: {
                                                  broadcastPastEvents: true, // <= IMPORTANT to see past events
                                                  calendars: [
                                                    {
                                                      url: "webcal://www.calendarlabs.com/ical-calendar/ics/76/US_Holidays.ics",
                                                      name: "us_holiday", // <= RECOMMENDED to assign name
                                                      color: "red" // <= RECOMMENDED to assign color
                                                      }
                                              ]
                                              }
                                            },
                                              {
                                                module: "MMM-CalendarExt3",
                                                position: "bottom_bar",
                                                 title: "",
                                                 config: {
                                                  mode: "month",
                                                  instanceId: "basicCalendar",
                                                  locale: 'en-EN',
                                                  maxEventLines: 5,
                                                  firstDayOfWeek: 1,
                                                  calendarSet: ['us_holiday'],
                                                }
                                      },
                              ]
                      };
                      
                      
                      
                      S M 2 Replies Last reply Reply Quote 0
                      • S Offline
                        sdetweil @bobbylx
                        last edited by

                        @bobbylx said in MMM-CalendarExt3:

                                            module: "compliments",
                                            position: ""
                        

                        must be a valid position if specified…

                        you can disable a module by adding

                        disabled: true,
                        

                        after the module: line

                        you can also comment out the position
                        // position:“…”

                        this would be how you use the default calendar with Ext3…
                        it would work, but not be shown

                        backup, backup, backup…
                        see my scripts, backup to private repo on github… restore from there
                        versionable…
                        3 tiny files… and any keyfiles/token files…
                        https://github.com/sdetweil/MagicMirror-backup-restore

                        Sam

                        How to add modules

                        learning how to use browser developers window for css changes

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

                          @bobbylx
                          CX3* series may not work on MIDORI, sorry. It’s too old browser, doesn’t support advanced modern JavaScript technologies.

                          1 Reply Last reply Reply Quote 0
                          • B Offline
                            bobbylx @sdetweil
                            last edited by

                            @sdetweil said in MMM-CalendarExt3:

                            @bobbylx said in MMM-CalendarExt3:

                                                module: "compliments",
                                                position: ""
                            

                            must be a valid position if specified…

                            you can disable a module by adding

                            disabled: true,
                            

                            after the module: line

                            you can also comment out the position
                            // position:“…”

                            this would be how you use the default calendar with Ext3…
                            it would work, but not be shown

                            backup, backup, backup…
                            see my scripts, backup to private repo on github… restore from there
                            versionable…
                            3 tiny files… and any keyfiles/token files…
                            https://github.com/sdetweil/MagicMirror-backup-restore

                            Thanks, just made that change, found a couple more that needed attention. I also checked my history in this thread, I’ve posted my config before asking other questions so I was able to borrow some lines. Getting close now.

                            @MMRIZE said in MMM-CalendarExt3:

                            @bobbylx
                            CX3* series may not work on MIDORI, sorry. It’s too old browser, doesn’t support advanced modern JavaScript technologies.

                            I had been using it with Midori until just a few days ago when I decided to reload. It wasn’t fast or always the best, but I’m using a Pi zero W so limited on browsers right now. I’ll be picking up a Pi 3 or 4 soon then I’ll do this all over again.

                            1 Reply Last reply Reply Quote 0
                            • A Offline
                              aymen_a22
                              last edited by

                              Unsure why, but I keep getting this error message.

                              Is anyone able to assist if possible please?

                              Warning: vkCreateInstance: Found no drivers!
                              Warning: vkCreateInstance failed with VK_ERROR_INCOMPATIBLE_DRIVER
                              at CheckVkSuccessImpl (…/…/third_party/dawn/src/dawn/native/vulkan/VulkanError.cpp:88)
                              at CreateVkInstance (…/…/third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp:458)
                              at Initialize (…/…/third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp:344)
                              at Create (…/…/third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp:266)
                              at operator() (…/…/third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp:521)

                              S 1 Reply Last reply Reply Quote 1
                              • S Offline
                                sdetweil @aymen_a22
                                last edited by

                                @aymen_a22 bug in electron , nothing we can do… ignore it

                                Sam

                                How to add modules

                                learning how to use browser developers window for css changes

                                1 Reply Last reply Reply Quote 0
                                • P Offline
                                  princemaxwell
                                  last edited by

                                  Hello together,
                                  i have configured 8 calendars in the default calendar module. Three of them are from “i.cal.to” and five are my public iCloudcalendars.

                                  The default calendar app is loading them without errors, but MMM-CalendarExt3 has problems to view the iCloud entries.

                                  The mm-error.log shows:

                                  [19.03.2024 21:24.43.184] [ERROR] Calendar Error. Could not fetch calendar:  https://p63-caldav.icloud.com/published/2/MTA... TypeError: fetch failed
                                      at Object.fetch (node:internal/deps/undici/undici:11576:11) {
                                    cause: SocketError: other side closed
                                        at TLSSocket.onSocketEnd (node:internal/deps/undici/undici:9790:26)
                                        at TLSSocket.emit (node:events:526:35)
                                        at endReadableNT (node:internal/streams/readable:1359:12)
                                        at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
                                      code: 'UND_ERR_SOCKET',
                                      socket: {
                                        localAddress: '10.0.0.20',
                                        localPort: 37214,
                                        remoteAddress: undefined,
                                        remotePort: undefined,
                                        remoteFamily: undefined,
                                        timeout: undefined,
                                        bytesWritten: 639,
                                        bytesRead: 143898
                                      }
                                    }
                                  }
                                  

                                  while the mm-out.log shows:

                                  [19.03.2024 21:23.35.168] [INFO]  Calendar-Fetcher: Broadcasting 5 events from https://p63-caldav.icloud.com/published/2/MTA....
                                  [19.03.2024 21:23.35.332] [INFO]  updatenotification: You are using pm2 with MagicMirror
                                  [19.03.2024 21:23.35.333] [INFO]  Checking git for module: MMM-soccer
                                  [19.03.2024 21:23.35.462] [INFO]  Checking git for module: MMM-Planetarium
                                  [19.03.2024 21:23.35.591] [INFO]  Checking git for module: MMM-Globe2
                                  [19.03.2024 21:23.36.450] [INFO]  Calendar-Fetcher: Broadcasting 0 events from https://p63-caldav.icloud.com/published/2/MTA....
                                  [19.03.2024 21:23.36.513] [INFO]  Checking git for module: MagicMirror
                                  [19.03.2024 21:23.36.963] [INFO]  Newsfeed-Fetcher: Broadcasting 30 items.
                                  [19.03.2024 21:23.37.049] [INFO]  Newsfeed-Fetcher: Broadcasting 100 items.
                                  [19.03.2024 21:23.37.825] [INFO]  Calendar-Fetcher: Broadcasting 7 events from https://p63-caldav.icloud.com/published/2/MTA....
                                  [19.03.2024 21:24.03.308] [INFO]  Calendar-Fetcher: Broadcasting 8 events from https://p63-caldav.icloud.com/published/2/MTA....
                                  [19.03.2024 21:24.43.055] [INFO]  Calendar-Fetcher: Broadcasting 10 events from https://p29-caldav.icloud.com/published/2/ODA....
                                  [19.03.2024 21:24.43.503] [INFO]  Calendar-Fetcher: Broadcasting 1 events from https://i.cal.to/ical/77/....
                                  [19.03.2024 21:24.43.754] [INFO]  Calendar-Fetcher: Broadcasting 5 events from https://i.cal.to/ical/3/....
                                  [19.03.2024 21:24.43.781] [INFO]  Calendar-Fetcher: Broadcasting 2 events from https://i.cal.to/ical/61/....
                                  [19.03.2024 21:24.44.853] [INFO]  Calendar-Fetcher: Broadcasting 0 events from https://p63-caldav.icloud.com/published/2/MTA....
                                  [19.03.2024 21:24.45.665] [INFO]  Calendar-Fetcher: Broadcasting 7 events from https://p63-caldav.icloud.com/published/2/MTA....
                                  [19.03.2024 21:25.10.627] [INFO]  Calendar-Fetcher: Broadcasting 8 events from https://p63-caldav.icloud.com/published/2/MTA....
                                  

                                  I have increased the waitFetch, but it didn’t help.

                                  		{
                                  			module: "MMM-CalendarExt3",
                                  			position: "middle_center",
                                  			waitFetch: 32000,
                                  			disabled: false,
                                  		},
                                  

                                  Can someone help me?

                                  Max

                                  S M 3 Replies Last reply Reply Quote 0
                                  • S Offline
                                    sdetweil @princemaxwell
                                    last edited by

                                    @princemaxwell the error log says problem w the default calendar as ext3 gets it’s events there

                                    Sam

                                    How to add modules

                                    learning how to use browser developers window for css changes

                                    P 1 Reply Last reply Reply Quote 0
                                    • P Offline
                                      princemaxwell @sdetweil
                                      last edited by

                                      @sdetweil when i disable the MMM-CalendarExt3 module, the errors are gone.

                                      All calendars are working fine and loading quickly in default calendar module.

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

                                        @princemaxwell
                                        CX3 doesn’t connect or fetch calendar server. That error probably has been caused by default calendar module.

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

                                          @princemaxwell
                                          CX3*s do not use nodeJS at all, so they are not related to your error messages. The modules are executed on the browser level, not on the server-side node environment, so they could not affect server-side processes like calendar fetching.
                                          Your error message (UND_ERR_SOCKET) is caused by the undici node module; it may be used inside of the default calendar module to connect through HTTP/1.1. That error usually happens when the connection is closed by long waits or prior preemption.
                                          There is a weird thing. As far as I know, the default calendar module depends on node-ical, which uses axios instead of undici. So I wonder why and from where this error message comes.

                                          To make things simple clearly;

                                          1. Backup your current config.js in the safe area.
                                          2. Create a new config.js, and remove all other not-releated modules like MMM-Planetarium, MMM-soccer, … Leave only clock, calendar and MMM-CalendarExt3 modules.
                                          3. Begin with one or two calendars, not all the calendars.
                                          4. Try to execute MM again, and let’s see what happens.
                                          5. After confirmation that a small qty of calendars has no issue, add more calendars.
                                          6. After confirmation that there is no issue with the calendars, try adding more modules one by one.

                                          (A possible reason, I guess, is that your modules are racing to use the network/dest-server severely. For example, your calendars look being rescanned every minutes. You may need to rearrange the interval of the schedule.)

                                          S P 2 Replies Last reply Reply Quote 0
                                          • S Offline
                                            sdetweil @MMRIZE
                                            last edited by

                                            @MMRIZE calendar uses built in fetch to get the ics file. we do not have node-ical fetch it for us ( the prior ical lib did not provide fetch)

                                            Sam

                                            How to add modules

                                            learning how to use browser developers window for css changes

                                            M 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
                                            • 22
                                            • 23
                                            • 24
                                            • 25
                                            • 26
                                            • 34
                                            • 35
                                            • 24 / 35
                                            • 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