CalDAV-Dienst mit .Net erstellen

Ich möchte in meiner Anwendung einen Kalender erstellen, den externe Benutzer anzeigen können.

Das CalDAV-Format (im Grunde WebDAV + iCalendar) scheint relativ weit verbreitet zu sein, wenn auch von einigen Clients eher ungewöhnlich (z. B. Outlook). Völlig neu für mich.

Ich möchte Ereignisse extern veröffentlichen, ich benötige keine Benutzer, um sie aktualisieren zu können.

Das Textformat von Ereignissen in .ics-Dateien erscheint relativ einfach:

BEGIN:VCALENDAR
VERSION:2.0
CALSCALE:GREGORIAN

BEGIN:VEVENT
DTSTART:20091130T000000Z
DTEND:20091201T000000Z
SUMMARY:Test event for calendar format
LOCATION:Company site
DESCRIPTION:Test event.\nMore text on a new line
END:VEVENT

END:VCALENDAR

Ich möchte jedoch nicht unbedingt meinen eigenen ICS-Datei-Builder schreiben. Die in jeder Zeile beginnenden Tastennamen scheinen auch zwischen ics-Dateien nicht sehr konsistent zu sein.

Gibt es eine .NET-Implementierung? Im Idealfall möchte ich keine komplette WebDAV-Implementierung einrichten - nur die Möglichkeit, einen schreibgeschützten Kalender abzurufen.

Ich möchte hauptsächlich, dass dies über eine URL erfolgt, die Benutzer von iPhone-, Android- und Blackberry-Telefonen synchronisieren können. Ich weiß, dass sie CalDAV-Dienste von einigen Anbietern, aber nicht von anderen Anbietern verarbeiten können (z. B. kann mein iPhone über den Google-Kalender synchronisiert werden, schlägt jedoch bei FaceBook-Ereignissen fehl). Hat jemand eine Idee, warum?

Ich denke, Events können auch MIME-Anhänge enthalten. Ist dies ausreichend unterstützt, um auch in Betracht gezogen werden zu können?

Aktualisieren

Weitere Untersuchungen hierzu haben bei den meisten Implementierungen einige merkwürdige Inkonsistenzen festgestellt. Keines der wichtigsten Betriebssysteme für mobile Clients (iPhone, Blackberry, Android) kann .ics-Dateien verarbeiten.

IPhones können jedoch eine .ics-Datei über eine URL öffnen (Kalender abonnieren), und dies funktioniert auch mit FaceBook. Blackberry und Android können das jedoch nicht. Ich denke, das Blackberry kann die vollständige CalDAV-Option (und nicht nur die .ics-Datei) verarbeiten, weiß aber nicht viel über die Programmierung dafür.

Gibt es einen konsequenten Weg, dies zu tun?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage