Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Creating a CalDAV service with .Net

I want to create a calendar in my application that external users can view.

The CalDAV (basically WebDAV+iCalendar) format seems to be relatively widely supported, although if rather unusually by some clients (Outlook, for instance). Completely new to me though.

I want to externally publish events, I don't need users to be able to update them.

The text format of events in .ics files appears relatively 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

However I don't really want to write my own ics file builder. The key names starting on each line don't seem to be very consistent between ics files too.

Is there a .Net implementation out there? Ideally I don't want to set up a whole WebDAV implementation - just the ability to retrieve a read-only calendar.

I mainly want this to be at a url that users can sync from iPhone, Android and Blackberry phones. I know that they can handle CalDAV services from some suppliers but not others (for instance my iPhone can sync from Google calendar but fails with FaceBook's events) - anyone have any idea why?

I think events can also contain MIME attachments - is this sufficiently supported to be worth looking into too?

Update

Further research on this has identified some weird inconsistencies in most implementations. None of the major mobile client OSs (iPhone, Blackberry, Android) can handle .ics files.

However iPhones can open an .ics from a URL (choose to subscribe to a calendar) and this does work with FaceBook too. Blackberry and Android can't however. I think the Blackberry can handle the full CalDAV option (rather than just the .ics file) but don't know much about programming for it.

Is there a consistent way to do this out there?

like image 571
Keith Avatar asked Nov 27 '09 16:11

Keith


People also ask

How do I create a CalDAV server?

To setup CalDAV, simply go to the “Mail, Contacts, and Calendars” page under “Setting”, click “Add Account”, click “Other”, and click “Add CalDAV Account”. Enter the URL to the CalDAV server, followed by the username and a calendar name, then enter the username and password.

Does Google support CalDAV?

Google provides a CalDAV interface that you can use to view and manage calendars using the CalDAV protocol.

Is CalDAV free?

Open Source. The Outlook CalDav Synchronizer is Free and Open-Source Software (FOSS). You can find and contribute to the source code on github.

How does a CalDAV Server work?

CalDAV is a network protocol which was first submitted to the IETF (Internet Engineering Task Force) in 2003 for review and first specified in RFC 4791 in 2007. It allows calendar data exchange via WebDAV/HTTP and thereby access to your calendar from any device and the ability to sync it from anywhere.


2 Answers

I've used http://sourceforge.net/projects/dday-ical/ for a project last year. Works perfectly!

like image 199
Ward Werbrouck Avatar answered Nov 02 '22 09:11

Ward Werbrouck


The company IT Hit WebDav System offers

  • IT Hit WebDAV Server Engine v3 for .Net (starting at $ 1250)) and
  • a IT Hit WebDAV Client .Net (starting at $350).

It works with iOS Calendar, Android CalDAV-Sync, Mac OS X Calendar, Mozilla Lightning, eM Client, Bynari Outlook plugin, Evolution and others.

like image 1
IT Hit WebDAV Avatar answered Nov 02 '22 09:11

IT Hit WebDAV