Introducing Agical.io, the smarter ICS file generator | Community
Skip to main content
SanfordWhiteman
New Participant
August 3, 2016
Question

Introducing Agical.io, the smarter ICS file generator

  • August 3, 2016
  • 13 replies
  • 13341 views

If you've used Marketo's dynamic ICS files (the "Calendar File" token type) you're probably not completely happy with 'em.

About a year ago, I published a (free) microservice that fills in the biggest gaps. With a little more attention on it lately (read: 2 people cared!), I blogged about it.

Read more on TEKNKL :: Blog →

13 replies

PascaleC
New Participant
August 29, 2024

Hi @sanfordwhiteman  Thanks for creating this tool. I would like to create a calendar ics file for a recurring teams meeting. 

Below is the URL I created but  I'm facing the following issues:

  • the time is not showing up correctly on my calendar. It should be at 5 pm CET time for one hour 
  • the link to the teams meeting (attachment) is not working properly, it seems to be cutting after "context".
  • I was hoping to have this meeting bi-weekly. Is that an option? 

 

https://ics.agical.io/?subject=PUG&description= PUG TEST&location=Online meeting&attach=https://teams.microsoft.com/l/meetup-join/19%3ameeting_MjAzZTBjNzctNjNhZi00ZTQwLThlYjEtMzVhZWFhNmJlYTQ3%40thread.v2/0?context=%7b%22Tid%22%3a%227894512c-f554-4de4-bff2-dec418150d4c%22%2c%22Oid%22%3a%226cfc80a5-968a-4322-951d-d4c611942c57%22%7d/&dtstart=2024-08-21T10:00:00Z&dtend=2024-08-21T11:00:00Z&duration=1H&reminder=15&recur=weekly&recuruntil=2024-10-20

 

 

thanks for your help again! 

Pascale Comaty
PascaleC
New Participant
September 2, 2024

Hi @sanfordwhiteman I figured out the issue with the timing and the biweekly. But the teams link invite is still breaking when i put it in the description but also in the attachment. Is there something I am doing wrong? 

 

Pascale Comaty
SanfordWhiteman
New Participant
September 2, 2024

Looks like you need to URL-encode the query string of the Teams link in addition to URL-encoding the entire link.

 

You need to URL-encode first because the query contains reserved characters (even in its "plain" form).

 

Then URL-encode the whole link on top of that because it's going into the query string of the Agical URL.

https://ics.agical.io/?subject=PUG&description= PUG TEST&location=Online meeting&attach=https%3A%2F%2Fteams.microsoft.com%2Fl%2Fmeetup-join%2F19%3Ameeting_MjAzZTBjNzctNjNhZi00ZTQwLThlYjEtMzVhZWFhNmJlYTQ3%40thread.v2%2F0%3Fcontext%3D%257B%2522Tid%2522%253A%25227894512c-f554-4de4-bff2-dec418150d4c%2522%252C%2522Oid%2522%253A%25226cfc80a5-968a-4322-951d-d4c611942c57%2522%257D&dtstart=2024-08-21T10:00:00Z&dtend=2024-08-21T11:00:00Z&duration=1H&reminder=15&recur=weekly&recuruntil=2024-10-20

 

Tom_Liolios4
New Participant
May 16, 2023

@sanfordwhiteman  hi there. The app agical.io seems to be down. As of this morning, all calendar links on our pages link to a 403 page.

 

Tried to reach out to Fortrabbit support, as this blog mentions it's hosted there: https://blog.teknkl.com/introducing-agical-io-the-smarter-ics-file-generator/

 

However, their support replied with: The domain you are mentioning agical.io does not seem to be registered here and also does not seem to have any DNS entries.

 

Could you verify whether this can be fixed? 

 

Thank you!

Tom

Darshil_Shah1
Community Manager
May 16, 2023

It seems to be working for me. I just tried the sample URL Sandy has posted in his Agical blog. Could you share the Agical URL for which you're getting the 403 error?

 

 

New Participant
February 16, 2021

any updates to this? i went to FortRabbit and couldn't find Agical. 

 

Hi @sanfordwhiteman 

 

Is there a new way to do this besides using a 3rd party app like AddEvent or using a tool Like Kalinka to create a link? Main problem we have with these options is that in AddEvent or using Kalinka you can only put in description to use the link they received in confirmation and reminder emails. - you can't being in their personalized login URL via token - {{member.webinar url:default=edit me}}

 

I have users who want a super easy way to do that will also bring in the login url token  like the exisiting calendar token method can,

 

Also, I didn't find Agical.io on FortRabbit so thinking no longer there??

 

It seems no one has a solution yet but I thought if anyone would it would be you!

 

Trish

 

 

SanfordWhiteman
New Participant
February 16, 2021

FortRabbit is just our hosting platform. Agical isn't not listed in their app directory or anything like that (didn't actually know they had one!).

 

Agical can do things none of these platforms can... the reason for Agical's alt_sep option is to allow {{member.webinar url}} to be used in ICS files/Gcal links.

New Participant
February 16, 2021

thanks @sanfordwhiteman 

 

the problem is having marketing users convert date/time to ISO to create tokens. I didn't find any converter out there that would do that for them if they entered in "normal date/time info."

 

I could create links for them but not really scalable - they are looking for a way they can create gcal links themselves easily - hence thinking about AddEvent or just using Kalinka and not being able to put in the webinar URL token. 

 

I was just hoping there was now a way for my users to do themselves without having to know about ISO, UTC times etc.   

 

right now they are just using provided Add to Calendar token but get complaints that they don't work for gcal. 

 

But starting to think no way for them to do themselves without. them learning some basic js stuff. 

 

thoughts?

 

Jyotsna_Gupta1
New Participant
December 13, 2019

Hi @Sanford Whiteman‌,

Pinging on agical again.

How can we set the recurrence to occur every fortnight? Or Can we set recurrence to occur after (n) days?

Thanks,

Jyotsna

SanfordWhiteman
New Participant
December 13, 2019

Fortnight, meaning every 2 weeks? Isn't that already an option

recur=daily&recurinterval=14‍
Scott_Springer
New Participant
August 22, 2019

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
New Participant
August 23, 2019

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-object-velocity.

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
New Participant
August 23, 2019

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/ 

Crystal_Pacheco
New Participant
August 20, 2019

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
New Participant
August 22, 2019

You want

preencoded=false

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

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

Crystal_Pacheco
New Participant
August 22, 2019

Excellent, thank you Sanford

Crystal_Pacheco
New Participant
July 24, 2019

Thanks again, but you said you changed GCal mode so it replaces \n with <br> automatically. It didn't change automatically. If i use %0D%0A it line breaks for Gcal, but breaks the ics description after %0D%0A. \n works for ics but /n prints in gcal. There isn't a one code solution for line breaks in both formats yet?

SanfordWhiteman
New Participant
July 24, 2019

If i use %0D%0A it line breaks for Gcal, but breaks the ics description after %0D%0A.

That was what I meant by "automatically" because that's an standard encoded \n, which is transformed to <br> for Gcal now.

On the ICS side it seems like you want a the standard encoded \n to become a double-encoded \n, so that it ends up as a literal string "\n" (not LF, but literal backslash-n) in the ICS file. Let me look at that.

Crystal_Pacheco
New Participant
July 24, 2019

I need to have line breaks in an event description for the calendar links in both outlook and google calendar. Looking to having my cake and eating it too. 

The event description is being used for both the google calendar link and the ics file link. \n works for Outlook but not for Google Calendar, <br> works for Google Calendar and not for Outlook. 

Linebreak codeWorks
<br>, %3Cbr%3EGoogleCal
\n, %0D%0A

ics

???

Both Google Cal and .ics


Is there one magical line break code thats compatible with both? Thanks for your time.

SanfordWhiteman
New Participant
July 24, 2019

Try it now with \n (real linebreak) in both places -- I changed GCal mode so it replaces \n with <br> automatically.

Crystal_Pacheco
New Participant
July 24, 2019

Thank you for your response, is the agical link still for : http://ics.agical.io/beta/alt_sep/  ? The gcal still printed \n

SanfordWhiteman
New Participant
May 30, 2019

You're embedding an unencoded URL in a URL, so you need to use the alternate query delimiter syntax (this isn't something specific to Agical, it's always the case).

Did you read the articles at https://blog.teknkl.com/tag/agical ?

Jyotsna_Gupta1
New Participant
May 30, 2019

Thanks for your quick reply.

In my case i am using 3 different URLs of ON24 in a description so {{member.webinar URL}} will not help. It is like a master calendar invite for the whole series (ON24 events are linked to subsequent programs). I am going to try this by encoding url as per your suggestion.

Could you please let me know the cause of endless occurrences of the event?

Thanks,

Jyotsna

SanfordWhiteman
New Participant
May 30, 2019

I'm not really talking about {{member.webinar URL}}. I'm talking about the general need to encode URLs-in-URLs, regardless of where they lead to.

I see spaces in your URLs, which indicates they haven't been run through an encoding step.

Could you please let me know the cause of endless occurrences of the event?

Fix the rest of the encoding up, then post a final rendered URL (with the tokens replaced by live data) as well as the template with the tokens shown.

Samantha_Cossum
New Participant
April 25, 2019

Hey Sanford,

I have a couple of questions that I couldn't fine addressed anywhere but if it is sorry for re-asking!

1. I'm having issues using the recur with Outlook. It works fine when I open the file into my iCal but when I open into Outlook it says all meetings occur in the past.

http://ics.agical.io/?subject=Submit+Your+Stats&organizer=Results+Creator+Bootcamp&reminder=0&location=simemembers.com&d…

2. Is there a way to set an end date for a recurring calendar? I tried setting the dtend but, at least in iCal, it just keeps going. The desire would be for the event to recur on the 1st every month and the final one to be on 02/01/2020. Here's what I tried:

http://ics.agical.io/?subject=Submit+Your+Stats&organizer=Results+Creator+Bootcamp&reminder=0&location=simemembers.com&d…

SanfordWhiteman
New Participant
April 25, 2019

Let's start with the first one.

The string "&replace00" looks pretty weird there. Are you sure you don't have a typo in the actual link sent to people (the sample URL you posted to the Nation is fine, but are you using {{lead.token}} or {{my.token}} in the email?). I'll do some more checking in Outlook if you tell me the exact version.

Samantha_Cossum
New Participant
April 25, 2019

No tokens just the straight link we are testing to use.

We're using outlook 2019 365 for Macs. Thanks for looking into this I really appreciate the help!