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.

    Issue with Outlook recurring events

    Scheduled Pinned Locked Moved Solved Troubleshooting
    13 Posts 2 Posters 274 Views 2 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.
    • W Offline
      WallysWellies
      last edited by

      Hello all.

      I’m having some issues with Outlook calendar events in the default calendar app and I think I have narrowed it down to a daylight savings issue (bug?):

      3d07cf41-5b10-497b-b80c-872291a2ffd8-image.png

      As you can see above, the recurring rule is expiring the evening before the event so these events do not show in my calendar.

      I realise this is looking like a Microsoft issue but I wondered if anyone had encountered this before and knows how to fix it?

      One thing that appears to work is setting my timezone to UTC then re-saving the event which I guess I can do unless someone has a better idea… Doing this sets the “UNTIL” time to 00:00 on the day of the actual event.

      S 2 Replies Last reply Reply Quote 0
      • S Away
        sdetweil @WallysWellies
        last edited by sdetweil

        @WallysWellies this fix sets the rrule:until to start of day+1 day for fullday events (tested in LA, Chicago, London and Sydney timezones)

        add three lines
        modules/default/calendarcalendarfetcherutils.js

        					event.start = rule.options.dtstart;  // old code line 294
                                                // insert these three lines
        					if((rule.options.until != undefined) && CalendarFetcherUtils.isFullDayEvent(event)){
        						Log.debug("fixup rrule until")
        						rule.options.until = new Date(new Date(moment(rule.options.until).startOf("day").add(1,"day")).getTime())
        					}
        
        					Log.debug("fix rrule start=", rule.options.dtstart); // old code line 301

        Sam

        How to add modules

        learning how to use browser developers window for css changes

        W 1 Reply Last reply Reply Quote 0
        • S Away
          sdetweil @WallysWellies
          last edited by sdetweil

          @WallysWellies if the event is a full day event(DTSTART:VALUE=DATE) then the rrule until should also only be date

          also full day events are considered local timezone only

          i dont think the parser (not our code) validates that

          oh, then rrule processes it ( also not our code)

          we call rrule.between() to get the list of events that match the rule between a year ago and an year forward(by default)

          Sam

          How to add modules

          learning how to use browser developers window for css changes

          1 Reply Last reply Reply Quote 0
          • S Away
            sdetweil @WallysWellies
            last edited by

            @WallysWellies do you have that full VEVENT so i can look at its processing in both places as i work on both

            Sam

            How to add modules

            learning how to use browser developers window for css changes

            W 1 Reply Last reply Reply Quote 0
            • W Offline
              WallysWellies @sdetweil
              last edited by

              @sdetweil Here is a problematic event:

              BEGIN:VEVENT
              DESCRIPTION:\n
              RRULE:FREQ=YEARLY;UNTIL=20250504T230000Z;INTERVAL=1;BYMONTHDAY=5;BYMONTH=5
              UID:040000008200E00074C5B7101A82E00800000000DAEF6ED30D9FDA01000000000000000
               010000000D37F812F0777844A93E97B96AD2D278B
              SUMMARY:Person A's Birthday
              DTSTART;VALUE=DATE:20250505
              DTEND;VALUE=DATE:20250506
              CLASS:PUBLIC
              PRIORITY:5
              DTSTAMP:20250428T133000Z
              TRANSP:TRANSPARENT
              STATUS:CONFIRMED
              SEQUENCE:0
              LOCATION:
              X-MICROSOFT-CDO-APPT-SEQUENCE:0
              X-MICROSOFT-CDO-BUSYSTATUS:FREE
              X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
              X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
              X-MICROSOFT-CDO-IMPORTANCE:1
              X-MICROSOFT-CDO-INSTTYPE:1
              X-MICROSOFT-DONOTFORWARDMEETING:FALSE
              X-MICROSOFT-DISALLOW-COUNTER:FALSE
              X-MICROSOFT-REQUESTEDATTENDANCEMODE:DEFAULT
              X-MICROSOFT-ISRESPONSEREQUESTED:FALSE
              END:VEVENT
              

              And here is a working event:

              BEGIN:VEVENT
              DESCRIPTION:\n
              RRULE:FREQ=YEARLY;UNTIL=20250503T000000Z;INTERVAL=1;BYMONTHDAY=3;BYMONTH=5
              UID:040000008200E00074C5B7101A82E00800000000591C9B3BAA0EDA01000000000000000
               01000000005E6F2F9D20F7947B69F54FBF0794A6D
              SUMMARY:Person B's Birthday
              DTSTART;VALUE=DATE:20250503
              DTEND;VALUE=DATE:20250504
              CLASS:PUBLIC
              PRIORITY:5
              DTSTAMP:20250428T133000Z
              TRANSP:TRANSPARENT
              STATUS:CONFIRMED
              SEQUENCE:0
              LOCATION:
              X-MICROSOFT-CDO-APPT-SEQUENCE:0
              X-MICROSOFT-CDO-BUSYSTATUS:FREE
              X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
              X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
              X-MICROSOFT-CDO-IMPORTANCE:1
              X-MICROSOFT-CDO-INSTTYPE:1
              X-MICROSOFT-DONOTFORWARDMEETING:FALSE
              X-MICROSOFT-DISALLOW-COUNTER:FALSE
              X-MICROSOFT-REQUESTEDATTENDANCEMODE:DEFAULT
              X-MICROSOFT-ISRESPONSEREQUESTED:FALSE
              END:VEVENT
              

              Thanks for taking a look.

              S 1 Reply Last reply Reply Quote 0
              • S Away
                sdetweil @WallysWellies
                last edited by

                @WallysWellies thanks, forgot to ask what timezone you are in

                Sam

                How to add modules

                learning how to use browser developers window for css changes

                W 1 Reply Last reply Reply Quote 0
                • W Offline
                  WallysWellies @sdetweil
                  last edited by

                  @sdetweil I’m in the UK. Since it’s British summer time I don’t know if that means I’m UTC+1 or something else… GMT, BST… Stupid changing clocks!

                  S 1 Reply Last reply Reply Quote 1
                  • S Away
                    sdetweil @WallysWellies
                    last edited by sdetweil

                    @WallysWellies this fix sets the rrule:until to start of day+1 day for fullday events (tested in LA, Chicago, London and Sydney timezones)

                    add three lines
                    modules/default/calendarcalendarfetcherutils.js

                    					event.start = rule.options.dtstart;  // old code line 294
                                                            // insert these three lines
                    					if((rule.options.until != undefined) && CalendarFetcherUtils.isFullDayEvent(event)){
                    						Log.debug("fixup rrule until")
                    						rule.options.until = new Date(new Date(moment(rule.options.until).startOf("day").add(1,"day")).getTime())
                    					}
                    
                    					Log.debug("fix rrule start=", rule.options.dtstart); // old code line 301

                    Sam

                    How to add modules

                    learning how to use browser developers window for css changes

                    W 1 Reply Last reply Reply Quote 0
                    • W Offline
                      WallysWellies @sdetweil
                      last edited by

                      @sdetweil Thank you - that has fixed my upcoming calendar event 👍

                      S 3 Replies Last reply Reply Quote 1
                      • S Away
                        sdetweil @WallysWellies
                        last edited by

                        @WallysWellies cool, i will submit as a change for next release

                        Sam

                        How to add modules

                        learning how to use browser developers window for css changes

                        1 Reply Last reply Reply Quote 1
                        • S Away
                          sdetweil @WallysWellies
                          last edited by

                          @WallysWellies you will need to use my upgrade script and reply no to keeping the changed files
                          see https://github.com/sdetweil/MagicMirror_scripts

                          note upgrade is a two part process
                          test, do nothing (highlight exposed files, if any)
                          do upgrade

                          Sam

                          How to add modules

                          learning how to use browser developers window for css changes

                          1 Reply Last reply Reply Quote 1
                          • S sdetweil has marked this topic as solved
                          • 1
                          • 2
                          • 1 / 2
                          • 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