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 BST Timezone issue

    Scheduled Pinned Locked Moved Solved Troubleshooting
    26 Posts 4 Posters 5.9k Views 4 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 @shall_
      last edited by

      @shall_ sorry efit was edit, new phone and thumb havent become friends yet

      by default most linux commands produce NO output when successful. they were designed back
      in the teletype terminal world, where every character took a long time.

      so, this means the ics file was downloaded as requested

      Sam

      How to add modules

      learning how to use browser developers window for css changes

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

        @sdetweil
        Ok that makes sense. I have found the generated ics file, however it has a 0 file size and when I open it with text editor it is just an empty file. The file type is listed as “Outlook.File.ics.15”

        I am using google calendar urls, not sure if that makes any difference? i have tried 3 different urls that I use with the module.

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

          @shall_ weird. are using the same url in mm config?

          you might also try it in a browser on your pc. it should download the ics (downloads folder)

          Sam

          How to add modules

          learning how to use browser developers window for css changes

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

            @sdetweil yes i copied each url straight from my config file.
            I tried opening them in the browser, it downloaded as described but is still an empty file.

            I found a work around by just downloading the ics right from google calendar, this is an example of one of the events. with the timezone tied in.

            RPi timezone is set to GMT +1 Europe/London (BST)

            BEGIN:VCALENDAR
            PRODID:-//Google Inc//Google Calendar 70.9054//EN
            VERSION:2.0
            CALSCALE:GREGORIAN
            METHOD:PUBLISH
            X-WR-CALNAME:Work
            X-WR-TIMEZONE:Europe/London
            BEGIN:VEVENT
            DTSTART;VALUE=DATE:20170626
            DTEND;VALUE=DATE:20170701
            RRULE:FREQ=WEEKLY;WKST=MO;UNTIL=20190331T235959Z;INTERVAL=2;BYDAY=MO
            DTSTAMP:20240403T224236Z
            UID:15dcXXXXXXujb@google.com
            CREATED:20171216T163405Z
            LAST-MODIFIED:20190330T214112Z
            SEQUENCE:0
            STATUS:CONFIRMED
            SUMMARY:Earlies
            TRANSP:TRANSPARENT
            END:VEVENT
            
            
            S S 2 Replies Last reply Reply Quote 0
            • S Offline
              shall_ @sdetweil
              last edited by

              @sdetweil this is another entry added this week with the issue.

              BEGIN:VEVENT
              DTSTART;VALUE=DATE:20240402
              DTEND;VALUE=DATE:20240403
              DTSTAMP:20240403T224236Z
              UID:70rjap1gXXXXX6oo68db56o@google.com
              CREATED:20240402T105500Z
              LAST-MODIFIED:20240402T105500Z
              SEQUENCE:0
              STATUS:CONFIRMED
              SUMMARY:12 hours 
              TRANSP:OPAQUE
              END:VEVENT
              
              
              S 1 Reply Last reply Reply Quote 0
              • S Offline
                sdetweil @shall_
                last edited by

                @shall_ ok. weird. anyhow

                we dont process anything other than vevents. so the garbage at the top which has the x-wr timezone, we dont see.

                so the calendar will be processed in the current system timezone.

                if you want to see the debug of processing, add the ,“DEBUG” to the end of the logLevel property in config.js

                and then start mm like this

                npm start >somefile.txt 2>&1
                

                wait til the cal is up, then ctrl-q quit mm and examine the somefile.txt

                Sam

                How to add modules

                learning how to use browser developers window for css changes

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

                  @shall_ because there is no timezone specified on the entry, it will be processed in the current system timezone

                  Sam

                  How to add modules

                  learning how to use browser developers window for css changes

                  1 Reply Last reply Reply Quote 0
                  • S Offline
                    shall_ @shall_
                    last edited by

                    @sdetweil

                    I will have to pick this up again tomorrow. i will run the debug when i get home from work.
                    is there anything I am looking for in particular?

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

                      @shall_ because there is a rrule
                      the string
                      dates: …
                      documents the dates returned from the rrule.between function… yesterday plus 1 year
                      is the window we create to get recurring events

                      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
                        last edited by

                        @shall_
                        CX3 doesn’t parse ics file directly, so probably the default calendar app (or any event provider) must have responsibility.

                        But for an instant solution, you can use preProcessor or event payload to make a hotfix by force.

                        BEFORE
                        f8b31b93-5912-40c9-a64a-a253eb1a0720-image.png

                        /* in your CX3 module config */
                        preProcessor: (event) => {
                        	if (["SomeCalendarName", "AnotherCalendarName"].includes(event.calendarName)) {
                        		event.startDate = Number(event.startDate) - 1000 * 60 * 60
                        		event.endDate = Number(event.endDate) - 1000 * 60 * 60
                        	}
                        	return event
                        }
                        

                        AFTER
                        6d5ddf39-d970-4795-933f-de371889024c-image.png

                        If all your calendar has that issue, you can omit if statement.

                        preProcessor: (event) => {
                        	event.startDate = Number(event.startDate) - 1000 * 60 * 60
                        	event.endDate = Number(event.endDate) - 1000 * 60 * 60
                        	return event
                        }
                        
                        S 1 Reply Last reply Reply Quote 0
                        • 1
                        • 2
                        • 3
                        • 1 / 3
                        • 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