Какой идентификатор? GlobalAppointmentID
или EntryID
? В случае EntryID
вы можете использовать Namespace.GetItemFromID
, но, поскольку назначение воссоздается Outlook при обработке обновлений собрания, изменяется его идентификатор записи и GetItemFromID
.
GlobalAppointmentID
- путь (это то, что сам Outlook использует при обработке обновлений/аннулирования), но, к сожалению, объектная модель Outlook не позволит вам искать двоичные (PT_BINARY) свойства, поэтому лучше всего вы можете сделать цикл через все элементы в папке «Календарь». Вам нужно будет использовать Extended MAPI (C++ или Delphi) или Redemption (на любом языке) - (RDOtems .Find/FindNext/Restrict` в Redemption позволяют выполнять поиск по бинарным свойствам).
Redemption.RDOSession session = new Redemption.RDOSession();
session.MAPIOBJECT = outlookApp.Session.MAPIOBJECT; //share the Outlook session
RDOFolder calendarFolder = session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderCalendar);
Redemption.RDOAppointmentItem appointmentItem = calendarFolder.Items.Find("GlobalAppointmentID = '"+TheGlobalAppointmentId+ "'");