Les mises à jour ICalendar et event ne fonctionnent pas dans Outlook

je suis génération ICalendar (.ics) des fichiers.

en utilisant les champs UID et SEQUENCE je peux mettre à jour les événements existants dans Google Calendar et dans Windows Calendar mais pas dans MS Outlook 2007 - il crée juste un deuxième événement

comment les faire travailler pour Outlook ?

Merci

Tom

23
demandé sur oberron 2008-09-05 13:14:03

5 réponses

j'ai continué à faire quelques tests et j'ai maintenant réussi à obtenir Outlook pour mettre à jour et annuler les événements basés sur le .cs fichier.

Outlook semble en fait pour répondre aux règles définies dans le RFC 2446

en résumé, vous devez préciser

METHOD:REQUEST et ORGANIZER:xxxxxxxx

en plus de UID : et SEQUENCE:

pour une annulation vous devez spécifier METHOD:CANCEL

Exemple De Demande/Mise À Jour

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//SYFADIS//PORTAIL FORMATION//FR
METHOD:REQUEST
BEGIN:VEVENT
UID:TS_229377_MS_262145@syfadis.com
SEQUENCE:5
DTSTAMP:20081106T154911Z
ORGANIZER:catalog@syfadis.com
DTSTART:20081113T164907
DTEND:20081115T170000
SUMMARY:TestTraining
STATUS:CONFIRMED
END:VEVENT
END:VCALENDAR

Annuler Exemple;

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//SYFADIS//PORTAIL FORMATION//FR
METHOD:CANCEL
BEGIN:VEVENT
UID:TS_229377_MS_262145@syfadis.com
SEQUENCE:7
DTSTAMP:20081106T154916Z
ORGANIZER:catalog@syfadis.com
DTSTART:20081113T164907
SUMMARY:TestTraining
STATUS:CANCELLED
END:VEVENT
END:VCALENDAR
20
répondu Tom Carter 2009-01-09 10:31:21

J'ai eu Tom Carter, l'asker. Il avait un exemple pratique avec une demande suivie d'une annulation. Ce que j'avais tort, c'est que ma méthode était à l'intérieur de mon évent alors qu'elle aurait dû être à l'extérieur. Voici donc un travail de mise à jour!

Origine:

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

mise à jour:

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

Tout ce que j'ai fait c'est ajouter la méthode request (au bon endroit!), et l'un des organisateurs.

8
répondu Chris 2008-11-11 05:06:37

j'utilise outlook 2003 (de la lecture des messages, 2007 semble se comporter de la même manière) et vous devez distinguer clairement entre le comportement de l'importation de fichier explicite d'un fichier ics et l'importation implicite quand un fichier ics est "double cliqué".

sur le menu fichier Outlook / importer et exporter ... Outlook va charger autant d'entrées VEVENT que sont dans le fichier et aucune quantité de changer UID:, SEQUENCE: ou DtStamp: valeurs change cela, I. E. si vous changez données et réimportez-vous simplement obtenir un double des bulletins de participation.

si vous double-cliquez sur un fichier ics, il ne traite que la première entrée VEVENT. Cependant, il reconnaît L'UID et, si le DTSTAMP: est plus tard (la séquence peut être la même mais pas plus basse) vous serez invité et il mettra à jour l'événement dans votre calendrier.

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
3
répondu balexandre 2010-10-18 07:22:42

ajoutez ceci à votre fichier ICS

X-WR-RELCALID:MyCal123   

où MyCal123 est un identifiant unique pour votre calendrier.

en ajoutant cette ligne à un fichier ICS le calendrier entier est mis à jour (après un prompt dans Outlook). Vous n'avez même pas besoin de changer le DTSTAMP ou la séquence ou L'organisateur et la méthode:publier est très bien pour la mise à jour. Il suffit de mettre à jour les détails de l'événement, double-cliquez sur L'ICS et le calendrier sera mis à jour. Notez que cela fonctionne aussi très bien si vous avez publié le calendrier et fourni une URL pour les gens de le voir. Ils ont juste besoin d'appuyer sur refresh après environ 2 minutes et ils obtiendront également la mise à jour.

merci à David Bjørnhart de souligner ceci: ICal import crée un nouveau calendrier lorsque vous ouvrez le fichier ics

2
répondu Mark Plumpton 2017-05-23 12:26:19

J'utilise Entourage, donc ça ne correspond pas exactement au comportement que vous voyez, mais j'espère que ça aidera.

en utilisant l'iCalendar de votre réponse, Entourage n'importerait même pas les données. En utilisant un fichier, je l'ai eu à importer, puis mettre à jour correctement. En comparant les deux fichiers, les seules différences structurelles sont comme suit:

  • Mon bon de ne pas disposer d'un VERSION élément
  • My connu-bon n'a pas un PRODID élément
  • Mon bon de ne pas disposer d'un STATUS élément
  • Mon bon de ne pas disposer d'un SEQUENCE élément

puisque le support de Microsoft pour les standards ouverts a tendance à être en retard, je suggère d'essayer sans l'info VERSION .

0
répondu Hank Gay 2008-09-05 12:48:10