Creando un servicio CalDAV con .Net

Quiero crear un calendario en mi aplicación que los usuarios externos puedan ver.

El formato CalDAV (básicamente WebDAV + iCalendar) parece tener un soporte relativamente amplio, aunque es bastante inusual para algunos clientes (Outlook, por ejemplo). Completamente nuevo para mí sin embargo.

Quiero publicar eventos de forma externa, no necesito que los usuarios puedan actualizarlos.

El formato de texto de los eventos en los archivos .ics parece relativamente simple:

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

Sin embargo, realmente no quiero escribir mi propio generador de archivos ics. Los nombres de las teclas que comienzan en cada línea no parecen ser muy consistentes entre los archivos ics también.

¿Hay una implementación .Net por ahí? Lo ideal es que no quiera configurar una implementación completa de WebDAV, solo la capacidad de recuperar un calendario de solo lectura.

Principalmente, quiero que esté en una URL que los usuarios puedan sincronizar desde los teléfonos iPhone, Android y Blackberry. Sé que pueden manejar los servicios CalDAV de algunos proveedores pero no de otros (por ejemplo, mi iPhone puede sincronizarse desde el calendario de Google pero falla con los eventos de FaceBook). ¿Alguien tiene alguna idea de por qué?

Creo que los eventos también pueden contener archivos adjuntos MIME: ¿es esto lo suficientemente compatible como para que valga la pena verlo?

Actualizar

Investigaciones adicionales sobre esto han identificado algunas inconsistencias extrañas en la mayoría de las implementaciones. Ninguno de los principales sistemas operativos de clientes móviles (iPhone, Blackberry, Android) puede manejar archivos .ics.

Sin embargo, los iPhones pueden abrir un archivo .ics desde una URL (elija suscribirse a un calendario) y esto también funciona con FaceBook. Blackberry y Android no pueden sin embargo. Creo que la Blackberry puede manejar la opción completa de CalDAV (en lugar de solo el archivo .ics) pero no sé mucho sobre programación para ello.

¿Hay una manera consistente de hacer esto por ahí?

Respuestas a la pregunta(3)

Su respuesta a la pregunta