random memes }

Universal Calendars and Scheduling?

How can you get Internet-based universal calendars/scheduling as good as the Microsoft Exchange/Outlook combination or better?

I have been puzzling at this question for a while. Let’s start with the basics:

  1. Most of the application logic (and extensions) should be on the server.
  2. Clients should require no or minimal additional installation.
  3. Offline operation should be supported (for when your notebook is off the network).
  4. Use existing standards where possible (iCalendar, vCard).
  5. Try to interoperate with other solutions (Exchange/Outlook) as best you can.

If you support disconnected operation, then you need automatic download and caching of calendar items. This looks a whole lot like the semantics of private and shared IMAP folders. Why re-invent the wheel? Heck, you are going to check your email. Might as well synchronize your calendar data at the same time over the same connection.

Using IMAP with the Mozilla email reader, you can mark folders for off-line use. Mozilla will download and keep a local copy of all messages when you go off-line. Outlook might have similar function.

IMAP is a better solution than POP - especially if any user has more than one computer (say a desktop at work, a notebook, and a desktop at home).

Teach the Mozilla Calendar plug-in to recognize messages containing iCalendar data. Teach the server to translate (say) Exchange-style meeting announcments into iCalendar format (say when setting up a meeting with someone at a company using Exchange). Outlook can (apparently) be taught to look for your free/busy information on the Internet - especially if you send the right contact information in a vCard.

It is pretty easy to put together an Exchange/Outlook ghetto that works well. It is pretty easy to put together a my-group-only solution using open-source or commercial software. The trick is to put together a solution that can interoperate between organizations, when you have no control over what the other organizations use.