none
How can our app accept RSVP choices (Accept/Reject etc) from an opened ics in Outlook (2010/2013 etc)? RRS feed

  • Question

  • Hi all,

    I'm building an app that invites people to a central place by inviting them via email with an .ics attachment.

    The current issue is that Outlook users open the ics which successfully adds the calendar event but they can't click Accept, Reject or Maybe from within Outlook. We currently require them to go to our app and accept.

    Are there any docs to show how we can accept these invitation replies. How does Outlook communicate with other calendar systems?

    Wednesday, June 3, 2015 3:50 AM

Answers

  • You need to open the attached .ics file as an AppointmentItem and call the Respond method which responds to a meeting request.

    Sub AcceptMeeting() 
     Dim myNameSpace As Outlook.NameSpace 
     Dim myFolder As Outlook.Folder 
     Dim myMtgReq As Outlook.MeetingItem 
     Dim myAppt As Outlook.AppointmentItem 
     Dim myMtg As Outlook.MeetingItem 
     
     Set myNameSpace = Application.GetNamespace("MAPI") 
     Set myFolder = myNameSpace.GetDefaultFolder(olFolderInbox) 
     Set myMtgReq = myFolder.Items.Find("[MessageClass] = 'IPM.Schedule.Meeting.Request'") 
     If TypeName(myMtgReq) <> "Nothing" Then 
     Set myAppt = myMtgReq.GetAssociatedAppointment(True) 
     Set myMtg = myAppt.Respond(olResponseAccepted, True) 
     myMtg.Send 
     End If 
    End Sub

    Wednesday, June 3, 2015 5:18 AM

All replies

  • You need to open the attached .ics file as an AppointmentItem and call the Respond method which responds to a meeting request.

    Sub AcceptMeeting() 
     Dim myNameSpace As Outlook.NameSpace 
     Dim myFolder As Outlook.Folder 
     Dim myMtgReq As Outlook.MeetingItem 
     Dim myAppt As Outlook.AppointmentItem 
     Dim myMtg As Outlook.MeetingItem 
     
     Set myNameSpace = Application.GetNamespace("MAPI") 
     Set myFolder = myNameSpace.GetDefaultFolder(olFolderInbox) 
     Set myMtgReq = myFolder.Items.Find("[MessageClass] = 'IPM.Schedule.Meeting.Request'") 
     If TypeName(myMtgReq) <> "Nothing" Then 
     Set myAppt = myMtgReq.GetAssociatedAppointment(True) 
     Set myMtg = myAppt.Respond(olResponseAccepted, True) 
     myMtg.Send 
     End If 
    End Sub

    Wednesday, June 3, 2015 5:18 AM
  • Thanks for the reply!

    It occurred to me that I forgot to mention that we're building a SaaS app built using node.js.

    Wednesday, June 3, 2015 5:46 AM
  • In that case you have to process all things in the app without touching Outlook.
    Wednesday, June 3, 2015 5:57 AM