Я хочу создать в своем приложении календарь, который смогут просматривать внешние пользователи.
Формат CalDAV (в основном, WebDAV + iCalendar), по-видимому, относительно широко поддерживается, хотя некоторые клиенты (например, Outlook) довольно необычно. Совершенно новый для меня, хотя.
Я хочу публиковать события извне, мне не нужно, чтобы пользователи могли их обновлять.
Текстовый формат событий в файлах .ics выглядит относительно простым:
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
Однако я не хочу писать свой собственный конструктор файлов ics. Названия клавиш, начинающиеся в каждой строке, не кажутся слишком согласованными между файлами ics.
Есть ли реализация .Net там? В идеале я не хочу настраивать целую реализацию WebDAV - просто возможность получать календарь только для чтения.
В основном я хочу, чтобы это было по URL, который пользователи могут синхронизировать с iPhone, Android и телефонов Blackberry. Я знаю, что они могут обрабатывать услуги CalDAV от некоторых поставщиков, но не от других (например, мой iPhone может синхронизироваться с календарем Google, но происходит сбой с событиями FaceBook) - кто-нибудь знает, почему?
Я думаю, что события могут также содержать вложения MIME - достаточно ли это поддерживается, чтобы на них тоже стоило посмотреть?
Обновление
Дальнейшие исследования по этому вопросу выявили некоторые странные несоответствия в большинстве реализаций. Ни одна из основных мобильных клиентских ОС (iPhone, Blackberry, Android) не может обрабатывать файлы .ics.
Однако iPhone может открывать .ics из URL-адреса (выбрать подписку на календарь), и это также работает с FaceBook. Однако Blackberry и Android не могут. Я думаю, что Blackberry может обрабатывать полную опцию CalDAV (а не только файл .ics), но не очень разбираюсь в ее программировании.
Есть ли последовательный способ сделать это там?