Re: Introducing Agical.io, the smarter ICS file generator

Crystal_Pacheco
Level 4

Re: Introducing Agical.io, the smarter ICS file generator

It works for real, but I'm using the http://ics.agical.io/beta/alt_sep/  version 😕 

SanfordWhiteman
Level 10 - Community Moderator

Re: Introducing Agical.io, the smarter ICS file generator

The standard alt_sep (semicolon ";" separator instead of "&"):

   http://ics.agical.io/beta/alt_sep?subject=Meet%20{{company.Account%20Owner%20First%20Name}};descr... 

Works the same:

BEGIN:VCALENDAR
VERSION:2.0
METHOD:PUBLISH
PRODID:-//Microsoft Corporation//Outlook 11.0 MIMEDIR//EN
COMMENT:via ics.agical.io
CALSCALE:GREGORIAN
BEGIN:VEVENT
DTSTAMP:20190724T211440Z
UID:20190724T211440Z-1731900171@ics.agical.io
DTSTART:20161026T190000Z
DTEND:20161026T200000Z
ORGANIZER:Sandy
SUMMARY:Meet {{company.Account Owner First Name}}
BEGIN:VALARM
TRIGGER;VALUE=DURATION:-PT45M
DESCRIPTION:Agical Alarm: Meet {{company.Account Owner First Name}}
ACTION:DISPLAY
END:VALARM
DESCRIPTION:Take\na\nbreak
LOCATION:Sandy's Desk
ATTACH:http://www.example.com/
END:VEVENT
END:VCALENDAR‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

Are you doing something else in the URL?

Crystal_Pacheco
Level 4

Re: Introducing Agical.io, the smarter ICS file generator

I see what I did wrong. I was missing the beta I had http://ics.agical.io/alt_sep/ instead of http://ics.agical.io/beta/alt_sep/  . Thank you for all your help it works as it should using %0D%0A for line breaks in the description.

SanfordWhiteman
Level 10 - Community Moderator

Re: Introducing Agical.io, the smarter ICS file generator

OK, if it's working for you I'll roll that into production now.

Crystal_Pacheco
Level 4

Re: Introducing Agical.io, the smarter ICS file generator

Hi there,

I would like to have a url in the calendar description. The problem is the URL has UTM codes in there using & , it works perfectly for ics file but not for gcal. Even with %26 or & . It stops the description where the first & appears. I tried for both the beta/alt_sep version and the regular version of the agical link. 

 http://ics.agical.io/beta/alt_sep/?subject=This is a test: Again;description=Click here to attend: https://www.google.com/?utm_source=Overhere&utm_medium=testthis&utm_campaign=44444  You can test https://www.google.com/;dtstart=2019-09-05T15:00:00z;dtend=2019-09-05T16:00:00z;organizer=@this.com;location=Here;format=gcal;preencoded=true
 http://ics.agical.io/beta/alt_sep/?subject=This is a test: Again;description=Click%20here%20to%20attend%3A%20https%3A%2F%2Fwww.google.com%2F%2F15345%2F312187%3Futm_source=Overhere%26utm_medium=testthis%26utm_campaign=44444  You can test https%3A%2F%2Fwww.google.com;dtstart=2019-09-05T15:00:00z;dtend=2019-09-05T16:00:00z;organizer=@this.com;location=Here;format=gcal;preencoded=true

How do I make the & work here?

SanfordWhiteman
Level 10 - Community Moderator

Re: Introducing Agical.io, the smarter ICS file generator

You want

preencoded=false

because indeed you are not pre-URL-encoding the nested URL.

pastedImage_2.png

Please don't use /beta/, though, unless I've specifically mentioned that something is new/fixed in the Beta version only.

Crystal_Pacheco
Level 4

Re: Introducing Agical.io, the smarter ICS file generator

Excellent, thank you Sanford

Scott_Springer
Level 1

Re: Introducing Agical.io, the smarter ICS file generator

Hi Sanford, I've been testing your Agical.io service and it's very helpful to generate dynamic ICS files.

Could you tell me if there is a way to use the service without the "Z" GMT timezone hard coded in the ICS file. 

The reason is that we have date and time fields which are in coded in "local time" for a given client which already takes account Daylight Savings via the CRM. These fields work for text based appointment email reminders, but we would like to create an Add-To-Calendar function using local time.

Just for added context, we do have the DateTime ISO standard field, but its getting fed into Marketo via API which converts it to CST/CDT. To make this work for Australian time zones which also has Daylight Savings at a different time of year, I tried using the inbound/outbound time zone offset, and also tried manual offset, but i think there is no common reference point so that they adjust automatically all year round.

So far couldn't find a way to account for the two different daylight savings periods (Marketo USA + Australia), so I'm interested to know about the local time calendar option.

First time poster, I researched a lot on the topic, so hope this is right place. All other ideas welcome, we do a lot of appointment based communications, so I'll share our learnings as we go.

Scott_Springer
Level 1

Re: Introducing Agical.io, the smarter ICS file generator

So far, we have found a solution that will work following this method: https://nation.marketo.com/thread/47691-timezone-of-timestamps-on-custom-fields-of-opportunity-objec....

Somehow, our "outTimeZone" from the proposed solution needed to be "Etc/UTC" rather than the Australia time zone, perhaps this is due to our source data having a built-in offset already.

  1. #set ($inTimeZone = $date.getTimeZone().getTimeZone('US/Central') )    
  2. #set ($outTimeZone = $date.getTimeZone().getTimeZone('Australia/Sydney') )    

If I've understood this right, the US/Central time zone will automatically update the required offset when Daylight Savings occurs. And we don't need to worry about the Australian time zones, since they are already captured in ISO DateTime format which should be relative to the Marketo time zone.

This Agical.co solution is critical to our post-appointment reminder system, many thanks to the creator and the forum shares.

SanfordWhiteman
Level 10 - Community Moderator

Re: Introducing Agical.io, the smarter ICS file generator

Yep, the key is to remember that the absence of an explicit timezone doesn't mean a timezone isn't silently used as part of the conversion to a date.

That's why you need to explicitly state the tz in both directions. Also, for future reference, make sure to read this: https://blog.teknkl.com/velocity-days-and-weeks/