State of iCalendar standards/implementation
Brent J. Nordquist
bjn@horde.org
Tue, 20 Mar 2001 23:24:53 -0600 (CST)
[Here's a first cut of my notes on what I've learned about the current
state of calendaring/scheduling. There are a lot of pieces to absorb and
resources to track down, so I hope this will help save someone else some
time. Feedback welcome!]
Calendaring/Scheduling Notes
============================
$Author: bjn $ - Brent J. Nordquist <bjn@horde.org>
$Revision: 1.3 $
$Date: 2001/03/21 05:19:26 $
Abstract
========
Organizations wanting to develop a list of requirements for
calendaring/scheduling (cal/sch), and move in the direction of a
standards-based solution which meets these requirements, may find this
document of interest. It attempts to assess the "lay of the land" (as the
author understands it, as of the above date) to aid in requirements
definition and design.
The cal/sch application area stands out in contrast to the areas of
email and directory services, where SMTP/IMAP and LDAP (respectively)
provide mature, standards-based solutions. The standards for the
cal/sch application area are still in the early stages of development,
and therefore even the commercial products which provide cal/sch are
using proprietary approaches; open-source implementations are skeletal
to nonexistent.
There are two broad categories of cal/sch techniques: non-realtime (using
vCalendar and email messages), and realtime (which adds a client/server,
live-network protocol).
- The standards for non-realtime cal/sch are pretty stable at this point,
and are beginning to achieve adoption. Quite a few existing client
applications (i.e., user applications such as PIMs) already support
vCalendar and the non-realtime techniques.
- The standards for realtime cal/sch are still in "draft" status, and
it will likely be 1-2 years before they are finalized and widespread.
Therefore, a solution which interoperates across multiple client
applications will only be able to use non-realtime methods for some
time to come.
Requirements
============
The following is a potential list of requirements or desired features
for a cal/sch solution, which an organization should discuss and rank:
- Publication of "free/busy time" blocks (without details)
-- Non-realtime (through email)
-- Realtime
- Publication of calendar entries (with details)
-- Non-realtime (through email)
-- Realtime
- Scheduling (creation of meetings)
-- Non-realtime (through email)
-- Realtime
- Meeting acceptance/rejection
-- Non-realtime (through email)
-- Realtime
- Resource reservation (non-person scheduling)
- Recurring events
- Tasks (to-do items)
- Authentication and secure access
- Delegation (ability to schedule on-behalf-of)
- Privacy (withholding details of schedule items)
- Multiple calendars per person (for different life spheres)
- Reminders (alarms; e.g., by email, by pager)
- Interaction with outside users (over the Internet)
- Integration with a portal
- Synchronization to PDAs
Existing Implementations
========================
1. Microsoft Exchange Server/Outlook Client (commercial)
Exchange is clearly the market leader, and provides the richest
feature set. In particular, it provides both non-realtime and
realtime cal/sch abilities. [It likely provides most of the above
list of features as well; my research isn't complete on that point.]
Outlook can be installed in two modes, one of which is "Internet-Only
Mode" (or "Internet Mail Only" mode). In this mode, Outlook provides
non-realtime iCalendar scheduling ability; vCalendar objects can be
sent through email messages, dragged/dropped from the desktop or other
documents, etc. It can recognize incoming calendar events and respond
to them (automatically or manually) using non-realtime methods.
In this mode, Outlook also provides the ability to publish "free/busy
times" (i.e., without details) to an Internet server (by Exchange,
FrontPage Extensions, HTTP POST, or FTP). These "free/busy times" can
be consulted (realtime) by other Outlook clients for easy creation
of a meeting; however, the scheduling portion (notification of
all clients and acceptance/rejection of the meeting) is performed
non-realtime. [I have not been able to find documentation on the
format used for HTTP POST; Outlook expects a specific response from
the web server which is unknown to me.]
When Outlook is used in "Exchange mode" (for lack of a better term),
it can provide realtime scheduling. The obvious disadvantage
to this approach is that all users must use Outlook (or the
Exchange-based web calendar) in order to use this solution.
Outlook 2001 for the Mac, code named "Watson", will soon be available
(http://www.macwindows.com/exchange2k.html), but it is literally an
Exchange-only tool (no POP3/IMAP); it is even less standards-based
than Outlook for Windows.
Outlook provides web-based access to Exchange's calendar store.
Summary: Exchange supports one client (Outlook) plus web.
[An important unanswered question is: Can Outlook be used with
Exchange for cal/sch, but with SMTP/IMAP for email? The stark
division of the above two modes suggests a "no" answer to this
question.]
Microsoft has participated in the IETF "CalConnect" interoperability
tests (see below), and as they have for iCalendar, they will likely
continue to add support for Internet standards as they are developed.
Their past history, however (e.g., Windows 2000 Server, not-quite-DNS,
not-quite-LDAP, not-quite-Kerberos, etc.), would seem to suggest that
they will continue to use embrace-and-extend tactics where Internet
standards are concerned.
2. iPlanet (Netscape/Sun) Calendar Server (commercial)
The iPlanet (formerly Netscape) Calendar Server is also a fairly
mature product. It provides both non-realtime and realtime
cal/sch abilities, but in keeping with the nature of Internet-wide
interoperability, its focus until recently seems to have been on
non-realtime (using email).
The iCS ties in very nicely with the iPlanet Directory Server (LDAP),
and it uses the iDS's rich, fine-grained access-control abilities
to provide very flexible access control and delegation for users'
calendars. iCS provides the ability to define groups of users with
shared control of a calendar. Also, each user can define multiple
calendars (such as work, home, etc.) which are merged and presented
to users as a consolidated view; access control and delegation is
separate for each of these separate calendars.
iCS also ties in with Legato on Solaris (Networker, a.k.a. Solstice
Backup) for backups without downtime.
iCS provides web-based access to calendars, and this is how realtime
cal/sch is provided.
iCS's realtime cal/sch is only provided through web-based access;
direct realtime integration with Outlook is not provided. Summary:
iCS supports no clients plus web.
iPlanet has participated in the IETF "CalConnect" interoperability
tests (see below), and is clearly committed to the furtherance of
open cal/sch standards.
3. Steltor (formerly CS&T) CorporateTime and Lexacom Servers (commercial)
This company seems to round out the "top 3" active commercial cal/sch
server providers. They are active in the IETF process, and some of
their personnel have co-written the IETF draft standards.
They do appear to have an Outlook plug-in. [More research would be
needed before considering this company's products.]
4. Open Source
The longest-running open-source calendaring implementation is mcal
(http://mcal.chek.com/). While quite a few open-source applications
have added mcal support, mcal does not appear to be keeping up with
the modern IETF standards, and therefore seems to me to be a dead-end.
The group at the San Diego Software Studio are producing a library,
libical (http://www.softwarestudio.org/libical/), which is the
best-available implementation of the modern IETF standards. A
perl binding (Net::iCal) is also available. At this point the
library provides the non-realtime elements of the standards.
Ximian's Evolution (http://www.ximian.com/apps/evolution.php3)
holds out the best promise of a full-featured, open-source cal/sch
native client (it will also provide email, contacts, etc.), but it
is still in development.
The Horde Project (http://www.horde.org/) provides open-source, PHP
(web-based) groupware applications, including Kronolith, a calendaring
application. [Disclaimer: The author is on the Horde core team. :-)]
There are several other open-source web-based calendaring (and
groupware) solutions in various stages of development.
No open-source cal/sch servers yet exist, to my knowledge. The bottom
line is that there are no full-featured, mature, open-source cal/sch
solutions (complete, including server and realtime) available today.
The IETF (http://www.ietf.org/)
===============================
The Internet Engineering Task Force is an Internet community "concerned
with the evolution of the Internet architecture and the smooth operation
of the Internet". They are a standards body; their method for achieving
their goal is through the development and publication of interoperable
standards for the Internet. They have a long and distinguished history,
having developed and created the standards for such well-known Internet
protocols as DNS, FTP, SMTP, IMAP, and LDAP.
[The 50th IETF meeting was being held in Minneapolis, MN, USA as this
document was originally written.]
IETF Standards for Calendaring/Scheduling (http://www.calsch.org/)
==================================================================
The IETF Internet draft "Implementors' Guide to Internet Calendaring"
(draft-ietf-calsch-imp-guide) gives a good overview of these pieces,
and scenarios under which they're used. The standards fall into two
broad categories which we've labeled "non-realtime" and "realtime"
in this document:
Group 1: Object/Method Definition and Non-Realtime Protocols
(Note that iCalendar is a refinement/extension/further development
of the earlier vCalendar specification.)
IETF standards:
- RFC 2445 (iCalendar or "iCal"): calendar events/core objects
- RFC 2446 (iTIP): interoperable scheduling functionality
- RFC 2447 (iMIP): encapsulation for transport (iTIP in MIME)
Group 2: Realtime Protocols
IETF draft standards:
- draft-ietf-calsch-cap (CAP): realtime protocol (as IMAP is to email)
- draft-ietf-calsch-crisp (CRISP): iTIP-only subset of CAP
- iRIP [defunct?]
CalConnect
==========
In keeping with its goal of achieving multiple implementations of an
interoperable standard, the IETF cal/sch working group hosts regular
"CalConnect" meetings. Vendors bring their products, and the group
assesses progress toward interoperability, judges conformance with the
standards (as defined to date), and through discussion of the issues,
sets the next steps for furthering the standards in the IETF process.
The summary of the first CalConnect in Spring 2000 can be found here:
http://www.imc.org/ietf-calendar/mail-archive/msg03499.html
The next CalConnect has been rescheduled for April 2001 at Stanford;
results will be posted to http://www.calsch.org/ when they're available.
The IMC (http://www.imc.org/)
=============================
"The Internet Mail Consortium is the only international organization
focused on cooperatively managing and promoting the rapidly-expanding
world of electronic mail on the Internet." They have a lot of excellent
material on their web site, including information on calendaring.
Mailing Lists
=============
- IETF cal/sch working group (hosted at IMC)
Send email to <majordomo@imc.org> with "subscribe ietf-calendar"
in the body.
- libical
Send email to <minimalist@softwarestudio.org> with "subscribe
libical" as the subject.
Miscellaneous Other Notes/Questions
===================================
Outlook Express
This app. can do mail, news, and directory, but NOT calendaring.
Outlook 98
Check whether OL98 is in "Internet Mail Only" (IMO) mode by using
Help... About. Apparently, when it's not in that mode, you can't
publish free/busy to an open server (HTTP POST/FTP). It's also an
outstanding question (above) whether you can use Exchange-based
calendaring and open-based email at the same time.
The free/busy publishing requires that the Web Publishing Wizard
be installed. Vresion 1.52 is available from the Microsoft site
as wpie415-x86.exe (for IE >= 5). When WPW is run, it looks for
a file, /postinfo.html, which apparently contains something that
tells it the format for posting data to that server. I have no
idea what the format for this is.
In lieu of that, it will prompt you for the server and path, or
these can be set under "Options" "Calendar" "Free/Busy" button.
The URLs take the form:
http://[userid:passwd@]servername/dir/username.vfb
The "[...]" part is optional. The "dir" part could be a CGI script,
I think, if you knew what to output. The "http:" could be FTP.
The "username" part can be "%NAME%" for reading; this is what
allows Outlook to look the data up for someone else, when creating
a meeting.
Outlook 2000
[Supposedly has even more mature iCalendar and open support?]