Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

EWS Java API: The meeting request is out of date. The calendar couldn't be updated

I am using the Microsoft EWS Java API to create and accept appointments on behalf of some users. The way I am doing this is by sending the meeting request and then setting up inbox watchers on the recipient's inbox and accepting the incoming MeetingRequest item:

import microsoft.exchange.webservices.data.core.service.item.MeetingRequest;

void accept(MeetingRequest request) {
  assert(!request.getIsOutOfDate());
  request.accept(false);
}

However, I get this error when I try to accept the meeting request:

microsoft.exchange.webservices.data.core.exception.service.remote.ServiceResponseException: The meeting request is out of date. The calendar couldn't be updated.
    at microsoft.exchange.webservices.data.core.response.ServiceResponse.internalThrowIfNecessary(ServiceResponse.java:278)
    at microsoft.exchange.webservices.data.core.response.ServiceResponse.throwIfNecessary(ServiceResponse.java:267)
    at microsoft.exchange.webservices.data.core.request.MultiResponseServiceRequest.execute(MultiResponseServiceRequest.java:165)
    at microsoft.exchange.webservices.data.core.ExchangeService.internalCreateResponseObject(ExchangeService.java:270)
    at microsoft.exchange.webservices.data.core.service.response.ResponseObject.internalCreate(ResponseObject.java:120)
    at microsoft.exchange.webservices.data.core.service.response.CalendarResponseMessageBase.calendarSave(CalendarResponseMessageBase.java:98)
    at microsoft.exchange.webservices.data.core.service.item.MeetingRequest.internalAccept(MeetingRequest.java:218)
    at microsoft.exchange.webservices.data.core.service.item.MeetingRequest.accept(MeetingRequest.java:184)

This corresponds to this error: ErrorMeetingRequestIsOutOfDate. I looked at MSDN for this error and could not find why this error might be happening to me.

What am I doing wrong?

like image 358
pathikrit Avatar asked Jan 07 '16 19:01

pathikrit


People also ask

How do I update appointments and meeting requests using the EWS API?

You can use the Microsoft Exchange Web Services (EWS) Managed API to update appointments and meeting requests. This topic covers the basic scenarios for updating appointments and meeting requests. Some advanced scenarios might require that you update the time zone of appointments and meeting requests.

What is the EWS managed API request and response XML?

The request and response XML in the following examples correspond to calls made by the EWS Managed API code in Create an appointment by using the EWS Managed API. The request and response XML that verifies that the appointment items are in the calendar folder are shown as well.

What happens when the meeting organizer updates a meeting?

If the meeting organizer updates a meeting, changes to the meeting will be reflected on his or her calendar and an updated meeting request will be sent to attendees as specified by the Update method that is used to update the meeting.

What is a meeting request in Salesforce?

A meeting request is just an appointment that has attendees. You can convert an appointment into a meeting request by adding required attendees, optional attendees, or resources to the appointment, as shown in the following example. Save the updated appointment or meeting request.


1 Answers

Speaking strictly from the Outlook client end of the question here is a list of (albeit outdated) potentially useful reasons why that error would be generated.

https://support.microsoft.com/en-us/kb/899704

Repeat events, where the initial event is in the past is a common scenario (most common to my experience) when the whole process is manual (i.e. a new attendee added after the first repeated event) though there are several more in the list that may apply here.

Edit - I mention the repeats here as a potential trip up for your code. Does the getIsOutOfDate() check the current event or the initial start of the pattern...

The MSKB is littered with this as an ongoing issue, both programmatically and scenarios simply from the Outlook client GUI.

Edit again - That is to say, you aren't doing anything wrong programmatically, there long and frustrating history from the front end as well. You may need to trap more than just ErrorCalendarMeetingRequestIsOutOfDate to avoid it.

http://www.experts-exchange.com/questions/24578557/This-Request-is-Out-of-Date.html

(sorry number of links limited by my profile)

like image 183
S.Pote Avatar answered Oct 22 '22 11:10

S.Pote