2008-09-05 16 views
23

Estoy generando archivos ICalendar (.ics).ICalendar y las actualizaciones de eventos no funcionan en Outlook

El uso de los campos de UID y la secuencia que puedo actualizar los eventos existentes en Google Calendar y en el calendario de Windows PERO NO en MS Outlook 2007 - sólo se crea un segundo evento

¿Cómo consigo que trabajen para Outlook?

Gracias

Tom

+0

lo hace [validan]? Si es así, ¿puedes publicar un ejemplo? –

+1

[link] (http://severinghaus.org/projects/icv/) - validador en línea útil – russellfeeed

Respuesta

20

He seguido haciendo algunas pruebas y ahora he logrado que Outlook actualice y cancele los eventos basados ​​en el archivo .cs.

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

En resumen hay que especificar

METHOD:REQUEST y ORGANIZER:xxxxxxxx

además de UID: y SEQUENCE:

Para una cancelación tiene que especificar METHOD:CANCEL

Solicitud/actualización Ejemplo

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 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 
+0

Pronto me encontraré con la misma situación. Esto me ahorró tiempo, supongo. :-D ¡Gracias! – Tomalak

+1

Descubrí (por las malas) que esto no funcionará en Apple iCal a menos que especifiques un asistente (dentro del bloque VEVENT), lo mismo en ambos eventos: *** ASISTENTE; CN = "John Doe"; PARTSTAT = ACEPTADO : mailt o: [email protected] *** Sin él, iCal no hace nada. Con él, tacha el evento y le da la opción de eliminarlo. –

0

estoy usando Entourage, por lo que esto puede no coincidir exactamente con el comportamiento que se 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. Al comparar los dos archivos, las únicas diferencias estructurales son los siguientes:

  • Mi sabe que es correcto no tiene un elemento VERSION
  • Mi sepa que es correcto no tiene un elemento PRODID
  • Mi conocido- bueno no tiene un elemento STATUS
  • Mi sabe que es correcto no tiene un elemento SEQUENCE

Puesto que el apoyo de Microsoft para estándares abiertos tiende a lag, sugiero probar sin la información VERSION.

8

Tengo una bodega de 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 

Actualización: (! En el lugar correcto)

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 

único que hice fue añadir el método de la petición, y un organizador.

+0

Original y actualización no difieren significativamente. ¿Copiar/pegar error? – Tomalak

+0

La hora de DTSTART es diferente. La clave es tener todas las cosas correctas en el orden correcto en cada una. Terminan pareciendo casi lo mismo. – Chris

+1

¡No puedo hacer que esto funcione incluso con Google Calendar! –

3

Estoy usando Outlook 2003 (por 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 un archivo ics es 'doble clic'.

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 cambia cualquier datos y vuelva a importarlo, solo obtiene un conjunto duplicado de entradas.

Si hace doble clic en un archivo ics procesa solamente la primera entrada de VEVENT. 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 
+0

Experimenté el mismo comportamiento. Para Outlook 2003 (aún no se ha probado 2007), estos son los requisitos mínimos para actualizar un evento: (a) único evento en ics (b) MÉTODO debe ser PETICIÓN (c) UID debe ser igual (d) SECUENCIA debe estar presente, y> = el número de secuencia anterior (e) importar a perspectiva haciendo doble clic en el evento –

2

añadir 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 creates new calendar When Open the ics file

Cuestiones relacionadas