Meeting Invite (ICS) with RSVP to Google Gmail/Calendar

Robert Beeman
Kilo Sage

We have just recently switched our domain from Outlook/Exchange to Google Apps. In Outlook, our meeting invites that come from OoB Changes worked just fine. Once we switched to Google, our users were just receiving a blank email with an attached ICS file that Gmail wouldn't parse. We have an older instance and I found that the change.calendar.integration email template had this line with a variable that resolved to nothing.

PRIORITY:${priority}

I checked a clean personal developer instance, and I saw that they now hardcode it to this:

PRIORITY:3

After I changed that line on our template, Gmail now parses it, but it just has an "Add to Calendar" option instead of a "Yes, No, Maybe" RSVP.

Current State:

Add_to_calendar.jpg

We noticed that without the RSVP, the invite does not get recognized on iPhones as a meeting request so it doesn't get automatically added to users' calendars. We are trying to get the Yes, No, Maybe options from an RSVP like this:

Desired State:

Yes_no_maybe.jpg

We are using the OoB change.calendar.integration template, which is:

BEGIN:VCALENDAR

PRODID:-//Service-now.com//Outlook 11.0 MIMEDIR//EN

VERSION:2.0

METHOD:REQUEST

BEGIN:VEVENT

ATTENDEE;ROLE=REQ-PARTICIPANT;RSVP=TRUE:MAILTO:${to}

ORGANIZER:MAILTO:${from}

DTSTART:${dtstart}

DTEND:${dtend}

LOCATION:${location}

TRANSP:OPAQUE

SEQUENCE:${sys_mod_count}

UID:${number}

DTSTAMP:${dtstamp}

DESCRIPTION:${description}

SUMMARY:${summary}

PRIORITY:3

X-MICROSOFT-CDO-IMPORTANCE:${priority}

STATUS:CONFIRMED

CLASS:PUBLIC

END:VEVENT

END:VCALENDAR

Has anyone got this to work properly with Google specifically?

15 REPLIES 15

German Alvarez2
Tera Expert

Let's try with side-thinking...



Have you checked if that line is no longer than 75 characters? (77 counting with CRLF)



At RFC5545 states that it's not possible a line larger than 75 (77) characters, and, without email, you are in 53...



Also, at RFC5545, chapter 3.1.1, there is an example, in which changes the order:


  ATTENDEE;RSVP=TRUE;ROLE=REQ-PARTICIPANT:mailto:jsmith@example.com



As you can see, maybe is a problem on how strict google is...



Finally, I'm not sure if VEVENTs accept attendees... But I'm not sure. Yes, it accepts


Hi German,



Thanks for the reply. I just tried changing the order, and I didn't have any better luck. I just went into our instances sent mail. This is the body text if it helps (with email addresses mask, but accurate letter count). So the attendee line is at 72 characters.



BEGIN:VCALENDAR


PRODID:-//Service-now.com//Outlook 11.0 MIMEDIR//EN


VERSION:2.0


METHOD:REQUEST


BEGIN:VEVENT


ATTENDEE;RSVP=TRUE;ROLE=REQ-PARTICIPANT:mailto:xxxxxxx@xxxxxxxxxxxxx.com


ORGANIZER:MAILTO:xxxxxxxxx@service-now.com


DTSTART:20151112T190407Z


DTEND:20151112T190409Z


LOCATION:


TRANSP:OPAQUE


SEQUENCE:2


UID:CHG0037810


DTSTAMP:20151112T190503Z


DESCRIPTION:(This message was automatically sent\, please do not reply)\nChange CHG0037810 is scheduled for this time period.   You have received this invitation because you are either the Assignee\, Subject Matter Expert\, Additional Resource\, or Recovery Contact.\n \n To view it\, please click the link below.\n \n Link: https://irvinedev.service-now.com/nav_to.do?uri=change_request.do%3Fsys_id=495d0e37132f0a001c7871522... \n Description:\n test\nNotification: Notify Change Calendar\n


SUMMARY:TIC Routine - Change Request: CHG0037810 has been approved - Calendar


PRIORITY:3


X-MICROSOFT-CDO-IMPORTANCE:


STATUS:CONFIRMED


CLASS:PUBLIC


END:VEVENT


END:VCALENDAR


Hi,



I don ´t have here the RFC book ... but... STATUS TAG? Check if this is the problem, that you're confirming something in the request, but I don't remember that this tag means this.



Also, Description field is too large, remember 75 rule ... use this:



_fixLineLenghts: function(text) {


  totalOctets = 0;


  var exit = ""


  for (var i = 0; i < text.length; i++) {


  exit += text[i];


  totalOctets++;




  if (text[i] == String.fromCharCode(13) || text[i] == String.fromCharCode(13)) {


  totalOctets = 0;


  }




  if (totalOctets == 75) {


  exit += String.fromCharCode(13, 10, 32)


  }




  }


  return exit;


},



Finally, try to create an event using google, and send it to your email, download the ics file, and strip it down, line by line, Also there are some webpages to create it online, create an example one, and try to understand the difference.



Hope it helps, tomorrow more


Hello German,



I tried hardcoding a short Short Description and Description so they are much under the 75 characters, and I have the same effect. Also, when I click on Add to Calendar, it does have the full information in it so its not being truncated.



I'll try going through a Google Calendar created ICS line by line, but I'll post their ICS here for reference:


BEGIN:VCALENDAR


PRODID:-//Google Inc//Google Calendar 70.9054//EN


VERSION:2.0


CALSCALE:GREGORIAN


METHOD:REQUEST


BEGIN:VEVENT


DTSTART:20151115T223000Z


DTEND:20151115T233000Z


DTSTAMP:20151112T214628Z


ORGANIZER;CN=Full Name:mailto:xxxxxxxxxxx@xxxxxxxxxxxxx.com


UID:orprgbsiga8otk1g04fcvlfais@google.com


ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;RSVP=TRUE


;CN=Full Name;X-NUM-GUESTS=0:mailto:xxxxxxxxxxx@xxxxxxxxxxxxx.com


ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=


TRUE;CN=xxxxxxx@xxxxxxxxxxxxx.com;X-NUM-GUESTS=0:mailto:xxxxxxx@xxxxxxxxxxx


xx.com


CREATED:20151112T214627Z


DESCRIPTION:View your event at https://www.google.com/calendar/event?action


=VIEW&eid=b3Jwcmdic2lnYThvdGsxZzA0ZmN2bGZhaXMgcmJlZW1hbkBpcnZpbmVjb21wYW55L


mNvbQ&tok=MjcjaXNhYmVsbGVlQGlydmluZWNvbXBhbnkuY29tYTc0NDdiYzU3Y2RjOWIwNGI3N


jM2NGM5YTcyNjhhN2RhZjc0ZDIwNw&ctz=America/Los_Angeles&hl=en.


LAST-MODIFIED:20151112T214627Z


LOCATION:TBD


SEQUENCE:0


STATUS:CONFIRMED


SUMMARY:Test


TRANSP:OPAQUE


END:VEVENT


END:VCALENDAR



It has the same STATUS:CONFIRMED. Also, I see what you mean about them line wrapping but still maintaining all of the data.



Thanks for looking into this. I very much appreciate it.