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.

    CalendarExt3 - Event transformer wildcard

    Scheduled Pinned Locked Moved Solved Troubleshooting
    15 Posts 2 Posters 1.4k 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.
    • BKeyportB Offline
      BKeyport Module Developer
      last edited by

      I’m wanting to take a match of “YCBM” in the description, and make whatever the title is change to “Client”. Can someone help me write the if statement to add to my transformer?

      eventTransformer: (ev) => {
      	if (ev.title.search("🏠") > -1) {
      		ev.title = ev.title.replace("🏠 Personal Commitment", "Personal Event");
      		ev.color = 'yellow';
      	}
      	if (ev.title.search("✈ Flight") > -1) {
      		ev.title = ev.title.replace("✈ Flight", "Personal Event");
      		ev.color = 'yellow';
      	}
      return ev
      }
      

      The "E" in "Javascript" stands for "Easy"

      S 1 Reply Last reply Reply Quote 0
      • BKeyportB Offline
        BKeyport Module Developer @BKeyport
        last edited by

        For completeness - here’s the answer:

        	if(ev.description && ev.description.search("YCBM") > -1) {
               					 	ev.title = "Client"
         					} 
        

        The "E" in "Javascript" stands for "Easy"

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

          @BKeyport

          	if (ev.title.search("YCBM") > -1) {
          		ev.title = "Client"
                   }
          

          did you mean replace ycbm w client?

          Sam

          How to add modules

          learning how to use browser developers window for css changes

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

            @BKeyport search is like indexOf

                   let r=ev.title.search("YCBM")
            or
                   let r=ev.description.search("YCBM")
                    if (r > -1) {
                   		ev.title = "Client"
                     }
            

            Sam

            How to add modules

            learning how to use browser developers window for css changes

            BKeyportB 1 Reply Last reply Reply Quote 0
            • BKeyportB Offline
              BKeyport Module Developer @sdetweil
              last edited by

              @sdetweil What I meant is to replace the Client’s name with “Client” - it’s a wildcard.

              The “YCBM” is in the event description to help my booking manager (YouCanBook.ME) to track the bookings for me.

              The "E" in "Javascript" stands for "Easy"

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

                @BKeyport ok, what does ‘clients name’ look like

                any examples?

                Sam

                How to add modules

                learning how to use browser developers window for css changes

                BKeyportB 1 Reply Last reply Reply Quote 0
                • BKeyportB Offline
                  BKeyport Module Developer @sdetweil
                  last edited by BKeyport

                  @sdetweil 27799f75-889c-40e7-8345-527b308231cb-image.png

                  BEGIN:VEVENT
                  DTSTART:20250417T020000Z
                  DTEND:20250417T030000Z
                  DTSTAMP:20250215T064845Z
                  UID:sla6c0fbp2f6m06mscbt8961hg@google.com
                  CREATED:20250215T064259Z
                  DESCRIPTION:<p>Phone: +12015551212<br />Email: test@email.com<br />Notes: S
                   pecial Request</p>\n<p><a href="">Reschedule this booking</a><br /><a href="">Cance
                   l this booking</a></p>\n<p>YCBM link ref: e4c41a9e-28a5-4528-90e8-dd8a18c64
                   ae5</p>
                  LAST-MODIFIED:20250215T064333Z
                  SEQUENCE:0
                  STATUS:CONFIRMED
                  SUMMARY:Client Name
                  TRANSP:OPAQUE
                  END:VEVENT
                  

                  Web links removed, Test client deleted, so no clicky. The event title is solely the client name, but that can be adjusted if need be, I think.

                  The "E" in "Javascript" stands for "Easy"

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

                    @BKeyport ok, this should work

                    if(ev.description.search("YCBM")>-1){
                           		ev.title = "Client"
                     }
                    

                    you already have the
                    return ev

                    you can
                    console.log(ev.description)
                    to make sure it is what you expect

                    better if mmm-logging is installed to copy the browser log to startup log

                    Sam

                    How to add modules

                    learning how to use browser developers window for css changes

                    BKeyportB 1 Reply Last reply Reply Quote 0
                    • BKeyportB Offline
                      BKeyport Module Developer @sdetweil
                      last edited by

                      @sdetweil perfection, thanks. Never even thought about direct replacement - only seen more complex solutions.

                      The "E" in "Javascript" stands for "Easy"

                      BKeyportB 1 Reply Last reply Reply Quote 1
                      • S sdetweil has marked this topic as solved on
                      • BKeyportB Offline
                        BKeyport Module Developer @BKeyport
                        last edited by

                        I think we’re gonna have to call @MMRIZE in on this one. it worked initially - however, if the description is blank in any event, it’ll stop completely, and not process anything. Here’s what I got now.

                        				eventTransformer: (ev) => {
                        					if (ev.title.search("🏠") > -1) {
                        						ev.title = ev.title.replace("🏠 Personal Commitment", "Personal Event");
                        						ev.color = 'yellow';
                        					}
                        					if (ev.title.search("✈ Flight") > -1) {
                        						ev.title = ev.title.replace("✈ Flight", "Personal Event");
                        						ev.color = 'yellow';
                        					}
                        					if(ev.description.search("YCBM") > -1) {
                               					 	ev.title = "Client"
                         					} 
                        				return ev 
                        				},
                        

                        The "E" in "Javascript" stands for "Easy"

                        S 1 Reply Last reply Reply Quote 0
                        • BKeyportB BKeyport has marked this topic as unsolved on
                        • S Away
                          sdetweil @BKeyport
                          last edited by sdetweil

                          @BKeyport add the test

                          if (

                          ev.description && 
                          

                          Sam

                          How to add modules

                          learning how to use browser developers window for css changes

                          BKeyportB 1 Reply Last reply Reply Quote 0
                          • 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