2008-12-10 31 views
13

¿Hay alguna forma de eliminar elementos del calendario mediante la importación de iCalendar?Eliminar el evento del calendario mediante la importación de archivos iCalendar (problema de Outlook 2003)?

Sé que hay un MÉTODO: CANCELAR, sin embargo, cuando lo probé, no le hizo nada al evento del calendario.

Esto es lo que está en mi archivo iCalendar. Cuando intento importarlo a Outlook, simplemente agrega estos eventos.

BEGIN:VCALENDAR 
VERSION:2.0 
PRODID:-//DDay.iCal//NONSGML ddaysoftware.com//EN 
METHOD:CANCEL 
BEGIN:VEVENT 
CREATED:20081210T155315Z 
DESCRIPTION: 
DTEND:20081213T093000 
DTSTAMP:20081210T155315Z 
DTSTART:20081213T093000 
LOCATION: 
ORGANIZER:MAILTO:[email protected] 
SEQUENCE:1 
SUMMARY:From FCS 13th 
UID:20367b86-2123-4930-87ef-5c2a6626bd9f 
BEGIN:VALARM 
ACTION:DISPLAY 
SUMMARY: Event 13th 
TRIGGER:-PT30M 
END:VALARM 
END:VEVENT 
BEGIN:VEVENT 
CREATED:20081210T155315Z 
DESCRIPTION: 
DTEND:20081211T093000 
DTSTAMP:20081210T155315Z 
DTSTART:20081211T093000 
LOCATION:7 West 
ORGANIZER:MAILTO:[email protected] 
SEQUENCE:1 
SUMMARY:Event 11th 
UID:f212ab15-86c3-46c8-8592-af0716a40ea2 
BEGIN:VALARM 
ACTION:DISPLAY 
SUMMARY:Event on 11th 
TRIGGER:-PT30M 
END:VALARM 
END:VEVENT  
END:VCALENDAR 

Respuesta

11

me olvidó añadir STATUS:CANCELLED

Ahora bien, esto debe cancelar artículos según http://en.wikipedia.org/wiki/ICalendar#Events_.28VEVENT.29

Esto funciona en Google Calendar, pero no en Outlook 2003. Outlook sigue crea entradas duplicadas.

Aquí se modifican los eventos de "cancelar" con 'ESTADO: CANCELADO'. (Ortografía británica con dos L's)

BEGIN:VCALENDAR 
VERSION:2.0 
PRODID:-//DDay.iCal//NONSGML ddaysoftware.com//EN 
X-WR-RELCALID:928C8448-048A-4aa2-BE27-A920773AF3DC 
METHOD:CANCEL 
BEGIN:VEVENT 
CREATED:20081210T210344Z 
DESCRIPTION: 
DTEND:20081213T093000 
DTSTAMP:20081210T210344Z 
DTSTART:20081213T093000 
LOCATION: 
ORGANIZER:MAILTO:[email protected] 
SEQUENCE:1 
STATUS:CANCELLED 
SUMMARY:Event to export 1 
UID:20367b86-2123-4930-87ef-5c2a6626bd9f 
BEGIN:VALARM 
ACTION:DISPLAY 
SUMMARY:Event to export 1 
TRIGGER:-PT30M 
END:VALARM 
END:VEVENT 
BEGIN:VEVENT 
CREATED:20081210T210344Z 
DESCRIPTION: 
DTEND:20081211T093000 
DTSTAMP:20081210T210344Z 
DTSTART:20081211T093000 
LOCATION:7 West 
ORGANIZER:MAILTO:[email protected]omain.com 
SEQUENCE:1 
STATUS:CANCELLED 
SUMMARY:Event to export 2 
UID:f212ab15-86c3-46c8-8592-af0716a40ea2 
BEGIN:VALARM 
ACTION:DISPLAY 
SUMMARY:Event to export 2 
TRIGGER:-PT30M 
END:VALARM 
END:VEVENT 
END:VCALENDAR 
+1

FYI Google mayúsculas y minúsculas para CANCELADA; ESTADO: Cancelado cancela silenciosamente. –

1

puede ser que necesite para establecer X-WR-RELCALID etiqueta, de acuerdo con esta http://www.oesf.org/forum/index.php?act=Print&client=printer&f=63&t=2650

Dice lo siguiente: "Antes de la sincronización por primera vez, debe agregar una etiqueta X-WR-RELCALID en el archivo mycalendar.ics, de lo contrario, iCal cambiará el número de UID de todas las entradas, lo que generará duplicados ".

Sin embargo no puedo encontrar ninguna documentación en la etiqueta RELCALID en el protocolo http://tools.ietf.org/html/rfc2446

Cuando me juego X-WR-RELCALID, Outlook sigue creando eventos duplicados en lugar de la eliminación de esos eventos.

¿Hay alguna documentación sobre X-WR-RELCALID? No puedo encontrarlo

1

No sé si esto ayuda, intente secuencia de configuración: 2

0

Outlook crea un evento duplicado si cambia la propiedad de UID. Tiene que crear otro evento con el mismo UID.

1

Para mí funcionó estableciendo la etiqueta X-WR-RELCALID en el encabezado del archivo ics. Luego, Outlook reconoció el evento como el mismo.

+0

¿acabas de elegir uno al azar? – bvdb

5

Estuve luchando con esto por un tiempo.

Como algunos otros han mencionado debe incluir el:

MÉTODO: CANCELAR

y

ESTADO: usado

líneas del VEVENT. El UID debe ser el mismo que el evento original Y el número de SECUENCIA: ¡debe ser el número de secuencia ACTUAL! (No necesita agregar 1 desde el último número de secuencia, ya que cancelar el evento no cuenta como una actualización).

Estaba teniendo problemas ya que supuse que la cancelación contaba como una actualización y, por lo tanto, estaba incrementando mi número de secuencia, ¡pero no es necesario!

3

¡Esta respuesta está destinada para que los feeds de iCal URL no importen un archivo de iCal!

Investigué esto bastante tiempo y, dado que la respuesta dada no resuelve realmente el problema de las perspectivas, pensé que publicaría lo que he encontrado que funciona para Outlook, iCal y Google Calendar.

Simplemente no envíe el evento, si el evento no está en el feed más, entonces Outlook, Google Calendar e iCal (de mi prueba) simplemente eliminan el evento como si nunca hubiera existido. Por lo tanto, si el evento se ha cancelado, pretenda que nunca existió y, cuando los calendarios locales se sincronicen, muestren los eventos que se les proporcionan explícitamente en el feed.

+0

No creo que esto funcione. Si tengo 10 eventos en la primera sincronización y en la próxima sincronización, uno de los eventos se elimina (no está presente en el archivo ics). El evento que falta aún está presente en iCal o en cualquier otro calendario (google etc.) y no se elimina aunque la nueva sincronización no tenga ese evento. – Kush

+1

@Kush Tienes razón. Cometí un error y publiqué mi respuesta aquí, pero mi respuesta no es para la importación de archivos. Está destinado a importar calendarios desde una URL. p.ej. en Google Calendar agregando un calendario por URL, sin importar desde un archivo. Esto fue un error de mi parte, espero que mi respuesta no haya desperdiciado demasiado tiempo. – keyneom

1

Esto puede ser un negocio doloroso e impredecible, y es probable que dependa de la versión de Outlook. Tengo cancelaciones de eventos trabajando con Outlook 2010 (v14). Envío mi icalendar como un mensaje de una sola parte, escriba text/calendar, como se explica en el hilo this. Como mencioné en las otras respuestas, tengo method = CANCEL en el tipo MIME, y nuevamente en el icalendar.

El paso crítico para mí fue agregar DTSTART al evento. Sin este campo, el mensaje no se presenta como una cancelación, no hay nada en el panel de vista previa y el calendario se presenta como un archivo adjunto con el nombre de archivo "message.ics no soportado". ¡Pero puede poner cualquier fecha que desee en el campo! DTEND no es importante. SECUENCIA puede ser igual o mayor. DTSTAMP no es importante, pero si está presente, debe ser posterior al envío del DTSTAMP con la invitación inicial; de lo contrario, aparecerá el texto "no activo" en lugar del botón "eliminar del calendario".

Ésta es una cancelación básico mínimo, ...

BEGIN:VCALENDAR 
VERSION:2.0 
PRODID:-//www.notilus.com//Dimo Gestion Notilus//FR 
CALSCALE:GREGORIAN 
METHOD:CANCEL 
BEGIN:VEVENT 
DTSTART:20140625T123000Z 
SEQUENCE:1 
STATUS:CANCELLED 
UID:Kerry 
END:VEVENT 
END:VCALENDAR 
Cuestiones relacionadas