Obtener el objeto AppointmentItem de Outlook utilizando GlobalAppointmentID.
Estoy desarrollando un calendario para mi empresa que se sincroniza con el Calendario de Outlook.
Actualmente puedo:
* importar citas desde Outlook y mostrarlas en mi calendario
* actualizar mis citas cuando las citas de Outlook se actualizan
* crear citas de Outlook cuando se crean citas en mi calendario
El único problema que tengo es actualizar/eliminar citas de Outlook cuando mis citas se actualizan/eliminan.
Tengo el GlobalAppointmentID de las citas correspondientes, pero parece que no puedo buscar con ese ID.
He intentado:
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);
//actualizar o eliminar appointmentItem aquí (lo cual sé cómo hacer)
}
Sigo recibiendo una Excepción de ‘La condición no es válida’.
Aparentemente Outlook no permite buscar en propiedades binarias (como GlobalAppointmentID).
Utilizo las mismas funciones outlookCalendarItems.Find() y calendarFolder.Items.Restrict() sin problemas en otras instancias.
También intenté usar Redemption pero tampoco pude hacer que funcionara.
¿Alguien tiene experiencia o alguna sugerencia?
davy.ai
Solución para buscar y actualizar/eliminar citas de Outlook utilizando el GlobalAppointmentID en C
Desafortunadamente, Outlook no permite buscar en propiedades binarias como GlobalAppointmentID. Sin embargo, existen soluciones alternativas para actualizar o eliminar citas de Outlook utilizando GlobalAppointmentID. Una de esas soluciones es utilizar la propiedad EntryID en lugar de GlobalAppointmentID. La propiedad EntryID es única para cada elemento de Outlook y se puede utilizar para buscar y localizar citas en Outlook.
Aquí tienes un ejemplo de código para utilizar la propiedad EntryID para obtener y actualizar una cita de Outlook utilizando C#:
Para eliminar una cita utilizando EntryID, puedes utilizar el siguiente código:
En conclusión, utilizar la propiedad EntryID es una solución alternativa para buscar y actualizar o eliminar citas de Outlook en lugar de utilizar la propiedad GlobalAppointmentID.