spec ics ical language-agnostic icalendar rfc2445 rfc5545

language agnostic - ics - ICalendar y las actualizaciones de eventos no funcionan en Outlook



ics ical (5)

Estoy usando Entourage, por lo que puede no coincidir exactamente con el comportamiento que está viendo, pero espero que ayude.

Usando el iCalendar de su respuesta, Entourage ni siquiera importaría los datos. Usando un archivo conocido, lo tengo para importar y luego actualizarlo con éxito. Comparando los dos archivos, las únicas diferencias estructurales son las siguientes:

  • Mi bien conocido no tiene un elemento VERSION
  • Mi bien conocido no tiene un elemento PRODID
  • Mi bien conocido no tiene un elemento STATUS
  • Mi bien conocido no tiene un elemento SEQUENCE

Dado que el soporte de Microsoft para estándares abiertos tiende a retrasarse, sugiero probar sin la información VERSION .

Estoy generando archivos de ICalendar (.ics).

Utilizando los campos UID y SEQUENCE puedo actualizar los eventos existentes en Google Calendar y en el calendario de Windows PERO NO en MS Outlook 2007; solo crea un segundo evento.

¿Cómo puedo hacer que funcionen para Outlook?

Gracias

Tom


Conseguí a Tom Carter, el asker. Tenía un ejemplo de trabajo con una solicitud seguida de una cancelación. Lo que tuve mal fue que mi MÉTODO estaba dentro de mi VEVENT cuando debería haber estado afuera. ¡Aquí hay una actualización de trabajo!

Original:

BEGIN:VCALENDAR VERSION:2.0 PRODID:-//WA//FRWEB//EN METHOD:REQUEST BEGIN:VEVENT UID:FRICAL201 SEQUENCE:0 DTSTAMP:20081108T151809Z ORGANIZER:[email protected] DTSTART:20081109T121200 SUMMARY:11/9/2008 12:12:00 PM TRIP FROM JFK AIRPORT (JFK) LOCATION:JFK AIRPORT (JFK) END:VEVENT END:VCALENDAR

Actualizar:

BEGIN:VCALENDAR VERSION:2.0 PRODID:-//WA//FRWEB//EN METHOD:REQUEST BEGIN:VEVENT UID:FRICAL201 SEQUENCE:1 DTSTAMP:20081108T161809Z ORGANIZER:[email protected] DTSTART:20081109T121300 SUMMARY:11/9/2008 12:13:00 PM TRIP FROM JFK AIRPORT (JFK) LOCATION:JFK AIRPORT (JFK) END:VEVENT END:VCALENDAR

Todo lo que hice fue agregar el método de solicitud (¡en el lugar correcto!) Y un organizador.


Continué realizando algunas pruebas y ahora conseguí que Outlook actualizara y cancelara eventos basados ​​en el archivo .cs.

De hecho, Outlook parece responder a las reglas definidas en RFC 2446

En resumen, debes especificar

METHOD:REQUEST y ORGANIZER:xxxxxxxx

además de UID : y SEQUENCE:

Para una cancelación, debe especificar el METHOD:CANCEL

Ejemplo de solicitud / actualización

BEGIN:VCALENDAR VERSION:2.0 PRODID:-//SYFADIS//PORTAIL FORMATION//FR METHOD:REQUEST BEGIN:VEVENT UID:[email protected] SEQUENCE:5 DTSTAMP:20081106T154911Z ORGANIZER:[email protected] DTSTART:20081113T164907 DTEND:20081115T170000 SUMMARY:TestTraining STATUS:CONFIRMED END:VEVENT END:VCALENDAR

Cancelar el ejemplo;

BEGIN:VCALENDAR VERSION:2.0 PRODID:-//SYFADIS//PORTAIL FORMATION//FR METHOD:CANCEL BEGIN:VEVENT UID:[email protected] SEQUENCE:7 DTSTAMP:20081106T154916Z ORGANIZER:[email protected] DTSTART:20081113T164907 SUMMARY:TestTraining STATUS:CANCELLED END:VEVENT END:VCALENDAR


Estoy usando Outlook 2003 (al leer las publicaciones, 2007 parece comportarse de la misma manera) y necesita distinguir claramente entre el comportamiento de la importación de archivos explícitos de un archivo ics y la importación implícita cuando se hace doble clic en un archivo ics ''.

En el menú de Outlook Archivo / Importar y Exportar ... Outlook cargará tantas entradas de VEVENT como están en el archivo y ninguna cantidad de cambio de UID :, SECUENCIA: o DTSTAMP: los valores cambian esto, es decir, si usted cambia cualquier dato y lo vuelve a importar simplemente obtienes un conjunto duplicado de entradas.

Si hace doble clic en un archivo ics procesa la primera entrada de VEVENT solamente. Sin embargo, reconoce el UID y, si el DTSTAMP: es posterior (la SECUENCIA puede ser la misma pero no más baja), se le preguntará y actualizará el evento en su calendario.

BEGIN:VCALENDAR VERSION:2.0 PRODID:www.membership-services.net METHOD:REQUEST BEGIN:VEVENT DTSTART:20090126T210000 DTEND:20090126T220000 SUMMARY:Avondale - Thameside Away Game vs Croydon LOCATION:Whitgift School DESCRIPTION:http://maps.google.co.uk/maps?f=q&hl=en&geocode=&q=CR2+6YT UID:AWPC_8 SEQUENCE:0 DTSTAMP:20090123T112600 END:VEVENT BEGIN:VEVENT DTSTART:20090202T213000 DTEND:20090202T223000 SUMMARY:Avondale - Thameside Home Game vs Orcas LOCATION:Putney DESCRIPTION:http://maps.google.co.uk/maps?f=q&source=s_q&hl=en&ie=UTF8&ll=51.4635,-0.2285&spn=0.005,0.009613&t=h&z=17&iwloc=lyrftr:w2t.90,0x48760f04a04b1801:0x49ebf12503a5d5a9,51.463459,-0.228674 UID:AWPC_10 SEQUENCE:0 DTSTAMP:20090123T112600 END:VEVENT END:VCALENDAR


agregue esto a su archivo ICS

X-WR-RELCALID:MyCal123

donde MyCal123 es un identificador único para su calendario.

Al agregar esta línea a un archivo ICS, se actualiza todo el calendario (después de un aviso en Outlook). Ni siquiera necesita cambiar el DTSTAMP o SEQUENCE u ORGANIZER y METHOD: PUBLISH está bien para la actualización. Simplemente actualice los detalles del evento, haga doble clic en el ICS y el calendario se actualizará. Tenga en cuenta que esto también funciona bien si ha publicado el calendario y ha proporcionado una URL para que las personas lo vean. Solo necesitan actualizar después de aproximadamente 2 minutos y también recibirán la actualización.

Gracias a David Bjørnhart por señalar esto: ICal Import crea un nuevo calendario cuando abre el archivo ics