none
Cannot get appointment for Calendar item which has changed from Tentative to Accept (EWS 2007) RRS feed

  • Question


  • Setup a room mailbox to automatically reply to meeting request

    Setup a delegate and have it accept tentatively until that delegate responses  

    Then book a meeting with that room.

    When I query EWS and get the itemEvents for the room I get an event for the appointment which shows the rooms Tentative response

    However after a delegate accepts the response I do not get an itemEvent which turns into an appointment indicating the room's status has changed from Tentative to Accept

    Code:

    I have my pull subscription set up and feed it into my GetEvents wrapper

    public Dictionary<PullSubscription, IEnumerable<ItemEvent>> GetEvents(PullSubscription subscription) {
                Dictionary<PullSubscription, IEnumerable<ItemEvent>> mailboxEvents = null;
    
                GetEventsResults eventsResults = subscription.GetEvents();
    
                if (eventsResults == null || eventsResults.ItemEvents.Count() == 0) {
                    return mailboxEvents;
                }
    
                mailboxEvents = new Dictionary<PullSubscription, IEnumerable<ItemEvent>>();
                mailboxEvents.Add(subscription, eventsResults.ItemEvents);
                return mailboxEvents;
            }

    I then take the list of ItemEvents and turn them into appointments to further process them

                Appointment appointment;
                try {
                    appointment= Appointment.Bind(exchangeService, itemEvent.ItemId.ToString());
                    ExtendedPropertyDefinition prop = new ExtendedPropertyDefinition(DefaultExtendedPropertySet.Appointment, 0x8238, MapiPropertyType.String);
                    PropertySet psPropset = new PropertySet(BasePropertySet.FirstClassProperties) { AppointmentSchema.Subject, AppointmentSchema.Body, prop }; //, AppointmentSchema.ModifiedOccurrences, AppointmentSchema.DeletedOccurrences, AppointmentSchema.Location, AppointmentSchema.Sensitivity               
                    appointment.Load(psPropset);
                } catch (Exception ex) {
                    
                    eventLogger.WriteToEventLog(EventLogEntryType.Warning, 108, "ExchangeDataAccess error GetAppointment(ItemEvent itemEvent): " + ex.Message);
                    appointment = null; ;
                }
                return appointment;

    *NOTE*

    This same call flow works fine for 2013 EWS.  I receive an itemEvent for that room mailbox which translates into an appointment that lets me know the room has now Accepted the request

    Its important to note that this same call flow works fine on 2013.  When a room's delegate allows the room to be scheduled it receives an event that the room has now Accepted.  


    Its important to note that this same call flow works fine on 2013.  When a room's delegate allows the room to be scheduled it receives an event that the room has now Accepted.  


    Its important to note that this same call flow works fine on 2013.  When a room's delegate allows the room to be scheduled it receives an event that the room has now Accepted.  


    Tuesday, October 28, 2014 8:42 PM