Read the statement by Michael Teeuw here.
CalendarExt3 - Event transformer wildcard
-
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 }
-
For completeness - here’s the answer:
if(ev.description && ev.description.search("YCBM") > -1) { ev.title = "Client" }
-
if (ev.title.search("YCBM") > -1) { ev.title = "Client" }
did you mean replace ycbm w client?
-
@BKeyport search is like indexOf
let r=ev.title.search("YCBM") or let r=ev.description.search("YCBM") if (r > -1) { ev.title = "Client" }
-
@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.
-
@BKeyport ok, what does ‘clients name’ look like
any examples?
-
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.
-
@BKeyport ok, this should work
if(ev.description.search("YCBM")>-1){ ev.title = "Client" }
you already have the
return evyou can
console.log(ev.description)
to make sure it is what you expectbetter if mmm-logging is installed to copy the browser log to startup log
-
@sdetweil perfection, thanks. Never even thought about direct replacement - only seen more complex solutions.
-
-
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 },
-
B BKeyport has marked this topic as unsolved on
-