2017-10-17 20 views
0

J'ai une application Web qui a son propre système de calendrier. Je souhaite envoyer des notifications par courrier électronique aux utilisateurs lorsqu'ils ajoutent/mettent à jour/suppriment des événements d'agenda. J'utilise iCal via un paquet de nuget Ical.Net pour créer les pièces jointes d'événements. Cela fonctionne très bien lors de l'ajout d'un nouvel événement de calendrier. Je suis en mesure d'obtenir l'e-mail avec la pièce jointe iCal et l'accepter et il l'ajoute à mon calendrier google.Utilisation d'iCal pour mettre à jour et supprimer des éléments de calendrier

La question que j'ai est la suivante: Est-il possible d'utiliser iCal pour envoyer un objet Update ou Remove type qui affectera l'événement de calendrier précédemment ajouté?

J'ai essayé d'utiliser le même UID dans le second objet iCal, mais cela n'a pas fonctionné.

Mise à jour: Voici le flux de création de réunion:

BEGIN:VCALENDAR 
PRODID:-//github.com/rianjs/ical.net//NONSGML ical.net 2.2//EN 
VERSION:2.0 
BEGIN:VEVENT 
DESCRIPTION:hi 
DTEND:20171019T200000 
DTSTAMP:20171018T022927Z 
DTSTART:20171019T193000 
SEQUENCE:0 
STATUS:Confirmed 
SUMMARY:test 
UID:2291d1c2-3b6d-404a-82ac-16807ecfd580 
END:VEVENT 
END:VCALENDAR 

Le flux de mise à jour est la même chose avec tout début et de fin différentes.

MISE À JOUR 2:

J'ai lu beaucoup de messages et la RFC 2446 pour essayer d'obtenir ce droit et je suis d'avoir encore du mal. Voici mes 3 exemples pour l'article original, une mise à jour pour changer la date et ensuite une annulation. Je finis avec un seul événement seulement à l'heure originale. Cela ne change pas l'heure avec la mise à jour et n'annule pas l'événement. J'ai également essayé de mettre la ligne METHOD: dans le VEVENT parce que je pensais lire ce qui fonctionnerait lors de la lecture de la RFC 2446. Quand je l'ai fait, j'ai fini par 3 événements. L'original et 2 à la nouvelle date.

événement initial

BEGIN:VCALENDAR 
PRODID:-//RealtimeMD//Medical Portal//EN 
VERSION:2.0 
METHOD:REQUEST 
BEGIN:VEVENT 
DTSTART:20171020T023000Z 
DTEND:20171020T030000Z 
DTSTAMP:20171020T015303Z 
ORGANIZER;CN=Bob Docter:mailto:[email protected] 
UID:24258c34-2888-43ec-ac3d-180ee2603294 
CREATED:20171020T015303Z 
X-ALT-DESC;FMTTYPE=text/html: 
LAST-MODIFIED:20171020T015304Z 
LOCATION:RealtimeMD Zoom 
SEQUENCE:0 
STATUS:CONFIRMED 
SUMMARY:t 
TRANSP:OPAQUE 
END:VEVENT 
END:VCALENDAR 

mise à jour de l'événement

BEGIN:VCALENDAR 
PRODID:-//RealtimeMD//Medical Portal//EN 
VERSION:2.0 
METHOD:REQUEST 
BEGIN:VEVENT 
DTSTART:20171021T023000Z 
DTEND:20171021T030000Z 
DTSTAMP:20171020T015303Z 
ORGANIZER;CN=Bob Docter:mailto:[email protected] 
UID:24258c34-2888-43ec-ac3d-180ee2603294 
CREATED:20171020T015303Z 
X-ALT-DESC;FMTTYPE=text/html: 
LAST-MODIFIED:20171020T015340Z 
LOCATION:RealtimeMD Zoom 
SEQUENCE:1 
STATUS:CONFIRMED 
SUMMARY:t 
TRANSP:OPAQUE 
END:VEVENT 
END:VCALENDAR 

Annuler événement

BEGIN:VCALENDAR 
PRODID:-//RealtimeMD//Medical Portal//EN 
VERSION:2.0 
METHOD:CANCEL 
BEGIN:VEVENT 
DTSTART:20171021T023000Z 
DTEND:20171021T030000Z 
DTSTAMP:20171020T015303Z 
ORGANIZER;CN=Bob Docter:mailto:[email protected] 
UID:24258c34-2888-43ec-ac3d-180ee2603294 
CREATED:20171020T015303Z 
X-ALT-DESC;FMTTYPE=text/html: 
LAST-MODIFIED:20171020T015433Z 
LOCATION:RealtimeMD Zoom 
SEQUENCE:2 
STATUS:CANCELLED 
SUMMARY:t 
TRANSP:OPAQUE 
END:VEVENT 
END:VCALENDAR 
+0

Veuillez fournir le flux icalendar correspondant à l'ajout et la mise à jour dans votre description – arnaudq

+0

Je regardais dans la bibliothèque que j'utilise pour créer l'élément iCal et j'ai vu que je pouvais changer l'état. Vous remarquerez dans l'exemple que j'ai mis à jour, j'ai mis le statut à Confirmé. J'ai essayé de changer cela à Annulé, mais cela ne supprime pas l'élément comme je m'y attendais. – user856232

Répondre

0

Si vous envoyez tho Par courrier électronique, vous souhaitez envoyer un message iTIP avec une méthode PUBLISH au https://tools.ietf.org/html/rfc5546#section-3.2.1. Cela a également une incidence sur la façon dont vous construisez votre message électronique. Voir https://tools.ietf.org/html/rfc6047

+0

Pourriez-vous entrer dans plus de détails? La chose principale que j'ai vu est que l'organisateur doit être présent pour l'annulation ou les mises à jour de l'événement pour fonctionner. Est-ce la seule chose qui me manque ou y a-t-il d'autres choses? – user856232