language agnostic formato Aggiornamenti su ICalendar e eventi non funzionanti in Outlook




icalendar formato (4)

Sto usando Entourage, quindi questo potrebbe non corrispondere esattamente al comportamento che stai vedendo, ma spero che sia d'aiuto.

Usando iCalendar dalla tua risposta, Entourage non importerebbe nemmeno i dati. Usando un file conosciuto, l'ho importato, quindi aggiornato con successo. Confrontando i due file, le uniche differenze strutturali sono le seguenti:

  • Il mio noto bene non ha un elemento VERSION
  • Il mio noto bene non ha un elemento PRODID
  • Il mio noto bene non ha un elemento STATUS
  • Il mio bene noto non ha un elemento SEQUENCE

Poiché il supporto di Microsoft per gli standard aperti tende a rallentare, suggerirei di provare senza le informazioni VERSION .

Sto generando file ICalendar (.ics).

Utilizzando i campi UID e SEQUENCE posso aggiornare gli eventi esistenti in Google Calendar e in Windows Calendar MA NON in MS Outlook 2007 - crea solo un secondo evento

Come faccio a farli funzionare per Outlook?

Grazie

Tom


Answer #1

Ho continuato a fare alcuni test e ora sono riuscito a far sì che Outlook aggiornasse e cancellasse gli eventi in base al file .cs.

Outlook sembra infatti rispondere alle regole definite nella RFC 2446

In sintesi devi specificare

METHOD:REQUEST e ORGANIZER:xxxxxxxx

oltre a UID : e SEQUENCE:

Per la cancellazione è necessario specificare METHOD:CANCEL

Esempio di richiesta / aggiornamento

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

Annulla esempio;

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

Answer #2

Sto usando Outlook 2003 (dalla lettura dei post, 2007 sembra comportarsi allo stesso modo) e devi distinguere chiaramente tra il comportamento dell'importazione di file esplicita di un file ics e l'importazione implicita quando un file ics viene 'fatto doppio clic '.

Nel menu Outlook File / Importa ed Esporta ... Outlook caricherà tutte le voci VEVENT presenti nel file e nessuna quantità di modifica di UID :, SEQUENCE: o DTSTAMP: i valori cambiano, vale a dire che si cambiano i dati e si reimporta si ottiene solo un doppio set di voci.

Se si fa doppio clic su un file ics, viene elaborata solo la prima voce VEVENT. Tuttavia riconosce l'UID e, se il DTSTAMP: è successivo (SEQUENCE può essere uguale ma non inferiore) verrà richiesto e aggiornerà l'evento nel tuo 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

Answer #3

Ho preso una mano di Tom Carter, il richiedente. Aveva un esempio funzionante con una richiesta seguita da una cancellazione. Quello che avevo sbagliato era che il mio METODO era all'interno del mio VEVENT quando avrebbe dovuto essere fuori. Quindi ecco un aggiornamento funzionante!

Originale:

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

Aggiornare:

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

Tutto ciò che ho fatto è stato aggiungere il metodo di richiesta (nel punto corretto!) E un organizzatore.





rfc5545