Search code examples
c#outlookexchangewebservicesextended-properties

Exchange Error on Calendar item update :- At least one recipient isn't valid


This is the code for accessing my outlook calendar items, change their subjects, add some extended property and update it self. But I am getting an error as

At least one recipient isn't valid

when I'm trying to update the item. I believe that there are no any invalid recipient in the item. Why am I getting this error and how am I overcome this. Please advice me. Thank you.

Here is the code :

public void AccessCalendarItems()
{
    // Specify a view that returns up to 1000 items.
    ItemView view = new ItemView(1000);

    // Specify a calendar view for returning instances between matching dates.
    DateTime startDate = new DateTime(2015, 5, 1);
    DateTime endDate = new DateTime(2015, 9, 1);
    CalendarView calView = new CalendarView(startDate, endDate);

    //string querystring = "Subject:'Doctor'";

    try
    {              
        // Find all the appointments in the calendar based on the dates set in the CalendarView. - Currently Disabled
        // Find all the appointments in the calendar based on the sunject content (get first 1000 items)
        int i = 123123;
        SearchFilter subjectFilter = new SearchFilter.ContainsSubstring(AppointmentSchema.Subject, "Doctor");
        FindItemsResults<Item> instanceResults = service.FindItems(WellKnownFolderName.Calendar, subjectFilter, view);

        foreach (Item item in instanceResults.Items)
        {
            Appointment appointment = item as Appointment;
            MessageBox.Show(appointment.Subject);
            appointment.Subject = appointment.Subject + " - KR";
            ExtendedPropertyDefinition extendedPropertyDefinition = new ExtendedPropertyDefinition(DefaultExtendedPropertySet.PublicStrings, "BookingKey", MapiPropertyType.String);
            appointment.SetExtendedProperty(extendedPropertyDefinition, i);
            appointment.Update(ConflictResolutionMode.AutoResolve);
            i++;
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show("Error: " + ex.Message);
    }
}

Thanks for helping, Kushan Randima.


Solution

  • Try using the overload version of Update that supports passing the SendInvitationsOrCancellationsMode enum, and pass SendInvitationsOrCancellationsMode.SendToNone. This will ensure that the server doesn't try to send meeting updates to attendees.