Criando um serviço CalDAV com .Net

Eu quero criar um calendário na minha aplicação que os usuários externos possam ver.

O formato CalDAV (basicamente WebDAV + iCalendar) parece ser amplamente suportado, embora seja incomum em alguns clientes (Outlook, por exemplo). Completamente novo para mim embora.

Eu quero publicar eventos externamente, não preciso que os usuários possam atualizá-los.

O formato de texto dos eventos em arquivos .ics parece relativamente simples:

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

No entanto, eu realmente não quero escrever meu próprio construtor de arquivos ics. Os nomes das chaves que começam em cada linha também não parecem ser muito consistentes entre os arquivos ics.

Existe uma implementação .Net lá fora? Idealmente, não quero configurar uma implementação inteira do WebDAV - apenas a capacidade de recuperar um calendário somente para leitura.

Eu quero principalmente que isso esteja em um URL que os usuários podem sincronizar com os telefones iPhone, Android e Blackberry. Eu sei que eles podem lidar com serviços CalDAV de alguns fornecedores, mas não de outros (por exemplo, meu iPhone pode sincronizar a partir do calendário do Google, mas não com os eventos do FaceBook) - alguém tem alguma idéia do por quê?

Eu acho que os eventos também podem conter anexos MIME - isso é suficientemente suportado para valer a pena também?

Atualizar

Mais pesquisas sobre isso identificaram algumas inconsistências estranhas na maioria das implementações. Nenhum dos principais sistemas operacionais de clientes móveis (iPhone, Blackberry, Android) pode manipular arquivos .ics.

No entanto, os iPhones podem abrir um .ics a partir de um URL (optar por assinar um calendário) e isso também funciona com o FaceBook. Blackberry e Android não podem no entanto. Eu acho que o Blackberry pode lidar com a opção completa CalDAV (ao invés de apenas o arquivo .ics), mas não sabe muito sobre programação para isso.

Existe uma maneira consistente de fazer isso lá fora?

questionAnswers(3)

yourAnswerToTheQuestion