Skip to content

Instantly share code, notes, and snippets.

@DeMarko
Last active January 28, 2024 05:51
Show Gist options
  • Star 32 You must be signed in to star a gist
  • Fork 8 You must be signed in to fork a gist
  • Save DeMarko/6142417 to your computer and use it in GitHub Desktop.
Save DeMarko/6142417 to your computer and use it in GitHub Desktop.

Would it be possible to include an iCal file attachment to the Access-A-Ride advance notification emails with a 30 minute window from the specified pickup time (that is the window in which Access-A-Ride drivers need to arrive)?

For example: if my Access-A-Ride is supposed to pick me up at 10:34 am from 1000 Broadway Ave and then again at 8:00 pm from 900 Jay St., include a calendar event (a .ics file) that would look similar to the following, attached to the advance trip notification:

BEGIN:VCALENDAR
VERSION:2.0
CALSCALE:GREGORIAN
BEGIN:VEVENT
SUMMARY:Access-A-Ride Pickup
DTSTART;TZID=America/New_York:20130802T103400
DTEND;TZID=America/New_York:20130802T110400
LOCATION:1000 Broadway Ave.\, Brooklyn
DESCRIPTION: Access-A-Ride trip to 900 Jay St.\, Brooklyn
STATUS:CONFIRMED
SEQUENCE:3
BEGIN:VALARM
TRIGGER:-PT10M
DESCRIPTION:Pickup Reminder
ACTION:DISPLAY
END:VALARM
END:VEVENT
BEGIN:VEVENT
SUMMARY:Access-A-Ride Pickup
DTSTART;TZID=America/New_York:20130802T200000
DTEND;TZID=America/New_York:20130802T203000
LOCATION:900 Jay St.\, Brooklyn
DESCRIPTION: Access-A-Ride trip to 1000 Broadway Ave.\, Brooklyn
STATUS:CONFIRMED
SEQUENCE:3
BEGIN:VALARM
TRIGGER:-PT10M
DESCRIPTION:Pickup Reminder
ACTION:DISPLAY
END:VALARM
END:VEVENT
END:VCALENDAR

That way, Access-A-Ride customers on their smartphones or who use email + calendaring applications can include their pickups in their calendars and never be late for them!

The ics file described is in compliance with RFC 2445 although you can probably add the alarms in a more reliable way, I used the default VALARM but it doesn't seem to work everywhere.

BEGIN:VCALENDAR
VERSION:2.0
CALSCALE:GREGORIAN
BEGIN:VEVENT
SUMMARY:Access-A-Ride Pickup
DTSTART;TZID=America/New_York:20130802T103400
DTEND;TZID=America/New_York:20130802T110400
LOCATION:1000 Broadway Ave.\, Brooklyn
DESCRIPTION: Access-A-Ride to 900 Jay St.\, Brooklyn
STATUS:CONFIRMED
SEQUENCE:3
BEGIN:VALARM
TRIGGER:-PT10M
DESCRIPTION:Pickup Reminder
ACTION:DISPLAY
END:VALARM
END:VEVENT
BEGIN:VEVENT
SUMMARY:Access-A-Ride Pickup
DTSTART;TZID=America/New_York:20130802T200000
DTEND;TZID=America/New_York:20130802T203000
LOCATION:900 Jay St.\, Brooklyn
DESCRIPTION: Access-A-Ride to 1000 Broadway Ave.\, Brooklyn
STATUS:CONFIRMED
SEQUENCE:3
BEGIN:VALARM
TRIGGER:-PT10M
DESCRIPTION:Pickup Reminder
ACTION:DISPLAY
END:VALARM
END:VEVENT
END:VCALENDAR
@jowusu837
Copy link

Nice piece

@amckinnis
Copy link

This is a generic statement about ICS/iCal consumption by an email client: Different end clients will modify the iCal in different ways. Case in point, VALARM may or may not be over ridden by the client. The Google client (from my personal testing) will almost always overriide the sent iCal file - and replace it with some default VALARM. That happens regardless of the iCal creator ... i.e. Google to Google will still act in the same manner.

VALARM is tough use case. It is controlled by the end-client, and anything you create can be overridden once "consumed" by that client. If you want to ensure reminders are "sent" - it is best to do that outside of the iCal/VALARM.

@Atmiya735
Copy link

can we create the ics which will get auto confirmed without interaction of the user to confirm it.

@wavvdev
Copy link

wavvdev commented Jan 20, 2019

Doesn't this calendar file need to PRODID tag? Or am I missing something?

@kylemilloy
Copy link

I think the UID is required as per the RFC as well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment