icald - iCal to WCAP calendar publish and subscribe gateway
icald [-d] [-r authentication realm] [-a listen address] [-p listen port] [-s calendar server address] [-u user to run as] [-e SSL port]
icald is a simple HTTP server that implements the basic components needed to subscribe to and publish calendars with any of the Sun calendar servers that implement the WCAP protocol (including iPlanet, Sun ONE, and Sun Java). Other servers that implement WCAP may work but have not been tested.
http://CALENDAR-SERVER/command.wcap...
icald maps subscribe and publish requests to calendar server calendars using the URI of the request. The following mappings are used.
In all other respects, these two methods work as the first two.
All calendar publish requests require authentication, so there is no concept of an anonymous user. The user to publish as is taken from the HTTP Basic authentication information.
In Apple iCal, the calendar is published using a name specified by the user. The URI that is sent to the server includes this name with .ics appended as the final part of the URI. The following mappings are what is seen within icald.
Publish name: CALENDAR or USERNAME
Base URL: http://server:port/
Publish name: CALENDAR
Base URL: http://server:port/USERNAME/
Publish name: USERNAME
Base URL: http://server:port/USERNAME/
Login: OTHERUSER
It is of course possible to make USERNAME and OTHERUSER identical, in which case this method is no different from the first when the user is specifying their own default calendar.
The only interface for Sun ONE Calendar that utilizies the full features of the product is the Sun ONE Calendar Express web interface. All other interfaces, including this one, present limitations. In particular, the following limitations are known:
When using icald to publish calendars, there is no concept of multiple owners of a calendar. That is to say, Sun ONE will happily allow multiple people to publish to the same calendar, but it will make no attempt to synchronize differences among the calendars it receives. If one person publishes a set of events to a calendar and another person publishes a different set of events to the same calendar, the first set will be lost. It is up to the multiple calendar owners to manually synchronize events, either by hand or by a multi-step subscribe, copy, publish process.
In addition, other features that pertain to the calendar's originating system are not transferred -- in particular this includes alarms. It only makes sense for one system to control alarms, and whn the originator of the calendar is iCal, it will retain this control and strip alarm tags from the published calendar.
Other group interaction features available within Sun calendars (including invitations and event privacy options) are not present in iCal and thus cannot be published through icald. If you have need of these features, the Sun ONE Calendar Express web interface is the only interface that supports them. Be aware than any changes made through the web interface to a calendar published via icald will be lost the next time the calendar is published.
Subscribed calendars in iCal are read-only; you can not make changes to the events or add new ones. To Do items will be transferred (if so checked on the iCal subscription preferences), however e-mail reminders are not transferred, as they would have no place outside of the server environment (while VALARM tags within the export file are passed to iCal, iCal will strip these from the calendar).
icald is essentially just a gateway between iCal or something that uses that protocol and the Sun family of WCAP-capabale calendar servers. No attempt is made to translate the calendar data passed between the two, only to present it to each side in a form they understand. Any problems in how the data is interpreted by either side are the responsibility of the end programs.
Copyright (C) 2004-2005, John ``Rowan'' Littell. All rights reserved.
Redistribution of this script, either in source or any compiled binary format, with or without modificiation, is permitted provided the following conditions are met:
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THIS SOFTWARE IS PROVIDED WITHOUT ANY OBLIGATION ON THE PART OF THE AUTHOR TO ASSIST IN ITS USE, CORRECTION, MODIFICATION, OR ENHANCEMENT.
iCal is a registered trademark of Apple Computer, Inc.
Sun ONE, Sun Java, and iPlanet are registered trademarks of Sun Microsystems, Inc.
http://www.apple.com/ical, Sun ONE Calendar Server Programmer's Manual
John ``Rowan'' Littell - littejo at earlham dot edu