Pour une nouvelle application intranet, je voudrais laisser l'utilisateur add a calendar to their Outlook ainsi il peut être facilement regardé. Le calendrier serait en lecture seule. Comment puis-je créer cela?Comment créer un "abonnement au calendrier internet" d'Outlook?
2
A
Répondre
4
Vous devez créer un iCal feed auquel la plupart des clients peuvent s'abonner. Utilisez un FileStreamResult
dans votre contrôleur pour l'envoyer aux clients. Familiarisez-vous avec la spécification ICS, il commence comme ceci
BEGIN:VCALENDAR PRODID:-//{Calender of something}//NONSGML v1.0//EN
VERSION:1.0
CALSCALE:GREGORIAN
METHOD:PUBLISH
X-WR-CALNAME:{Name}
X-ORIGINAL-URL:{The Url obviously}
X-WR-CALDESC:{Calendar of Events For a new intranet application}
et se termine par END:VCALENDAR
. Et voici les événements
BEGIN:VEVENT
DTSTART:20101113
DTEND:20101115
DTSTAMP:20101110T154940
CREATED:20101109T2
LAST-MODIFIED:20101109T2
UID:{unique id}
SUMMARY:Nanaimo Artwalk 2010 (Free)
DESCRIPTION:{Description}
LOCATION:{Location}
URL:{url}
END:VEVENT
Maintenant, je ne connais pas le format ICS vraiment bien que vous devriez obtenir plus connaître. Vous pouvez également utiliser an open-source library. Lorsque vous créez votre flux, écrivez-le en tant que résultat de fichier.
private static FileResult iCalResult(string ics)
{
return new FileStreamResult(WriteCal(ics), "text/calendar");
}
private static Stream WriteCal(string ics)
{
var content = Encoding.ASCII.GetBytes(ics);
var stream = new MemoryStream(content);
return stream;
}
Merci! Je ne savais pas s'il y avait une "façon de voir" ou si iCal devait être généré. Je vais générer l'iCal alors. –
il y a une façon de faire ce genre d'API mais ce service est plus facile et plus agnostique. – Sevki