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

MMM-CalendarEXT2 - Calendar Read Failing When Time Value Is Missing from ics file

Scheduled Pinned Locked Moved Solved Troubleshooting
28 Posts 3 Posters 9.8k Views 3 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.
  • E Offline
    edd189 @sdetweil
    last edited by Jun 10, 2023, 10:01 PM

    @sdetweil Is this right?

    ICAL.Time.fromString = function fromString(aValue) {
    if (aValue.length > 10) {
    return ICAL.Time.fromDateTimeString(aValue);
    Log.log([CALEXT2] calendar: >> greater 10);
    Console.log($avalue.length );
    } else {
    return ICAL.Time.fromDateString(aValue);
    Log.log([CALEXT2] calendar: >> less 10);
    Console.log($avalue.length );
    }
    };

    S 1 Reply Last reply Jun 10, 2023, 10:04 PM Reply Quote 0
    • S Offline
      sdetweil @edd189
      last edited by Jun 10, 2023, 10:04 PM

      @edd189 said in MMM-CalendarEXT2 - Calendar Read Failing When Time Value Is Missing from ics file:

      Log.log([CALEXT2] calendar: >> greater 10);
      Console.log($avalue.length );

      no… those new statements are after the return… so will never be executed

      Log.log and console.log are the same here …

      Sam

      How to add modules

      learning how to use browser developers window for css changes

      E 2 Replies Last reply Jun 10, 2023, 10:49 PM Reply Quote 0
      • E Offline
        edd189 @sdetweil
        last edited by Jun 10, 2023, 10:49 PM

        @sdetweil

        Thanks for your help. Not sure I’m finding the right place where the call is made to fromDateTimeString. I found a few more instances in a file under the build directory. I was previously only looking under the lib directory.

        Not sure how I missed it, but I need to take a break for the evening. Pick it back up later.

        1 Reply Last reply Reply Quote 0
        • E Offline
          edd189 @sdetweil
          last edited by Jun 11, 2023, 1:12 AM

          @sdetweil

          Look at file design.js here: https://github.com/kewisch/ical.js/tree/main/lib/ical

          What does line 401 do? The call on line 403 is where I get the error. I’m not familiar enough with java to know what decorate means.

          S 1 Reply Last reply Jun 11, 2023, 1:40 AM Reply Quote 0
          • S Offline
            sdetweil @edd189
            last edited by Jun 11, 2023, 1:40 AM

            @edd189 sorry. no idea

            Sam

            How to add modules

            learning how to use browser developers window for css changes

            E 1 Reply Last reply Jun 11, 2023, 2:42 AM Reply Quote 0
            • E Offline
              edd189 @sdetweil
              last edited by Jun 11, 2023, 2:42 AM

              @sdetweil

              Ok, plan B – read the ICS files, save them locally, append the time to the DTSTART and DTEND fields.

              Create a script to do this automatically every 24 hours.

              Wish me luck! I’m in over my head, but its kinda fun.

              Any advice? I am running this on linux, so figured I can just run a cronjob every 24 hours. What’s the best service to language to use to write such a simple script?

              S 1 Reply Last reply Jun 11, 2023, 10:56 AM Reply Quote 1
              • S Offline
                sdetweil @edd189
                last edited by Jun 11, 2023, 10:56 AM

                @edd189 people write in python, I do most of mine in bash shell.

                Sam

                How to add modules

                learning how to use browser developers window for css changes

                E 1 Reply Last reply Jun 12, 2023, 2:12 AM Reply Quote 0
                • M Offline
                  MMRIZE
                  last edited by Jun 11, 2023, 5:25 PM

                  Sorry for late reply. I was outside in holidays. I’ll study what your issue is tomorrow.

                  1 Reply Last reply Reply Quote 0
                  • E Offline
                    edd189 @sdetweil
                    last edited by Jun 12, 2023, 2:12 AM

                    @sdetweil

                    I went with an sh script. I run this every morning at 3am. Does the trick by fixing the calendar file (appends a made up time to the end where its missing) and saving locally. I had to point CX2 to a local file instead of the webcal link, but that is no problem.

                    The worst part was that the two calendars had slightly different formatting. The US Holidays had some sort of hidden return character at the end of the string, and it took me forever to figure out how awk should deal with that.

                    #!/bin/sh

                    #download files
                    curl “https://www.calendarlabs.com/ical-calendar/ics/76/US_Holidays.ics” --output us_holidays_raw.ics
                    curl “https://api.team-manager.gc.com/ics-calendar-documents/user/6e0678b2-2e99-44ce-9e3a-e32ac9ff6e78.ics?teamId=secret_id_string&token=secret_id_string” --output baseball_raw.ics

                    #clean files
                    awk ‘{if(($1 ~ /DTSTART/) && length($1)==16) {print $0"T050000Z"} else {print $0}}’ dirtdawgs_raw.ics > baseball_awk1.ics
                    awk ‘{if(($1 ~ /DTEND/) && length($1)==14) {print $0"T195959Z"} else {print $0}}’ dirtdawgs_awk1.ics > baseball_awk2.ics

                    awk ‘{if(($1 ~ /DTSTART/) && length($1)==17) {print substr($0,1,16)“T050000Z”} else {print $0}}’ us_holidays_raw.ics > us_holidays_awk1.ics
                    awk ‘{if(($1 ~ /DTEND/) && length($1)==15) {print substr($0,1,14)“T195959Z”} else {print $0}}’ us_holidays_awk1.ics > us_holidays_awk2.ics

                    #copy and delete temp files
                    /bin/cp us_holidays_awk2.ics us_holidays.ics
                    /bin/cp baseball_awk2.ics baseball.ics
                    /bin/cp us_holidays.ics /home/edd/MagicMirror/config/us_holidays.ics
                    /bin/cp dirtdawgs.ics /home/edd/MagicMirror/config/baseball.ics
                    rm us_holidays_awk1.ics
                    rm us_holidays_awk2.ics
                    rm baseball_awk1.ics
                    rm baseball_awk2.ics

                    exit

                    S 1 Reply Last reply Jun 12, 2023, 3:16 AM Reply Quote 1
                    • S Offline
                      sdetweil @edd189
                      last edited by Jun 12, 2023, 3:16 AM

                      @edd189 nice work!

                      Sam

                      How to add modules

                      learning how to use browser developers window for css changes

                      1 Reply Last reply Reply Quote 1
                      • 1
                      • 2
                      • 3
                      • 1 / 3
                      1 / 3
                      • First post
                        20/28
                        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