I am developing a calendar for my firm that synchronizes with Outlook Calendar.

Atm I can:

* import appointments from Outlook and show them in my calendar
* update my appointments when Outlook appointments get updated
* create Outlook appointments when appointments get created in my calendar

The only issue I have is updating/deleting Outlook appointments when my appointments update/delete.

I have the GlobalAppointmentID of the corresponding appointments but I can't seem to search on that ID.

I tried:

```
using Microsoft.Office.Interop;

private void GetAppointment(string myGlobalAppointmentID)
{
Outlook.Application oApp = new Outlook.Application();

Outlook.NameSpace mapiNamespace = oApp.GetNamespace("MAPI");

Outlook.MAPIFolder calendarFolder = mapiNamespace.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderCalendar);
Outlook.Items outlookCalendarItems = calendarFolder.Items;

Outlook.AppointmentItem appointmentItem = (Outlook.AppointmentItem)outlookCalendarItems.Find("[GlobalAppointmentID] = '{0}'", myGlobalAppointmentID));

//update or delete appointmentItem here (which I know how to do)
}

```

I keep getting 'Condition is not valid' Exception.
Apparently Outlook does not allow to search on binary properties (such as GlobalAppointmentID).

I use the same outlookCalendarItems.Find() and calendarFolder.Items.Restrict() without problems in other instances.

I tried using Redemption but I couldn't get it to work either.
Does anybody have experience or a suggestion?