[see also: recurrence.txt GUPE/iCalendar.pm] =head1 Overviews http://en.wikipedia.org/wiki/ICalendar http://developer.apple.com/internet/appleapplications/icalendarfiles.html http://muddybranch.thejkgroup.com/ http://www.intellical.com/ Jason Klemow http://www.calconnect.org/resultsfromrecurrencequestionnaire.pdf =head1 Standards Bodies and Consortia http://www.calconnect.org/ =head1 Standard Formats Google Base has a set of attributes at: http://base.google.com/base/atom_specs.html also CSV and RSS, see http://base.google.com/base/howtobulkupload.html Google Calendar http://www.google.com/calendar http://groups.google.com/group/google-calendar-help-dataapi http://code.google.com/apis/gdata/overview.html has XML export. uses Atom, with extra namespaces: xmlns:gd='http://schemas.google.com/g/2005' xmlns:gCal='http://schemas.google.com/gCal/2005' gd:when gd:recurrence gCal:timezone vCalendar (1.0 September 18, 1996) http://www.imc.org/pdi/vcal-10.txt iCalender http://www.ietf.org/rfc/rfc2445.txt xCal aka xCalendar http://xml.coverpages.org/iCal.html Frank Dawson 2002 http://www.globecom.net/ietf/draft/draft-dawson-ical-xml-dtd-01.html Dawson, Reddy, Royer, Plamondon 2002 "iCalendar DTD Document (xCal)" http://www.ietf.org/internet-drafts/draft-ietf-calsch-many-xcal-02.txt http://www.calsch.org/ietf/archives/draft-ietf-calsch-many-xcal-02.html implemented in Mozilla Calendar, but not much pickup. DTD for mapping of iCalendar T. Hare 2005 "Guideline for use of XML with iCalendar elements" http://ietfreport.isoc.org/idref/draft-hare-xcalendar/ http://www.ietf.org/internet-drafts/draft-hare-xcalendar-03.txt uses attributes for vcalendar prodid and version defines a "-//IETF//DTD XCAL/iCalendar XML//EN" iCalendar dtd uses attributes for parameters D. Royer 2005 "iCalendar in XML Format (xCal-Basic)" http://inet-consulting.com/xcal.html draft-royer-calsch-xcal-02 puts prodid and version in elements uses lowercase for tag names but upper case for param values like role="CHAIR" and rrule content like BYDAY XML schema here: http://sw.sbay.org/xml/ http://sw.sbay.org/xml/xcal-20040224.xsd SKICal http://skical.metamatrix.se/ swedish; some good enhancements related to public events "RDF Calendar" http://esw.w3.org/topic/RdfCalendar http://www.w3.org/2002/12/cal/ http://www.w3.org/TR/rdfcal/ hCalendar http://developers.technorati.com/wiki/hCalendar http://microformats.org/wiki/hcalendar-brainstorming xhtml encoding iCalendar Basic http://www.ietf.org/internet-drafts/draft-royer-ical-basic-03.txt simplifies iCalendar http://xml.coverpages.org/draft-royer-ical-vcard-01.txt Using VCARDs with iCalendar allows ATTENDEE;VCARDURL="https:cal.example.com/user?uid=vcard=123.vcf":CAP:Doug@Royer.com http://www.iptc.org/EventsML/ seems to have died Regarding vCard and XML: http://xml.coverpages.org/vcard.html overview draft-dawson-vcard-xml-dtd-0[0-3] http://www.watersprings.org/pub/id/draft-dawson-vcard-xml-dtd-03.txt Dawson Frank Lotus Development Corporation 6544 Battleford Drive Raleigh NC 27613-3502 USA +1-617-693-8728 http://www.jabber.org/jeps/jep-0054.html carrying forward from Dawson elements names are upper case version is an attribute params are self-closing element children namespace is vcard-temp =head1 Standard Protocols CalDAV http://greenbytes.de/tech/webdav/draft-dusseault-caldav-01.html http://www.faqs.org/rfcs/rfc2446.html iCalendar Transport-indendent Interoperability Protocol (iTIP) static and dynamic event, to-do, journal and free/busy objects either store and forward (imip) or real-time CU calendar user to CU communication CUA and CS http://www.faqs.org/rfcs/rfc2447.html [iMIP] specifies an Internet email binding for [iTIP]. http://www.ietf.org/internet-drafts/draft-ietf-calsch-cap-02.txt CAP Calendar Access Protocol the CUA to CS communication IRIP real-time analog of imip. maybe being superseded by CAP? ICAP - defunct proposal (96), see http://www.clearblue.com/draft-oleary-icap-00.htm http://maelstrom.org.uk/ Steve Ferris implemented ICAP java client and server, with source other proposals: Scheduling Wide-area Transport Protocol SWTP http://www.p2software.com/ intranet consulting Simple Scheduling Transport Protocol (SSTP) presented by On Technology dead? Calendaring and Scheduling Interoperability Protocol (CSIP) presented by OnTime/FTP Software now opentext web based Internet Calendar Access Protocol (ICAP) presented by Clear Blue Network Systems and Lotus now criticalpath =head1 Open Source Projects Name Born Died URL Free Association 2000 http://www.advogato.org/proj/Free%20Association/ Reefknot 2001 http://reefknot.sourceforge.net/ Hula 2005 http://www.hula-project.org/ Novell's old NetMail server OSA/Chandler 2003 http://www.osafoundation.org/ =head1 Articles and Link Farms http://www.innerjoin.org/iCalendar/index.html http://linuxmafia.com/faq/Apps/scheduling.html DateLens http://www.cs.umd.edu/hcil/datelens/screenshots.shtml new design for a calendar requires .NET got eaten by Microsoft: http://research.microsoft.com/news/monthlyfeature/datelens.aspx http://www.w3.org/2001/sw/Europe/200210/calendar/vocab_usecases.html Semantic Web Calendaring vocabularies and usecases some interesting comments about the specs discusses iCalendar, xCalendar, SkiCap http://www.idealliance.org/papers/xml2001/papers/html/05-04-06.html Calendaring and Scheduling with XML-RDF draft-ietf-calsch-imp-guide-00.txt Once more into the Breach: Calendars, Events and RSS 2003 http://laughingmeme.org/archives/001224.html rant about calendar support in evolution: http://luke.hates-software.com/2004/05/03/d940c010.html also digs at mozilla calendar Scheduling Ourselves to Death http://www.kcoyle.net/schedule.html =head1 Desired Features Some desired features: categories email reminders indicate public and private when publishing publishing of free busy scheduling system (somehow) RSS feed handle recurring events handle multi-day and all-day events booking of rooms or other equipment send email to server to pick up an event (or pull from your email) pull in public holiday db (country-specific), and/or commemorative day db search by string in summary, qbe, etc. merging of desired set of calendars control of sorting by: recur vs. recur, has start time and duration, has start time only, neither start time nor duration =head1 Google Base See http://base.google.com/base/atom_specs.html http://base.google.com/base/attribute_list.html#event_date_range 2005-12-20T14:00:00 2005-12-20T19:00:00 2005-12-20 2005-12-05T11:59:59 1600 Amphitheatre Parkway, Mountain View, CA, 94043, USA 37.423130,-122.083706 http://example.com/images/1006.jpg See some discussion here: http://weblog.infoworld.com/udell/2006/06/13.html http://www.snellspace.com/wp/?p=314 doesn't like the new elements vs just including xcal or hcalendar =head1 JiCal See http://jical.sourceforge.net/ Has its own XML format that includes expanded events. =head1 iCalendar RFC2445 See http://www.softwarestudio.org/iCal/2445Issues.html Synctactically, iCalendar/vCalendar/vCard are similar. It is roughly "field: value", though the field names can be parametrized. Field values can contain 8-bit characters. Lines can be LWS wrapped (lines SHOULD be no longer than 75 octets). RFC 2445 grammar, in part: contentline = name *(";" param ) ":" value CRLF name = x-name / iana-token iana-token = 1*(ALPHA / DIGIT / "-") x-name = "X-" [vendorid "-"] 1*(ALPHA / DIGIT / "-") vendorid = 3*(ALPHA / DIGIT) param = param-name "=" param-value *("," param-value) param-name = iana-token / x-token param-value = paramtext / quoted-string paramtext = *SAFE-CHAR value = *VALUE-CHAR quoted-string = DQUOTE *QSAFE-CHAR DQUOTE NON-US-ASCII = %x80-F8 QSAFE-CHAR = WSP / %x21 / %x23-7E / NON-US-ASCII SAFE-CHAR = WSP / %x21 / %x23-2B / %x2D-39 / %x3C-7E / NON-US-ASCII VALUE-CHAR = WSP / %x21-7E / NON-US-ASCII Values can contain escapes: \, \" \n cal-address type examples (for example for ORGANIZER property): "MAILTO:jane_doe@host1.com" "CN=JohnSmith;DIR="ldap://host.com:6666/o=3DDC%20Associates,c=3DUS??(cn=3DJohn%20Smith)":MAILTO:jsmith@host1.com "ROLE=CHAIR:MAILTO:mrbig@host.com" URL property examples: "URL:http://abc.com/pub/calendars/jsmith/mytime.ics" "URL;VALUE=URI:http://davidcrow.ca/" "URL:http://host2.com/pub/busy/jpublic-01.ifb" (for a VFREEBUSY) =head1 iCalendar Issues Recurrence is complex, probably overly so. The standard requires that timezones be defined inline, yet there may be redefinitions of those timezones in the future that even affect future dates in existing calendars. This can mean conflicts with the conventional definition of the same-named timezones. This could happen with distant future events in old calendars,, as well as recurring events beyond a change in the definition. The properties such as UID, DTSTAMP, CREATED contrast "calendar store" with "object representation". This has unclear meaning when objects might be reformatted, republished, and so on. The semantics of references to other objects such as by RELATED-TO are similarly confusing. DTEND is unclearly defined. Many properties could be used with different semantics, and in some cases you'd like to use more than one such meaning at once. For example: is URL the authoritative ics file? a web page? a brochure? what about ATTACH? Note it can have a URI value also. (cv. WHURL and PROMO in SkiCal) iCalendar is focused on business meetings (ATTENDEE property, SENT-BY parameter, etc.), without a similar degree of support for public events. For example: no distinction between event title and summary (SkiCal TITLE) no way to indicate a set of multiple performers/speakers (SkiCal PERSONS, SKiROLE) no way to indicate type of location (radio, TV, indoors, outdoors) (SkiCal VENUE) no structured way to specify admission information (cost, tickets, reservations, etc.) SkiCal ACCESS PRICE PAYMETHOD BOOKINGS PROHIBITED no way to indicate the languages spoken at the event (vs. language of text in description) (SkiCal SKILANG) no easy way to indicate a schedule within the event (SkiCal OPTIMESET) It has weak support for alternate DESCRIPTIONs (html vs. text; short vs. long). There is the ALTREP parameter, but it makes little sense outside of a MIME context that can provide additional attributes. There is the LANGUAGE parameter which apparently allows for multiple LOCATION and DESCRIPTION and other text properties that otherwise can occur only once -- although the RFC is unclear on this, as 4.6.1 "eventprop" production says that "the following are optional, but MUST NOT occur more than once". There is no certain way of distinguishing an unknown time, an unspecified time, and an all-day event. Or of saying "some day between may 1 and may 8". What distinguishes COMMENT from DESCRIPTION? The LOCATION is free text, with no structured address support such as with vCard (place name, address, phone), nor a distinct directions field (like SkiCal DIRECTIONS, PLACENAME properties; TRAVELBY parameter). ORGANIZER is too limited as cal-address, and CONTACT is too free. What if the real organizer is an organization with a title, phone, etc.? There is weak and unclear specification for charsets: Can UTF-16BE be used? What to do once a VCALENDAR is detached from a MIME container? There is no property for a VCALENDAR title (like X-WR-CALNAME) or the owning organization of a VCALENDAR. Multi-user change tracking is weak (no distinction between submitted by, posted by, posted when, etc. -- each of which might differ from the organizer). SkiCal has PUBLISHER and MANAGEMENT, but those still don't really cover it all either. There is no suggested manner for namespace control on values of enumerated properties and parameters (CATEGORIES property, RESOURCES property, ROLE parameter, etc.) (see SkiCal NSREF). =head1 Example Event ================================================================ Teaser Hear From a Courageous African Woman Who Stood Up to the Vicious Ethnic Cleansing of the Black Community of Tampa, Florida - and Won! Title: "Is the San Francisco Bay Area for Whites Only? A Forum on Ethnic Cleansing" Subtitle: with housing community activist Connie Burton from Tampa, Florida When: Tuesday, June 29th, 7 to 9:30pm Where: Fellowship Hall of Humanity, 390- 27th St., ( between Telegraph and Broadway), Oakland Contact: African People's Solidarity Committee, (510) 295-7834 Call (510) 295-7834 for more info, leave a voicemail at 510-625-1106, or email uhurureparations@yahoo.com Description: On this coming Tuesday, June 29th from 7 to 9:30pm, the African People's Solidarity Committee is holding "Is the San Francisco Bay Area for Whites Only? A Forum on Ethnic Cleansing" at the Fellowship Hall of Humanity at 390 - 27th St (between Broadway and Telegraph) in Oakland. Featured as the keynote speaker will be Connie Burton, leader in the International People's Democratic Uhuru Movement out of Tampa, Florida. Several months ago, Burton led an African community struggle against the city of Tampa's plans to kick African people out of the Tampa Park apartments in what the city considered "prime real estate." Utilizing the combination of her weekly "Straight Talk" radio program she hosts in Tampa with massive leafleting, bullhorning, protests and participation in weekly Tampa housing authority meetings, the Uhuru Movement in Tampa under Connie's leadership was able to push out the city's latest ethnic cleansing plan to remove black people from the neighborhood! Join this discussion about the devastating situation that exists from the Tampa Bay to the SF Bay as African people are forced from their communities. Through policies of police containment and a U.S.-imposed drug economy, young Africans in their communities in the Bay area face prison, the military, or the grave while people people are able to move into their neighborhoods. Other speakers at the forum include: Quetzaocelocuia of the Barrio Defense Committee in San Jose, Maurice Campbell of the Community First Coalition of Bayview-Hunter's Point, Bakari Olatunji of the International People's Democratic Uhuru Movement in Oakland, Wendy Snyder of the African People's Solidarity Committee. Let's take a stand from the white community to support genuine economic development and an end to the war on the African community! Brochure: download the leaflet at http://mrwillis.crosswinds.net/Leaflet_Uploads/Gentrification.pdf =head1 Proposed Schema Here is a proposed schema. We attempt to indicate here the mapping of field(s) between our schema, iCalendar, and Atom. Area When when_start DTSTART, @TZID ISO8601 datetime with any precision (year down to second) has a numerical tz offset, unless "floating". offset taken from @TZID param, which is a name when_duration DTEND, DURATION (we use duration instead of end to avoid extra rules about tz etc.) if missing, then it is considered unknown (vs. 0 duration) cannot have more precision than start when_recur RRULE, EXRULE, RDATE, EXDATE Where LOCATION (multi-line plain text) whole location might be stored internally where_name single line free text where_addr_pobox the 7 vCard ADR fields; pobox and extended probably not used where_addr_extended where_addr_street where_addr_city where_addr_province where_addr_postal where_addr_country where_phone where_url URL, home page for location where_directions type=content (might be a link to directions) where_geo GEO (two floats long/lat) What all content fields can have content-type and lang summary SUMMARY type=content in iCalendar, free plain text, typically single line. used in isolation of rest of info. defaults to title, then to beginning of description title - if a movie, etc. that has a distinct title. will be shown in quotes. subtitle shown with the title, should not be set without it description DESCRIPTION type=content in iCalendar, multiple lines of free plain text which includes all people involved, and any schedule link* ATTACH, URL RFC2445 URL;VALUE=URI could be either the event or an ICS; it is vague attributes: rel href type (like Atom and HTML. Atom defines rel to be a URI or one of several tokens. type is media type here, and Atom says content/@type is broader) HTML says rel is CDATA, space-separated: http://www.w3.org/TR/REC-html40/struct/links.html#h-12.3 rel="eventhome" "flyer" "brochure" "registration" eventhome = a html home page specifically for the event (vs. typically pdf for flyer) category* CATEGORIES exactly the same as Atom: term (text) label (text) scheme (URI) no restrictions on term: http://www.atomenabled.org/developers/syndication/atom-format-spec.php#rfc.section.4.2.2 (alternative designs: URIs, TOKENs, QNames, labels) TBD: namespace declaration, and schema of choice labels (SkiCal NSREF is unspecified what the URI points to) one or more from various vocabularies event_type: concert, movie, art (poetry, dance, painting), conference, forum, educational/training,protest(march,vigil), group meeting, fundraiser, social (celebration, etc.) topic: police,prisons,education,health,democracy, human rights,environment,homelessness,international economy,history,law,race,labor,drugs incident: Katrina geoname (which it is about, not held at, such as from Getty or usgov Metropolitan Statistical Area): Iraq,Africa http://www.getty.edu/research/conducting_research/vocabularies/tgn/ http://geography.about.com/cs/largecities/a/metromicro.htm admission tickets, reservation, price, etc. Who ORGANIZER, CONTACT organizer_name organization name or individual name contact_name specific individual to contact organizer_email organizer_url home page organizer_phone Changes CREATED LAST-MODIFIED UID URL created_by created_date source_url original ics last_modified Some come from a fixed vocabulary of choices: event_type topics Some would be fkeys to a separate "address" table: location contact organizer full_name street street2 city state postal_code country directions phone mobile email homepage ================================================================ =head1 RDF Calendar RDF model for iCal: http://web.resource.org/rss/1.0/modules/event/ notes that date precision is significant more RDF and iCalendar: http://www.ninebynine.org/RDFNotes/Calendaring/iCal-proposal.html http://esw.w3.org/topic/RdfCalendarDocumentation http://swordfish.rdfweb.org/discovery/2003/11/rdfical/www2004-draft-20031113-final.html RDFiCal: iCalendar in RDF http://www.w3.org/2001/sw/Europe/200404/rssical/rssical.html RSS and RDF iCalendar http://www.w3.org/2002/12/cal/ RDF Calendar ical2rdf.pl now replaced by fromIcal.py has tools to convert schema from rfc to rdf/owl Dan Connolly http://dublincore.org/2003/12/08/dctype#Event dulbin core "Event" type DCMI =head1 SkiCal http://swordfish.rdfweb.org/people/libby/rdfweb/skical/skical-daml.daml http://swordfish.rdfweb.org/people/libby/rdfweb/skical/skical-daml-diary.txt iCalender/skical in DAML+oil http://skical.metamatrix.se/ Structured Knowledge Initiative http://skical.metamatrix.se/skical20010905.html http://xml.coverpages.org/draft-many-ical-ski-06.txt (defunct?) better suited for public (non corporate events) SkiCal - an extension of iCalendar adds WHAT,WHEN,WHERE,WHOW,WHY,WHO SKIROLE OPTIMESET opening time set OPTIMES TITLE (of the movie, etc.,, vs. SUMMARY) PERSONS (performer, presenter, etc.) CONTROL MANAGEMENT DIRECTIONS PROMO PUBLISHER WHURL url associated VENUE PLACENAME PRICE PAYMETHOD BOOKINGS ACCESS[ibility] NAMESPACE =head1 Libraries perl ccal http://www.dns.net/dist/ccal-1.6 (uses its own quick and dirty parser) GPL http://www.simondobson.org/downloads/files/ical2vcal iCal (v2) to vCal (v1) converter, using Text::vFile Icabra http://isg.ee.ethz.ch/tools/isgtc/index.cgi?page=module_source;module=icabra;source=icabra GPL ical2rdf.pl http://www.w3.org/2002/12/cal/ical2rdf.pl W3 license. iCal convert to RDF. see also fromIcal.py jclark on the perl modules: http://jclark.org/weblog/Programming/Perl/priorart.html python http://labix.org/python-dateutil http://vobject.skyhouseconsulting.com/svn/vobject/parsing.py vobject Apache license vobject http://svn.plone.org/view/collective/Calendaring/trunk/parser.py?op=file&rev=10643&sc=0 GPL. http://codespeak.net/icalendar/ LGPL http://distfiles.master.finkmirrors.net/ccal041.py GPL curses calendar manager http://www.w3.org/2002/12/cal/fromIcal.py W3 license. iCal convert to RDF. see also ical2rdf.pl http://sourceforge.net/projects/collective http://plone.org/newsitems/ploneicalendar/talkback/1087233044 Plone implementation. Erlang http://www.stacken.kth.se/projekt/yxa/cpl_implementation.html Java http://recurrance.sourceforge.net/ Apache license. implements RRULE http://wiki.osafoundation.org/bin/view/Journal/JeffreyHarrisToDo who can say. http://ical4j.sourceforge.net/ MIT license. parser. http://co-project.lboro.ac.uk/users/coch2/jical-1.4/docs/html/ JiCal. LGPL. iCalendar to html C http://dev.w3.org/cvsweb/Ical2html/ W3 license. C. iCalendar to HTML. uses libical. libical http://www.softwarestudio.org/libical/ and http://www.aurore.net/projects/libical/ LGPL/MPL libical-0.24 (Nov 24) was last release being picked up at http://www.aurore.net/projects/libical/ http://korganizer.kde.org/develop/architecture.html libkcal is C++ wrapper around libical http://cvs.gnome.org/viewcvs/libmimedir/mimedir/ LGPL parser. handles vCard, vCal, iCalendar. not to be confused with http://sourceforge.net/projects/libmimedir/ maintained by Sebastian Rittau Ruby http://icalendar.rubyforge.org/ http://vpim.rubyforge.org/ http://www.infinitenil.com/developers.html http://www.macdevcenter.com/pub/a/mac/2003/09/03/rubycocoa.html?page=last&x-maxdepth=0 http://noir.s7.xrea.com/pub/zaurus/ics2csv.rb GPL ruby converts ics to a CSV Objective C http://svn.opengroupware.org/SOPE/trunk/sope-ical/iCalSaxDriver/README LGPL. objective C. parser of iCalendar. for converting icalendar to sax parse events corresponding to xCal. C# http://remotecalendars.sourceforge.net/ COM plugin for Outlook http://sourceforge.net/projects/icalparser/ GPL C# primarily to convert to RDF PHP http://www.k5n.us/webcalendar.php?topic=FAQ WebCalendar http://cvs.drupal.org/viewcvs/drupal/contributions/sandbox/thehunmonkgroup/eventrepeat/eventrepeat.module?view=markup drupal module opengroupware http://dev.wp-plugins.org/file/ical-events/trunk/import_ical.php wordpress plugin Lisp http://de.geocities.com/ulf_jasper/lisp/icalendar.el.txt =head1 Perl Modules perl cpan support problems with cpan iCalendar modules at http://jclark.org/weblog/Programming/Perl/priorart.html DateTime::Format::ICal http://search.cpan.org/dist/DateTime-Format-ICal/lib/DateTime/Format/ICal.pm part of the latest datetime.perl.org project Dave Rolksy adopted from Date::Ical will parse recurrence (also uses DateTime::Event::ICal) DateTime::Event::ICal http://search.cpan.org/dist/DateTime-Event-ICal/lib/DateTime/Event/ICal.pm part of the latest datetime.perl.org project Flavio Soibelmann (also author of Date::Set, which became DateTime::Set) Net::vFile http://search.cpan.org/~jlawrenc/Net-vCard-0.5/lib/Net/vFile.pm vCard and vCalendar Text::vFile does not expand RRULE. does not support nested structures. same author as Net::vFile; no work since 2003. no writing Date::ICal http://search.cpan.org/~rbow/Date-ICal-1.72/ by Rich Bowen and the Reefknot team parses either ISO8601 or an ical duration no recurrence Net::ICal http://search.cpan.org/~srl/Net-ICal-0.15/lib/Net/ICal.pm no work since 2001; never finished. also part of reefknot supports rrule etc. at least in Net::ICal::Journal http://search.cpan.org/~srl/Net-ICal-0.15/lib/Net/ICal/Journal.pm which creates Net::ICal::Recurrence Text::vFile::asData does not expand RRULE. does support nested structures. does not unescape \, Date::Set http://search.cpan.org/~fglock/Date-Set-1.30/lib/Date/Set.pm can combine multiple dates. has internal support for Date::Set::ICal also part of reefknot supplanted by http://search.cpan.org/~fglock/DateTime-Set-0.17/lib/DateTime/Set.pm iCal::Parser::HTML uses iCal::Parser::SAX uses iCal::Parser uses Text::vFile::asData and DateTime::Format::ICal iCal::Parser uses Text::vFile::asData. It does expand RRULE, using DateTime::Format::ICal->new()->parse_recurrence It also expands events spanning multiple days into individual events. Data::ICal Artistic license. by Jesse Vincent, David Glasser, Simon Wistow uses Text::vFile::asData to parse. does its own writing. =head1 Open Source Native Clients Rainlendar http://www.rainlendar.net/ http://www.ipi.fi/~rainy/index.php?pn=projects&project=rainlendar Windows only client server runs windows or linux its own protocol not caldav. uses http://ssobjects.sourceforge.net/ GPL C++ Chandler Mozilla Sunbird (win32, osx, linux) http://www.mozilla.org/projects/calendar/sunbird_download.html only does webdav, not RFC protocol (as implemented by Sun) Evolution http://www.novell.com/products/desktop/features/evolution.html (osx, linux) Evolution Calendar "based on" GnomeCal, gnome calendar part of evolution worked on by "Frederico" Russell Steinthal rms39@columbia.edu interested in it http://www.softwarestudio.org/non-vc/MailArchives/libical/0165.html was: http://www.helixcode.com/apps/evolution.php3 http://primates.helixcode.com/~miguel/activity-log.html KOrganizer http://korganizer.kde.org/ (win32, osx, linux) does vcalendar http://devel-home.kde.org/~korganiz/development.html#architecture Kalendar no client-server, vcalendar, etc. http://www.gnome.org/users-guide/gcal.html uses icalendar http://www.gnome.org/mailing-lists/archives/calendar-list/ gnome-pim works with it? =head2 Commercial Calendar Clients 30boxes.com web-based ajax editing supports ics export Yahoo Calendar calendar.yahoo.com will take yahoo CSV export to produce ical: http://www.manastungare.com/projects/yahoo2ical/ Microsoft Outlook has problems: http://sippey.typepad.com/filtered/2004/02/ical_and_outloo.html http://www.rockinsoftware.com/WinDates.aspx shareware, now withdrawn http://www.even-t.com/even-t.html CorporateTime http://www.cst.ca/ -> www.steltor.com -> Oracle enterprise calendaring and resource scheduling has linux support spun out lexacom then brought it back in had some of the original tech in Netscape CS? on icalendar committee Lexacom/Corporate Software and Technologies (CS&T) montreal canada =head1 Web-Based Clients lists and reviews: http://planscalendar.com/index.php?p=competition http://www.machineofthemonth.org/articles/2003/0324/index.html http://courses.washington.edu/~hs590a/modules/23/webcalendars.html http://www.mg.co.za/mg/pc/9904/21apr-webcalendar.htm software: PHP iCalendar home=http://phpicalendar.sourceforge.net/nuke/ home=http://phpicalendar.sourceforge.net/phpicalendar-0.9.4/day.php home=http://sourceforge.net/projects/phpicalendar language=php license=GPL description=< http://www.calendarplus.com/index.shtml webcal webevent http://www.webevent.com/ http://freshmeat.net/news/2000/10/11/971260145.html open source commercial perl www.webcal.com -> http://calendar.yahoo.com/ http://www.radix.net/~cknudsen/webcalendar/ php http://mkruse.netexpress.net/scripts/calendar/docs/ perl. unclear license http://www.blue-gecko.com/framecal/ perl. http://www.efridge.com/?userhash=demonstration commercial web-based personal and public citadel http://uncnsrd.mt-kisco.ny.us/citadel/ multi-protocol BBS framecal http://curiosityshoppe.tierranet.com/framecal/cal.html web-based service http://www.cp.net/solutions/cal_ec.html software: Lozinski's Calendar topic=web calendars home=http://www.davelozinski.com/scripts/calendar/ license=commercial http://www.schipul.com/tendenci/calendarevents/event_admin.asp commercial Tendenci http://www.kamath.com/calendar/ ASP license: no-redistribute, must-link: http://www.kamath.com/calendar/copyright.asp dead since about 1999 others