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 7.6k 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
      shall_
      last edited by

      I currently have an issue with MMM-CalendarEXT3 where since we have switched to british summer time (BST) Timezone, now all my all and multi day calendar events roll into the following day, i had the same issue last year, my only resolution was to switch back to DST timezone.

      I have trawled through the internet looking for a solution but i can’t find one. I have check my calendar timezone matches the Pi timezone. Plus tried various updates.

      a lot of the “solutions” I have seen required hiding the end date, which isn’t really a fix and wouldn’t work for my situation.

      Has anyone had this issue and found a good solution to this?

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

        I have managed to fix my issue, it seems the event transformer I was using (to colour mt events) may have been contradicting the fix.

        I removed the following from my event transformer which fixed the issue!

          e.startDate = new Date(e.start?.date || e.start?.dateTime).valueOf()
          e.endDate = new Date(e.end?.date || e.end?.dateTime).valueOf()
        
        1 Reply Last reply Reply Quote 0
        • S Offline
          sdetweil @shall_
          last edited by sdetweil

          @shall_ i have not heard of this problem before.

          can you provide the tinezone and a calendar entry from the ics file

          to get the ics file take yiur calendar_url and do

          curl -sL calendar_url >xxx.ics
          

          then edit xxx.ics (its just text)

          and find a BEGIN:VEVENT… END:VEVENT

          That has the matching date/time info

          xxx out any private data, but dont change anything else

          post back here

          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 said in MMM-CalendarExt3 BST Timezone issue:

            curl -sL calendar_url >xxx.ics

            Thanks for the reply. I am having trouble getting the ics file.
            i have ran the command in the terminal, all it does is return to the empty command line. is this supposed to open something?

            @sdetweil said in MMM-CalendarExt3 BST Timezone issue:

            then efit xxx.ics (its just text)

            I am not sure what you mean by this? Apologies i am still fairly green on this side of things.

            S 1 Reply Last reply Reply Quote 0
            • 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
                                • S Offline
                                  shall_ @MMRIZE
                                  last edited by

                                  @MMRIZE Thanks for your reply.
                                  The timed calendar events with a start/finish time show the correct time with no issue.

                                  The issue solely lies with all-day and multi-day events.
                                  All of these events during DST showed correctly, as soon as the timezone changed to BST. They now all rollover into the following day, so my 5 day events are now 6 days, 2 days are now 3, single days 2.

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

                                    @shall_
                                    Can you send me the ics file? (eouia0819@gmail.com)

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

                                      @MMRIZE i have emailed it over

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

                                        Is MagicMirror installed directly to your Pi, or are you running it inside a Docker or other container? I originally had a similar problem with my MM configs all set properly, and my system time set properly, but for some reason I needed to also force the Docker container to the correct timezone with environment variables in the docker-compose file:

                                        environment:
                                        - TZ=America/Los Angeles
                                        - SET_CONTAINER_TIMEZONE=true
                                        - CONTAINER_TIMEZONE=America/Los_Angeles
                                        

                                        Obviously you’d want a different timezone, and you’re probably running MM on your Pi without using Docker, but maybe it’ll help.

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

                                          @shall_ @alaric10000
                                          It happens when the event is regarded as FulldayEvent but not to start at 0 O’clock. I updated the module to fix it.
                                          https://github.com/MMRIZE/MMM-CalendarExt3/pull/141
                                          Update the module and check it.

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

                                            Finally I found what was wrong.

                                            The issue lies in the wrong parsing logic from the default calendar module about repeated full-day events with TimeZone by RRULE.

                                            If you have installed CX3 v1.8.2, Reinstall again or back to 1.8.1 (I rolled back again to 1.8.1)

                                            Then see this;
                                            https://github.com/MMRIZE/MMM-CalendarExt3/wiki/To-fix-wrong-repeated-fullday-event-displaying-(MM-2.27)

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

                                              @MMRIZE but… for full day, you ignore the time… or reset it to 00:00:00

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