• Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
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.

Calendar not updating

Scheduled Pinned Locked Moved Unsolved Troubleshooting
95 Posts 4 Posters 61.5k Views 6 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.
  • S Offline
    sdetweil @sdetweil
    last edited by Jan 9, 2024, 5:37 PM

    @matt216 can u send me the curl ics from the baikal server where the events don’t show??
    (if you are willing)
    rename to .txt

    Sam

    How to add modules

    learning how to use browser developers window for css changes

    M 1 Reply Last reply Jan 10, 2024, 8:22 AM Reply Quote 0
    • M Offline
      matt216 @sdetweil
      last edited by Jan 10, 2024, 8:22 AM

      @sdetweil this is from the curl’d ics file, showing one of the events that will not display on the mirror display:

      BEGIN:VEVENT
      CREATED:20240109T161646Z
      DTEND;TZID=Europe/London:20240110T170000
      DTSTAMP:20240109T161647Z
      DTSTART;TZID=Europe/London:20240110T160000
      LAST-MODIFIED:20240109T161646Z
      SEQUENCE:0
      SUMMARY:test54321
      TRANSP:OPAQUE
      UID:156ED8F1-9BDA-43D2-BE7C-DDEFE18E95EF
      URL;VALUE=URI:
      X-APPLE-CREATOR-IDENTITY:com.apple.mobilecal
      X-APPLE-CREATOR-TEAM-IDENTITY:0000000000
      END:VEVENT
      

      I’d be happy to send over the contents of the ics file before events start, if that would be helpful? Far too much personal family info to send the whole thing, Im afraid (again, no offence intended)!

      S 1 Reply Last reply Jan 10, 2024, 1:03 PM Reply Quote 0
      • S Offline
        sdetweil @matt216
        last edited by Jan 10, 2024, 1:03 PM

        @matt216 I used that event in an ICS and it displays just fine.

        so I think this is not the events but some communications problem.

        the fact that you have it working with another local hosting server tells me it’s something other than the data

        Sam

        How to add modules

        learning how to use browser developers window for css changes

        1 Reply Last reply Reply Quote 0
        • M Offline
          matt216
          last edited by Jan 11, 2024, 11:22 AM

          Initial testing with the apache version of the baikal container looks promising (I’m currently having problems with the nginx version). Will continue testing along these lines…

          M 1 Reply Last reply Jan 12, 2024, 10:49 AM Reply Quote 0
          • M Offline
            matt216 @matt216
            last edited by matt216 Jan 12, 2024, 10:53 AM Jan 12, 2024, 10:49 AM

            OK interesting. I created a brand new calendar server. Empty. Added one event to it and configured the mirror calendar module to use this server. It shows the one single event ok. I added a second new event to the calendar and this also shows on the mirror. Seems to work as expected - new events are showing!

            Then I import my whole famlly calendar and run the same test. I now have 5 family events showing on the calendar. But if I add a new event that should show within my 5 events, it does not show. :(

            Debug logs >somefile.txt show the mirror is picking up the new event from the ics file, it’s just not showing on the display.

            1 Reply Last reply Reply Quote 0
            • M Offline
              matt216
              last edited by Jan 12, 2024, 2:05 PM

              @sdetweil I wonder if I could run a nightly cron job to purge the calendar module or something similar…? Not sure how the calendar fetcher works.
              It still feels like the calendar will load an ics link ok the first time, but is not displaying events created since that first load.
              Nightly purge and re-connect would be acceptable, I think. Any advice there?

              S 1 Reply Last reply Jan 12, 2024, 2:11 PM Reply Quote 0
              • S Offline
                sdetweil @matt216
                last edited by Jan 12, 2024, 2:11 PM

                @matt216 there is no way to programmatically trigger a calendar refresh. you have to restart mm

                but you could do this w pm2

                pm2 restart MagicMirror
                

                (or it’s number)

                in the current state does the broadcasting message indicate a change in number of events?

                Sam

                How to add modules

                learning how to use browser developers window for css changes

                M 1 Reply Last reply Jan 12, 2024, 3:07 PM Reply Quote 0
                • M Offline
                  matt216 @sdetweil
                  last edited by Jan 12, 2024, 3:07 PM

                  @sdetweil yes, the broadcasting event number increases by 1 when I add my new event, but the event does not show on the display.

                  S 1 Reply Last reply Jan 12, 2024, 3:09 PM Reply Quote 0
                  • S Offline
                    sdetweil @matt216
                    last edited by sdetweil Jan 12, 2024, 3:18 PM Jan 12, 2024, 3:09 PM

                    @matt216 can u show me the cal config again… as far as I can tell, the ONLY reason its not displayed is that the count (maximumEntries) clips off the total number of events

                    actually there are more conditions… in calendar.js
                    but they are all configurable

                    			for (const e in calendar) {
                    				const event = JSON.parse(JSON.stringify(calendar[e])); // clone object
                    
                    				if (this.config.hidePrivate && event.class === "PRIVATE") {
                    					// do not add the current event, skip it
                    					continue;
                    				}
                    				if (limitNumberOfEntries) { (//called with true) 
                    					if (event.endDate < maxPastDaysCompare) {
                    						continue;
                    					}
                    					if (this.config.hideOngoing && event.startDate < now) {
                    						continue;
                    					}
                    					if (this.config.hideDuplicates && this.listContainsEvent(events, event)) {
                    						continue;
                    					}
                    					if (--remainingEntries < 0) {
                    						break;
                    					}
                    				}
                    

                    and after filtering them out , apply the number of days limit and max entries limit

                    		// Limit the number of days displayed
                    		// If limitDays is set > 0, limit display to that number of days
                    		if (this.config.limitDays > 0) {
                    			let newEvents = [];
                    			let lastDate = today.clone().subtract(1, "days").format("YYYYMMDD");
                    			let days = 0;
                    			for (const ev of events) {
                    				let eventDate = moment(ev.startDate, "x").format("YYYYMMDD");
                    				// if date of event is later than lastdate
                    				// check if we already are showing max unique days
                    				if (eventDate > lastDate) {
                    					// if the only entry in the first day is a full day event that day is not counted as unique
                    					if (!this.config.limitDaysNeverSkip && newEvents.length === 1 && days === 1 && newEvents[0].fullDayEvent) {
                    						days--;
                    					}
                    					days++;
                    					if (days > this.config.limitDays) {
                    						continue;
                    					} else {
                    						lastDate = eventDate;
                    					}
                    				}
                    				newEvents.push(ev);
                    			}
                    			events = newEvents;
                    		}
                    
                    		return events.slice(0, this.config.maximumEntries);
                    

                    Sam

                    How to add modules

                    learning how to use browser developers window for css changes

                    M 1 Reply Last reply Jan 12, 2024, 3:33 PM Reply Quote 0
                    • M Offline
                      matt216 @sdetweil
                      last edited by Jan 12, 2024, 3:33 PM

                      @sdetweil

                      {
                      			module: "calendar",
                      			header: "--- Calendar testing ---",
                      			position: "top_left",
                      			config: {
                      				fetchInterval: 120000,
                      				timeFormat: 'absolute',
                      				maximumEntries: 5,
                      				broadcastPastEvents: false,
                      				calendars: [
                      					{
                      						url: 'https://my.cal.url/dav.php/calendars/family/default?export',
                      						auth: 	{
                      							user: 'family',
                      							pass: 'pass',
                      							method: 'basic'
                      							}
                      					}
                      					]
                      				}
                      		},
                      
                      

                      With the maximumEntries I currently have events showing several days in the future. When I am adding events to test this, I add the event to start just a few hours in the future so that it should show within the 5 events.

                      S 1 Reply Last reply Jan 12, 2024, 3:36 PM Reply Quote 0
                      • 1
                      • 2
                      • 5
                      • 6
                      • 7
                      • 8
                      • 9
                      • 10
                      • 7 / 10
                      7 / 10
                      • First post
                        67/95
                        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