September 2011


A couple of months ago I began saving the iCalendar files that are submitted to the iCalendar Validator. Today I extracted a list of unique names of iCalendar producers along with associated counts of the number of calendars validated for each. Here they are, with Google Calendar at the head and a classic long tail distribution of almost 600 other iCalendar producers. (You can also see them elsewhere by name as well as by count.)

The next step will be to analyze how well these these producers conform to the validator’s interpretation of the iCalendar spec. But the list itself forms an interesting data set. We know intuitively that, after 12 years of evolution, the iCalendar ecosystem must have become broad and diverse. Here’s a nice illustration of that breadth and diversity.

(Note that these counts don’t necessarily reflect the real distribution of iCalendar producers. The iCalendar Validator is closely associated with the elmcity project, so certain producers used heavily there — DDay.iCal, EVDB, Meetup — are overrepresented. On the whole, though, I’d guess this is a reasonable proxy for the distribution of producers.)


-//Google Inc//Google Calendar 70.9054//EN 2102
-//DDay.iCal//NONSGML ddaysoftware.com//EN 334
-//SchoolCenter/NONSGML Calendar v9.0//EN 280
-//EVDB//www.eventful.com//EN 200
-//hacksw/handcal//NONSGML v1.0//EN 163
-//Meetup Inc//RemoteApi//EN 145
-//Meetup//RemoteApi//EN 143
-//Events at Stanford//iCal4j 1.0//EN 137
-//Drupal iCal API//EN 133
NingEventWidget-v1 131
-//Mozilla.org/NONSGML Mozilla Calendar V1.1//EN 101
-//CustomICS by Robert Brady 888-523-7275 81
PHP 76
-//Last.fm Limited Event Feeds//NONSGML//EN 61
e-vanced event management system 56
-//Microsoft Corporation//Windows Live Calendar//EN 55
-//Microsoft Corporation//Outlook 12.0 MIMEDIR//EN 55
-//openmikes.org/NONSGML openmikes.org//EN 53
PRODID;X-RICAL-TZSOURCE=TZINFO:-//com.denhaven2/NONSGML ri_cal gem//EN 49
-//ActiveDataExchange/Calendar V3.12.0//EN 47
Data::ICal 0.16 36
-//Facebook//NONSGML Facebook Events V1.0//EN 36
-//sports.yahoo.com//San Francisco Giants Calendar (MLB)//EN 35
http://devliquid.hillel.org/ 33
-//University of Oulu//SEAA 2011 Conference Program//EN 33
iCalendar-Ruby 32
-//Microsoft Corporation//Outlook 11.0 MIMEDIR//EN 31
https://news.piratenpartei.de/calendar.php 31
-//sports.yahoo.com//San Francisco 49ers Calendar (NFL)//EN 31
-//Refresh Web Development//Helios Calendar//EN 30
-//strange bird labs//Drupal iCal API//EN 29
-Consultation Manager iCal File 28
-//Kennedy Space Center launches by Chad//NONSCML//EN 27
-//ddaysoftware.com//NONSGML DDay.iCal 1.0//EN 27
-//Apple Inc.//iCal 4.0.4//EN 26
-//Ascensha//Causeway Workgroup Calendar//EN 25
-//Events Calendar//iCal4j 1.0//EN 25
-//Enzian Specials by Chad//NONSCML//EN 24
Absorb LMS 24
-//Apple Inc.//iCal 3.0//EN 22
Clear Books 22
-//University of Geneva//Calendar v1.0//EN 22
PRODID;X-RICAL-TZSOURCE=TZINFO:TeamPages.com 22
-//lanyrd.com//Lanyrd//EN 20
-//Upcoming.org/Upcoming ICS//EN 20
TT-Kalender 19
-//ForeTees//NONSGML v1.0//EN 19
-//Webmaster-Portal// 19
-//suda.co.uk//X2V 0.9.2.1 (BETA)//EN 18
-//Partyflock//Partyflock_agenda_user_350057//EN 18
-//John Papaioannou/NONSGML Bennu 0.1//EN 18
-//collegefootballcalendar.net//2011-2012 NCAA Football Calendar//EN 17
-//Kerio Technologies//Kerio Connect//EN 17
BedeWork V3.5 17
-//Apple Computer\, Inc//iCal 2.0//EN 17
-//Trumba Corporation//Trumba Calendar Services 0.11.8113//EN 17
-//Schedule Star LLC//HighSchoolSports.net Calendar 2009.02.19//EN 16
-//MH Software Inc//Calendar – 3.2.13-pre8//EN 16
-//Springshare//LibCal//EN 16
-//University of California\, Berkeley//UCB Events Calendar//EN 16
-//ViableIT Inc//athletechs.com Calendar 1.0//EN 15
-//FBC//Turnierkalender//EN 15
-//Microsoft Corporation//Outlook 14.0 MIMEDIR//EN 14
-//Sølvguttene\, //Aktivitetskalender//EN 14
TOUTWEB http://www.toutweb.ac-versailles.fr 14
-//yeltzland/Calendar v1.0//EN 14
-//SimpleMachines//SMF 1//EN 14
-//Korfball.de//NONSGML Korfball.de V2.0//EN 13
-// Kansas Humanities Events Calendar //NONSGML v1.0//EN 13
RSS2iCal 0.0.1 13
-//Calendar//Calendar Event//EN 13
-//Dasos//NONSGML berksevents.com//EN 13
-//davical.org//NONSGML AWL Calendar//EN 13
-//Evolvera AB\, //TimeEdit//EN 12
-//Pingstkyrkan Sundsvall//Kalender//SV 12
-//Apple Inc.//iCal 5.0//EN 12
-//GMN training events//NONSGML v1.0//EN 12
-//RidgeStar//NONSGML v1.0//EN 12
-//Microsoft Corporation//Outlook 12.0 MIMEDIR//EN 12
-//Intand Corporation//Tandem for Schools//EN 12
-//Gala Festival Engine//gala-engine.com//EN 12
https://vertrieb.panomizer.de 12
-//loco.ubuntu.com//EN 12
Coldfusion8 12
-//VTM//TEXT Causeway Calendar//EN 11
-//Generated by RSScal//Tom Henderson 2007 11
-//herald-dispatch/calendar//NONSGML v1.0//EN 11
-//Events Manager//1.0//EN 11
-//CHECK24 Vergleichsportal GmbH//Kfz iCal Termin v0.1//DE 11
-//FwdMeeting.app//EN 11
-//FAST//NONSGML v1.0//CZ 11
Mobile Geographics Tides 3988 2011 11
-//Punahou School/finalsite//NONSGML v1.0//EN 11
-//Bryce Campbell/NONSGML v1.0//EN 11
-//beTicketing/Events//EN 11
-//djeebus/scheduleanywhere//NONSGML v1.0//EN 11
-//mySportSite Inc.//mySportSite//EN 11
-//nikatla.de//MoDuL//DE 11
PRODID;X-RICAL-TZSOURCE=TZINFO:-//ArcticStartup//ri_cal gem//EN 11
-//Weather Underground Inc//Wunder Weather Calendar//EN 11
-//CALENDARSERVER.ORG//NONSGML Version 1//EN 10
-//Ben Fortuna//iCal4j 1.0//EN 10
-//Linux Users’ Group of Davis//events-as-ics 2006.09.12//EN 10
-//WestConn Events//iCal 2.0//EN 10
-//Korrio Inc//Korrio Calendar 0.42//EN 10
-//TPP//v2.2.6//DE 10
soe_events 10
Ajax Event Calendar WordPress Plugin 10
de.rwth-aachen.filmstudio.www 10
-//Datasport//Datasport Events V0.1//EN 9
-//Vertical Magazine//VerticalADCalendar//EN 9
-//denef.design\, //iCalCreator 0.1//EN 9
-//Oakland Unviersity//NONSGML Events//EN 9
-//sports.yahoo.com//Connecticut Huskies Calendar (NCAA Men’s Hoops)//EN 9
-//blogTO//NONSGML Toronto Events V1.0//EN 9
-//CiviCRM//NONSGML CiviEvent iCal//EN 9
-//Microsoft Corporation//OutlookMIMEDIR//EN 9
-//sports.yahoo.com//Central Conn. St. Lady Blue Devils Calendar (NCAA Women’s Hoops)//EN 9
-//Export//Set-a-Date//EN 9
-//winchesteryouthhockey.com//Schedule Calendar 0.001//EN 9
-//guthrietheater.org///Schedule Calendar 0.001//EN 8
-//The Horde Project//Horde_iCalendar Library\, Horde 3.3.4//EN 8
-//UB Events Calendar//NONSGML v1.0//EN 8
-//jEvents 1.5 for Joomla//EN 8
-//crystalbootssilversaddles.org//NONSGML // 8
i-Aspect IAF 1.0.23 8
-//ReminderFox V1.9.9.4.2//EN 8
-//Arnolds calendar// 8
-//flaimo.com//iCal Class MIMEDIR//EN 8
Computers in Personnel Ltd – Ciphr 8
-//ISCOPE GmbH//NONSGML iCalendar library for PHP//DE 8
-//WebCalendar-v1.1.2 8
Town of Chapel Hill Calendar Creator 8
-//Edtech\\\, //Ultranet 2.3.4//EN 8
-//Proweso/TeamData//DE 8
-//AntonDesign//NONSGML LUCS//EN 7
-//LEARNING CURVE PLANNER//DAIRY WIDGET//EN 7
-//Ascensha//Causeway Calendar//EN 7
-//ABC Denayer//NONSGML DenayerAgenda//EN 7
-//DNN//Events 05.00.02//EN 7
-//F30//NONSGML Text Editor//EN 7
-//Terrapinn//The Internet Show Middle East//EN 7
-//Clubless//NONSGML//EN 7
-//zulily//reminders//EN 7
-//Lotus Development Corporation//NONSGML Notes 8.5//EN 7
Zimbra-Calendar-Provider 7
-//WebCalendar-ics-v1.2.3 7
//RESEARCH IN MOTION//BIS 3.0 7
+//IDN hrooster.nl/icsFeed//NONSGML v1.0//EN 7
-//ESD105//NONSGML v1.0//EN 7
-//University of St Andrews//Galen Timetable//EN 7
-//Cairns State High School//Events Manager Export//EN 7
-//ELT Calendar//Eventer 1.0//EN 7
bnmng 7
-//UT///NONSGML v1.0//nl-NL 7
-//Telerik Inc.//NONSGML RadScheduler//EN 6
-//InstituteOfClinicalResearch//NONSGML v1.0//EN 6
-//Skoonhoven//VUrooster//NONSGML v1.0//EN 6
-//TPP//T P P v2.2.6//DE 6
-//Vereniging Voor Natuurkunde//NONSGML Activiteitenkalender//NL 6
-//MNC Heren 8 Kalender//NONSGML kigkonsult.se iCalcreator 2.10.5// 6
-//Costasoft//CalGen//IT 6
-//MGL//APPOINTMENT//EN 6
-//ReminderFox V1.9.9.4//EN 6
-//Typo3 CMS\, News Event Extension 6
-//Nevobo/Competitie/NL 6
-//Scientia Ltd//iCalendar Server v 1.0//EN 6
-//kex.se//NONSGML kigkonsult.se iCalcreator 2.10.5// 6
-//TYPO3/NONSGML Calendar Base (cal) V1.4.0//EN 6
-//Trumba Corporation//Trumba Calendar Services 0.11.8009//EN 6
-//Day Software//CQ5 Calendar 5.4.2//EN 6
CALENDAR_APP_EXAMPLE_FOR_PMP 6
-//RHHA//NONSGML Cal//EN 6
-//sphereinc//jira to iCal Vacations 0.09//EN 6
-//stgeorge.org//calendar.php//NONSGML v1.0//EN 5
-//polishprofessionals.org.uk//NONSGML kigkonsult.se iCalcreator 2.8// 5
-//SHEA/syndicated//NONSGML v1.0//EN 5
-//Remember The Milk//rtm.Service.iCalendar.Export 3.0//EN 5
-//SFU CourSys//courses.cs.sfu.ca// 5
iTV – televizni program 5
-//www.byucougars.com//NONSGML kigkonsult.se iCalcreator 2.8// 5
THARTSCAL 5
-//jhart//skytools_icalendar//EN 5
Microsoft Exchange Server 2007 5
Integrated Resources Booking System 5
-//Air Crew Portal//.air V0.2b//EN 5
http://www.billomat.net/service/feed/ical/ 5
HSJ – Excel 5
-//Abreu Viagens//CorpAbreu//PT 5
-//ED//Agenda Harmonie//EN 5
VBCPS Calendar Application 5
-//192.168.100.199//NONSGML iCalcreator 2.4.3// 5
-//Microsoft Corporation//Outlook 10.0 MIMEDIR//EN 5
-//Apple Computer\, Inc//iCal 1.0//EN 5
-//The Highbar LLC//BoardOnTrack//EN 5
-//Trumba Corporation//Trumba Calendar Services 0.11.8016//EN 5
-//64.56.109.132//NONSGML iCalcreator 2.6// 5
-//Leaguerunner//Team Schedule//EN 5
-//Legends Racing UK//Race Calendar//EN 5
-//Trumba Corporation//Trumba Calendar Services 0.11.8024//EN 5
-//ABC Corporation//NONSGML My Product//EN 4
-//Algit d.o.o.//NONSGML iUrnik 7.0.680//EN 4
Common Place 4
-//Schoolonline//Schoolonline 1.0//NL 4
-//78.47.136.163//NONSGML iCalcreator 2.6// 4
-//Revoshop//Brønshøj kampe//EN 4
-//agenda.strasweb.fr//NONSGML kigkonsult.se iCalcreator 2.10.5// 4
-//RidgeStar//NONSGML v4.8.2//EN 4
-//glenallenpool.com//GlenAllenCommunityCenter//EN 4
-//Incom.org//iCal Helper//DE 4
-//iCal Parser Test//NONSGML v1.0//EN 4
-//Novell Inc//Groupwise 12.0.0 Beta 4
-//Middlebury College//Dining Menus//EN 4
-//Mercury//cam.ac.uk// 4
-//Lotus Development Corporation//NONSGML Notes 6.0//EN 4
-//D2Rec WEB//EN 4
-//Church of Jesus Christ of Latter Day Saints//LDS Calendar 2.0//EN 4
-//Cambridge Publications//NONSGML ConferenceSys//EN 4
-//Double Yellow//DY//EN 4
-//HOCZ.org//srazy.hocz.org//EN 4
-//Foris//Meetings//EN 4
-//eZ Systems//eZ Publish//EN 4
-//Trumba Corporation//Trumba Calendar Services 0.11.7922//EN 4
http://www.jeripeier.ch/piper+ 4
-//UM//UM*Events//EN 4
//Dave Warker//Remember? 4.6.2d1 4
-//TIMEANDDATE AS//NONSGML//EN 4
Clubless Event Invite 4
http://aol.animanga.at/ 4
-//ungarn.brunstadworld.org// Ungarn.iCal 1.0//EN 4
infosys@rn.inf.tu-dresden.de 4
GIGPRESS 2.0 WORDPRESS PLUGIN 4
-//vodafoneprojects-hr.mediaxplosion.nl//NONSGML kigkonsult.se iCalcreator 2.10.5// 4
IntraSEIC ICS Generator 4
-//Terrapinn//World National Oil Companies Congress 2012//EN 3
-//test.org//NONSGML kigkonsult.se iCalcreator 2.10.5// 3
-//CBIT//eAdministration//DK 3
-//MightyMax/JPT/ripper v1.0//NL 3
-//ELT Calendar//Add to calendar//EN 3
-//Tethr.co.uk/NONSGML Tethr 0.1//EN 3
-//Microsoft Corporation//Outlook 9.0 MIMEDIR//EN 3
-//TBP\ Inc//iCal 1.0//EN 3
-//NONSGML Events //EN 3
-//Taxi Licensing//MOT BOOKINGS//EN 3
-//NOVASOFTWARE//Calendar//IT 3
http://www.example.com/calendarapplication/TZ:+01:00 3
http://www.trinews.at 3
DaisyTest 3
-//DNN//Events 05.02.00//EN 3
-//Novell Inc//Groupwise 8.0.2 3
eAdministration 3
-//MIA Consulting//MIA_Toolkit v1.0//EN 3
-//hugoviste.cz//NONSGML kigkonsult.se iCalcreator 2.10// 3
-//i:FAO Aktiengesellschaft//NONSGML cytric r10//EN 3
-//localhost//NONSGML iCalcreator 2.6// 3
-//Trumba Corporation//Trumba Calendar Services 0.11.7914//EN 3
-//Hester Jans//Agenda//NL 3
-//Ibooqu Calendar 1.0//EN 3
-//University of Florida//NONSGML Calendar v1.0//EN 3
-//Intand Corporation//Tandem//EN 3
-//koivuniemi//navettabroker 1.0//FI 3
-//WBT Systems//NONSGML TopClass//EN 3
-//University of Cambridge/WattLab V1.4//EN 3
-//LOGICS SOFTWARE GMBH//MOBILE APP 2.1//EN 3
-//Example/ExampleCalendarClient//EN 3
-//meds.queensu.ca//iCal MEdTech Central Calendar MIMEDIR//EN 3
-//MGL MakingGreatLeaders//NONSGML MGL//EN 3
-//Eveoh//Eveoh iCalExporter 1.2//EN 3
-//The Taft School//NONSGML v1.0//EN 3
-//Maxinutrition//iCal 2.0//EN 3
-//GENTICS Content.Node//NONSGML AWO Event//DE 3
-//Lotus Development Corporation//NONSGML Notes 7.0//EN 3
-//Lotus Development Corporation//NONSGML Notes 8.5.2//EN_C 3
-//Markthisdate.com\,0.7 3
-//Generated by PHP in Linux!//NONSGML v1.0//EN 3
-//OHAI.CA//Brian Lai’s Awesome iCal Parser 1.01//EN 3
-//Appointments On Time//EN 3
-//SweepAround.Us: Ward 40\, Sweep Area 5//EN 3
TEST 3
NetProfits Guidance Scheduling 3
-//Plan 2011Z CB//NONSGML v1.0//EN 3
Microsoft Exchange SERVER 2007 3
-//Schedule Star LLC//HighSchoolSports.net Calendar 2009.02.19//ENVERSION:2.0CALSCALE:GREGORIAN 3
UVT/ESG 3
-//Saltech Systems//NONSGML Saltech CMS 2011//EN 3
-//sol3//EN 3
ReflexAppointment 3
-//Amtelco/Oncall//NONSGML V1.0//EN 3
-//Rentmanager XI//EN 3
-//Reincubate Ltd//iPhone Backup Extractor 3.0.8//EN 3
Nova-Migration-PC-1.0 3
-//Sotic Ltd//EN 3
-//Roundcube Webmail//NONSGML Calendar//EN 3
-//Scott Crevier//SouthEndZone.com//EN 3
-//Brian Victor//BTBCal 3
-//OHAI.CA//Brians iCal Generator 1.01//EN 3
-//ServeiTIC ETSAB//iCal4j 1.0//EN 3
-//p77b Inc//iCal Splitter r1//EN 3
-//Sølvguttene//Aktivitetskalender//EN 3
IE – 2011 3
-//Ascentis Corporation//CalExporter 1.0//EN 3
-//synexarium_arabic@copticchurch.net//NONSGML kigkonsult.se iCalcreator 2.10// 3
-//IP.Board Calendar 3.1.4//EN 2
-//iwooweb.umcn.nl/rooster/B1GM1t_rooster_12-8-2011.ics//NONSGML iCalcreator 2.6// 2
-//Zarafa//7.0.1-28479//EN 2
Reflex Appointment 2
-//WebCalendar-v1.0.2 2
-//YuMe Inc//NONSGML My Product//EN 2
-//www.bostonharborislands.com//NONSGML kigkonsult.se iCalcreator 2.8// 2
-//jaegerlacke.de//NONSGML kigkonsult.se iCalcreator 2.8// 2
-//Genbook, Inc//Genbook Calendar 1.0//NONSGML v1.0//EN 2
-//flybe SDRA iCal Export//Daniel Giles//EN 2
-//inter-actief//amélie//NL 2
-//AbanQ/AbanQCalendarClient//EN 2
-//Volleyball calendar 2011-2012// 2
VMH Akademie Mailer 2
-//192.168.65.8//NONSGML iCalcreator 0.9.9// 2
-//127.0.0.1//NONSGML iCalcreator 2.6// 2
- // LuxCal 2.5.0 // I+R Web Calendar // EN 2
-//Vrijhof Cultuurcentrum//Admino 3//EN 2
-//Abilene Christian University//CM 2011.1//EN 2
UWA Whatson 2
-//adb_birthdays2ical//V0.1//EN 2
SuperOffice Calendar 2
-//http://nitalk-dev.natinst.com//ics-export-sbs-plugin//EN 2
-//Hochschule Heilbronn//ICS Downloader//DE 2
www.handball.no 2
feed2ical 0.0.1 2
Microsoft CDO for Microsoft Exchange 2
Fenwick/Kinopop 2
feed2ical 0.1 2
-//dukamunka.hu// DukaMunka.iCal 1.0//HU 2
ApplyMate Reminders 2
-//DougBrown//WHS Date Generator – copyright 2011 //EN 2
Microsoft Exchange Server 2010 2
METHEUS 2000 2
-//Church of Jesus Christ of Latter Day Saints//LDS Calendar 1.6//EN 2
JustaTest 2
-//chapterboard.com//NONSGML iCalcreator 2.6// 2
-//Chris Malton//UKS_WebExport v1.0//EN 2
-//d-elft.nl//NONSGML kigkonsult.se iCalcreator 2.10.5// 2
-//blah/test 2
http://ortsring-weiler.de/ 2
http://cybot.eu.org/zapo/ 2
//annando/mybb-ical//DE 2
-//Air Crew Portal//Air//EN 2
//Bedework.org//BedeWork V3.7//EN 2
-//Annual//Annual 70.9054//EN 2
-//Feuerwehr Eriskirch//NONSGML v1.0//EN 2
-//Air Crew Portal//Air v//EN 2
-Consultation Manager 2.0 2
-ANSJOB//IKSTYM//1112 2
-//AntonDesign//NONSGML v1.0//EN 2
-//Apple Inc.//iCal 4.0.3//EN 2
//opencampus.ssig.ch\ v2.0//IT 2
NONE 2
-//EMA Inc//EMA Private//EN 2
-//EventPoint, Inc.//TechEd Australia 2011 Calendar//EN 2
-//Apple Computer\, Inc//iCal 1.5//EN 2
//Nokia Corporation//Maemo5 Calendar PR1.2//EN 2
-//Apple Inc.//iCal 3.0m//EN 2
-//MKIVC//Public//EN 2
-//Terrapinn//Hedge Funds World Asia 2011//EN 2
-//PBS Arts//NONSGML GIVE ME THE BANJO//EN 2
-//Songkick//iCal 1.0//EN 2
-//SYFADIS//PORTAIL FORMATION//FR 2
-//TV-kalendern.se//NONSGML Calendar feed for television//EN 2
-//NC State OIED//NONSGML v1.0//EN 2
-//P2D Prontuario Universal//P2D Calendar 1.7//PT-BR 2
-//Paprikka_ERP//NONSGML kigkonsult.se iCalcreator 2.10// 2
-//localhost:2026//NONSGML v1.0//EN 2
-//Rearden Commerce//iCal4j 1.0//EN 2
-//suda.co.uk//X2V 0.7.2 (BETA)//EN 2
-//Maxinutrition//iCal 1.0//EN 2
-//Meetup//Meetup Events v1.0//EN 2
-//The Horde Project//Horde_iCalendar Library\, Horde 3.3.8//EN 2
-//Microsoft Corporation//Outlook MIMEDIR//EN 2
-//SoPA UoE//Event Calendar//EN 2
-//LUIS/handcal//NONSGML v1.0//LV 2
-//Planetarium Hamburg//Planetarium Hamburg Technikeinsatzplkanung//DE 2
-//test//Set-a-Date//EN 2
-//USBank//NONSGML v1.0//EN 2
-//Snow B.V.//NONSGML ldap2ics.pl v0.1//EN 2
-//JH-data//www.kobh.dk v1.0//EN 2
-//K Desktop Environment//NONSGML libkcal 4.3//EN 2
-//Skiteam Wolfskamer//Wedstrijdagenda//NL 2
-//Taxi Licensing//Basildon Borough Council//EN 2
-//TAO Outlook-Converter//software.tao.at// 2
-//School Datebooks Inc//The Zoneâ„¢ – Ursuline Academy of Cincinnati//EN 2
-//Sølvguttene//Aktivitetskalender//NO 2
-//TheWeddingDJ 2
-//northwestern_econ_pinksheet//NONSGML iCalcreator 2.6// 2
-//Union Korneuburg//iCal4j 1.0//EN 2
-//CE Systems//calendarexchange 1.0//EN 1
-//Numara Software, Inc.//FootPrints Calendar//EN 1
-//NWHS Events//EN 1
1
-//CitySocialising//NONSGML CitySocialising Socials v1.0//EN 1
-//CMS4Schools.com//NONSGML Pro//EN 1
http://www.htw-aalen.de/ 1
-//Plan 2011Z CA//NONSGML v1.0//EN 1
-//PIRATEN//NONSGML ELSAevent//DE 1
http://www.mscbeuern.de/ 1
-//arqcore.com//NONSGML iCalcreator 2.10// 1
-//Asia Pacific Civil-Military Centre of Excellence//NONSGML v1.0//EN 1
-//Calendar For 1
-//Calendar Labs//Calendar 1.0//EN 1
-//Cambridge Folk//NONSGML Cam-French//EN 1
-//BusyMac LLC/BusyCal 1.5.4/ET 1
-//CalendarONE Pte Ltd//Entourage Mac 11.0 MIMEDIR//EN 1
-//OJP/Thales//EN 1
-//calendar-workoptions b.v..eazymatch.net//NONSGML kigkonsult.se iCalcreator 2.8// 1
-//Open Source Applications Foundation//NONSGML Chandler Server//E 1
-//bughome/tasks//NONSGML v1.0//EN 1
livesportontv.com 1
-//BlackParadigm/Schedule/FR 1
-//ATK Palvelu Hakosalo Oy//Yrinet3-asiakashallintajärjestelmä//FI 1
-//PimlicoSoftware Inc//Pimlical Calendar ICS Export//EN 1
-//Broadnet Teleservices/Event manager//EN 1
Id de procedencia (Compa�ia) 1
Lagsidan 1
-//PBS Arts//NONSGML 1
-//212.90.148.26//NONSGML kigkonsult.se iCalcreator 2.8// 1
-//216.71.91.126//NONSGML iCalcreator 2.4.3// 1
-//193.202.110.157//NONSGML iCalcreator 2.6// 1
-//SMW Project//Semantic Result Formats 1
-//192.168.65.8//NONSGML kigkonsult.se iCalcreator 2.10.5// 1
University of Kent THALIA 1
-//Sol-3/sol3-export-crm-calendar-ics.pl//EN 1
-//Schedule Star LLC//HighSchoolSports.net Calendar 2009.02.19//CALSCALE:GREGORIAN 1
-//schleifring//messen 1
TT-KalenderMETHOD:PUBLISH 1
-//78.47.136.163//NONSGML kigkonsult.se iCalcreator 2.10.5// 1
-//002511509501000000000000000000000002000_NÖ Männer Meister PlayOff//NONSGML kigkonsult.se iCalcreator 2.10// 1
ANSJOB IKSCRIPT 1
-//SHEA//syndicated//NONSGML v1.0//EN 1
XVU iCal 1
-//Shrimad Rajchandra Mission//Mission Calendar 1.0//EN 1
PRODID;X-RICAL-TZSOURCE=TZINFO:-//Full Slate\, Inc.//NONSGML fullslate.co 1
HIP-HOP.DK 1.0 1
–//Mozilla.org/NONSGML Mozilla Calendar V1.1//EN 1
-////NONSGML kigkonsult.se iCalcreator 2.10.5// 1
-//scrollday.com//NONSGML kigkonsult.se iCalcreator 2.8// 1
www.apartmentsapart.com 1
-//SimpleMachines//SMF/RAphotoclub v1.0 1//EN 1
-//anzevents.adobe.com – Creaive Class: for creative people// 1
ONNET OFFLINEKALENDAR 1
-//St. Luke University Parish//stlCalendar v1.0//EN 1
Projektron BCS 1
Open-Xchange 1
-//Reincubate Ltd//iPhone Backup Extractor 3.0.8//EN // RECOMMENDED INCLUSION 1
-//PYVOBJECT//NONSGML Version 1//EN 1
-//Apple Inc.//iCal 4.0//EN 1
-//Raco//iCal4j 1.0//EN 1
ONLINEBOOQ 1
-//stgeorge.org//calendar.php//NONSGML v1.0//ENb 1
-//Something.org//NotesCalendarExport 0.96//EN 1
Rooster-janwal2010 1
-//ActiveDataExchange/Calendar V3.12.1//EN 1
-//Acme Corporation//NONSGML V1.0//Widget 1
-//Schedule a Meeting 1
SFPL Web Calendar 1
-//ACVB//RSVP Event//EN 1
-//Rillsoft GmbH//Rillsoft Integration Server//DE 1
-//Solvguttene\, //Aktivitetskalender//EN 1
-//agenda.strasweb.fr//NONSGML kigkonsult.se iCalcreator 2.8// 1
-//SABA SOFTWARE//NONSGML iCal//EN 1
-//RIT Events Calendar//events//EN 1
-//GEOclubbing//NONSGML//EN 1
-//timetable.staircase.dur.ac.uk//NONSGML kigkonsult.se iCalcreator 2.10// 1
-//Lotus Development Corporation//NONSGML Notes 8.0//EN 1
-//generated//sprungknoedl.at// 1
-//GENTICS Content.Node// AWO Event//DE 1
-//WebCalendar-ics-v1.2.4 1
-//LG Electronics//LG Remarq//EN 1
-//WebCal.fi//NONSGML iCalendar Creator version 3.3//EN 1
-//WebCal.fi//NONSGML iCalendar Creator version 3.3//FI 1
-//WebCalendar-ics-v1.2.1 1
-//Henrik Levkowetz//ietf-agenda-ical 1.03//EN 1
-//TimeEdit\, //TimeEdit//EN 1
-//XYZ Corp//My Product//EN 1
-//Flogs//NONSGML Flogs iCalendar interface v1.1//EN 1
-//Five Borough Bicycle Club//genics.cgi//EN 1
-//M&V Software//NONSGML Yritysmappi 1.4.2//EN 1
-//Freshcookies.org//NONSGMLNotesCalendarExport 0.96//EN 1
-//Lotus Development Corporation//NONSGML Notes 8.5.2//EN_S 1
-//www.bad-homburg-tourismus.de//DE 1
-//Lotus Development Corporation//NONSGML Notes 8.5.3//EN_C 1
-//www.ziv-zweirad.de//NONSGML kigkonsult.se iCalcreator 2.10// 1
-//Lotus Development Corporation//NONSGML Notes 8.5.3//EN_S 1
-//LFP//iCal 3.0//FR 1
-//Intracore 13092011 103801 AM //iCal 2.0//EN 1
-//IP.Board Calendar 3.2.2//EN 1
-//University of Oulu//NONSGML SEAA 2011 Conference Program//EN 1
-//University of Michigan Museum of Art//Events Calendar//EN 1
-//Integrated Resources Booking System 1
-//Irish Orienteering Association//NONSGML Fixtures//EN 1
-//jCRM//iCal 0.1//EN 1
-//Jeb//edt.pl//EN 1
-//Verkkovaraani Oy/Generated by eAdmin//FI 1
-//IS4U//EN 1
-//virtual-loup-de-mer.org//NONSGML iCalcreator 2.6// 1
-//HZ93//HZ93//EN 1
-//Typo3 CMS\, News Event Extension //MIMEDIR//EN 1
-//Hypermatix//NONSGML Andal BETA//EN 1
-//http://notclive.co.uk/IC-DoC-iCal//NONSGML kigkonsult.se iCalcreator 2.10.5// 1
-//http://www.ibestat.es 1
-//TYPO3/NONSGML Calendar Base (cal) V1.3.3//EN 1
-//Infragistics,Inc.//UltraWinSchedule 1
-//University of Illinois//Web Services Calendar//EN 1
-//Kiiba ApS//NONSGML Kiiba//EN 1
-//ICal by EliasSoft//EN 1
-//ical.net//NONSGML kigkonsult.se iCalcreator 2.9.1// 1
-//MAT Foundries Europe GmbH Informationsportal//NONSGML Infoportal//DE 1
-//Day Software//CQ5 Calendar 5.3.0//EN 1
fenwick/kinopop 1
-//NCEO//Web site//EN 1
-//Nevobo/Competitie 1
Hasso Plattner Institute Potsdam, Germany, AOSD 2012 1
-//TBP\, Inc//iCal 1.0//EN 1
-//mulberrymail.com//Mulberry v4.0//EN 1
-//Terrapinn Holdings Ltd//The Internet Show Middle East//EN 1
-//multifunction.nl/#SPLUS630532//NONSGML v1.0//EN 1
-//delftcalendar.tudelft.nl//NONSGML iCalcreator 2.6// 1
-//musique4.localhost//NONSGML kigkonsult.se iCalcreator 2.10// 1
http://tute.ch/events/ical/ 1
-//Cozi Group Inc//Cozi Calendar//EN 1
-//NorthEastSocial//NONSGML NorthEastSocial Events v1.0//EN 1
-//collegefootballcalendar.net//2011-2012 NCAA Football Calendar (ACC)//EN 1
-//collegefootballcalendar.net//2011-2012 NCAA Football Calendar (SEC)//EN 1
-//None/1.0//EN 1
http://calendar.rockhurst.edu/ 1
-//Dallas Theological Seminary//NONSGML v1.0//EN 1
-//d-elftwedstrijdkalender//NONSGML kigkonsult.se iCalcreator 2.10.5// 1
-//NLFacMgr_v.2.288//FM//EN 1
-//Newcastle University//Personal Student Timetables v2.0//EN 1
-//Doodle AG//Doodle//EN 1
-//MIA Consulting//NONSGML MIA_TOOLKIT v1.0//EN 1
//Dave Warker//Remember? 4.6 1
//MCPS//iCalendar//EN 1
-//Test//NONSGML My Calendar//EN 1
-//The Horde Project//Horde_iCalendar Library//EN 1
-//thinkdigital/webkit-calendar//NONSGML v1.0//EN 1
-//zugunited.ch//NONSGML kigkonsult.se iCalcreator 2.10.5// 1
-//Zermelo Roostermakers//NONSGML Infoweb rooster//NL 1
-//MAT Foundries Europe GmbH Informationsportal//NONSGML Infoportal//DE 1
-//EZ Bill Tracker// 1
-hanmade 1
-//dsek.lth.se//NONSGML dCalMaker 1.0// 1
-//mjoberg.net//NONSGML kigkonsult.se iCalcreator 2.10.5// 1
-//Drupal iCal API//EN 1
-//dorky.bkbruntal.cz//NONSGML iCalcreator 2.4.3// 1
CommuniGate Pro 5.4.2d 1
BYU Calendar 1
AndroidEmail 1
//SMP 1
-//test.org//NONSGML kigkonsult.se iCalcreator 2.10// 1
-//Mijn Rooster//osiris.uu.nl// 1
-//Eloqua//NONSGML Eloqua Conversion Suite//EN 1

If you think that the semantic web is just some kind of geek rapture, like the singularity, I can understand why. As with Zeno’s Paradox we’re always advancing but never arriving. Unlike the singularity, though, I do expect a semantic web to emerge in my lifetime. The latest initiative is schema.org, sponsored by Google, by Yahoo!, and by my employer, Microsoft. Schema.org recapitulates prior efforts to define how webmasters can mark up web pages to include structured data. I hope that this time, thanks to collaboration among the major search engines, we’ll finally cross the activation threshold.

Meanwhile I’ve been toiling in another part of the semantic web. I’ve been trying to get webmasters people to understand why and how to publish calendars as machine-readable structured data in addition to human-readable text. If you’ve followed the elmcity saga you know I’m on a crusade to make more and better use of the Internet’s venerable standard for exchanging structured calendar events: iCalendar.

It’s been a struggle. Almost every website run by a school, club, business, or town has an Events page. Those pages are, almost always, data siloes: HTML or PDF files that can be read by people but cannot be processed by machines. Only rarely do such pages offer links to iCalendar feeds served up by Google Calendar or Drupal or Hotmail Calendar or some other service capable of producing such feeds. So when elmcity curators discover one of these rare feeds, it’s cause for rejoicing.

Sadly that joy is sometimes short-lived. A surprising number of iCalendar feeds just plain don’t work. That’s why I invited Doug Day to create the iCalendar Validator, a service that helps producers of iCalendar feeds conform to the specification. It’s always painful when I have to explain to a curator that the shiny new feed they’ve discovered doesn’t conform and won’t deliver events to the hub.

Here are three sources of iCalendar feeds that, I’ve recently discovered, don’t work.

1. The University of Michigan’s UM Events. It’s a major hub that serves many campus websites. As far as I can tell, all of those sites are providing feeds with malformed descriptions. Here’s an example of the problem and the fix. (iCalendar producer ID: UM//UM*Events)

2. CiviCRM is a “free, libre and open source software constituent relationship management solution.” Its feeds also have malformed descriptions. Here’s an example of the problem and the fix. (iCalendar producer ID: CiviCRM//NONSGML CiviEvent iCal)

3. Drupal is a popular open source content management system. I’ve seen Drupal feeds used successfully, but today I found one that fails for two reasons: a malformed recurrence rule, and a missing timezone definition. Here’s an example of the problem and the fix. (iCalendar producer ID: Drupal iCal API)

These problems are minor and would be easy to resolve. I’ll try to contact the authors of these iCalendar producers; if you can help put me in touch I’d appreciate that. I’m also going to look through the logs written by the iCalendar Validator, compile a list of producers of invalid feeds, and try to contact them as well.

Where’s the connection to the semantic web? At the end of the day, as RSS/Atom validator co-creator Sam Ruby likes to say, “It’s just data.” But structured data, whether it conforms to the dozen-year-old iCalendar standard or some newfangled microdata standard, is easily screwed up. And the consequences of screwups are often silent. Services that were looking for that structured data find nothing, mutter to themselves, and move along.

As we collectively create the semantic web we’ll need to make sure that the structured data we intend to publish really says what we mean.

If you follow this sort of thing, you already know about IFTTT. It’s a new web service that enables non-programmers to compose other web services. The acronym expands to If This Then That, and here are some ways you can use the metaphor:

If I am tagged in a Facebook photo, then save the photo to Evernote

If the library sends email saying my book on hold is ready, send me a text message

My colleague Scott Hanselman says this is bloody brilliant and I agree. It’s the next step in a journey that began for me back in 1999 when I mashed up Alta Vista’s search engine with Yahoo! directories to measure the mindshare of sites by category. More recently Yahoo! Pipes made service mashing easier for non-programmers. Now IFTTT enables everyone to play. Wonderful!

So why am I less enthusiastic about IFTT than I thought I would be? There are two related reasons. First, here’s what IFTTT says when you ask it to activate its Twitter channel on your behalf:

This application will be able to:

  • Read Tweets from your timeline.
  • See who you follow, and follow new people.
  • Update your profile.
  • Post Tweets for you.
  • Access your direct messages.

Excellent! This is an example of OAuth, a protocol that enables you to delegate powers to IFTTT without giving up credentials. Most of the services you can use with IFTTT support OAuth, and that represents another huge step forward for the web.

What if I only want to give IFTTT the power to tweet on my behalf, though, and not give up access to my private direct messages? More generally, how can I think about the tradeoffs involved in delegating all versus some versus no powers to IFTTT, across a range of services I might authorize it to use on my behalf?

This leads to the second and broader concern. If I’m not paying for the product, I am the product. As is true for many free services on the web today, I have no contractual relationship with IFTTT. I pay for the service it provides by surrendering access to my data. OAuth helps me negotiate how much access, but if I give up none then IFTTT is powerless.

Why, though, can’t I pay for the product instead of being the product? I want IFTTT to work for me, I want to pay for the service, and in return I want it to promise never to keep or use any of the data it exchanges on my behalf. I realize this may not be a popular option anytime soon. But it’s time to start the conversation. Services don’t only want to be free, they also want to be valuable. That’s rarely a choice nowadays. It needs to become one.

Yesterday’s stream of notifications brought two links paired with invitations for me to comment. The first link points to a NY Times story about how AVOS, the new owner of Delicious, plans to remake that service. Chad Hurley:

The home page would feature browseable “stacks,” or collections of related images, videos and links shared around topical events. The site would also make personalized recommendations for users, based on their sharing habits. “We want to simplify things visually, mainstream the product and make it easier for people to understand what they’re doing,” Mr. Hurley said.

The second link points to a blog post from Mark Surman, executive director of the Mozilla Foundation, who wants to teach the world to code:

This has been the premise behind much of what we have done with Mozilla Drumbeat: people who make stuff on the internet are better creators and better online citizens if they know at least a little bit about the web’s basic building blocks. Even if they only learn a little HTML, the web gets better.

I wish I could broker a conversation between Chad Hurley and Mark Surman. If mainstream folk used Delicious and understood what they’re doing when using it, they’d understand themselves to be makers of things on the Internet. The things they make are custom information systems. They make them by writing code, but not in the languages of HTML or JavaScript. Instead they use tag vocabularies that produce and consume web services. And services, I argue, are the most fundamental of the web’s basic building blocks.

Here is an example: http://www.delicious.com/judell/del.icio.us. Ostensibly it’s a list of dozens of articles I’ve written over the years about what I mean when I say that Delicious enables non-programmers to code and use web services. But it’s not just a list. I think of it as a web service. One aspect of the service provides the list in HTML format for people to read in browsers. Another provides the list in RSS format that enables cooperating services to watch the list and react when new items are added. Another enables the list to combine with other lists. Here, for example, is a subset of my Delicious-related articles that are also related to the elmcity project: http://www.delicious.com/judell/del.icio.us+elmcity.

More than anything before or since, Delicious empowers me to manage web resources — both personally and socially. Once those resources were mainly things we found on the web. Now they’re also things we make on the web. I hope the forthcoming Delicious makeover will help people understand it to be a tool for creating, mixing, and sharing web resources. And I hope it remains the sort of open web tool that Mozilla Drumbeat wants to popularize.

Last September we bought a new dishwasher to replace the old one that had failed. It was a reluctant purchase. We’d actually gone a couple of years doing dishes by hand, partly because we’ve been so disappointed by the modern generation of appliances. When the salesman at Sears mentioned their free 5-year preventive maintenance program, though, we decided to opt in. The plan entitles you to an annual appointment with a dishwasher tech who will come by to inspect your machine and do what’s needed to keep it in good working order.

Stoves, dishwashers, and vacuum cleaners shouldn’t require this kind of life support. I’m not going to win that argument, but I can at least make effective use of the life support service. Doing so requires a bit of a hack, though. Why? Remembering something annually, on a certain date, for five years running, isn’t the sort of thing that humans do well. It’s a task that begs for automation.

Of course Sears could remind me, in September of 2011, 2012, 2013, 2014, and 2015, about my dishwasher checkup. It would be easy for them to do. They’re a mega-corporation with a mighty IT department that can easily perform this feat of magic. But Sears doesn’t want to remind me. They’re betting that I’ll forget, as I’m sure most people do.

So they sounded quite surprised when I called yesterday, on the anniversary of my dishwasher purchase, to schedule my appointment. How did I do it? By casting this magic spell:

BEGIN:VEVENT
DTSTART;VALUE=DATE:20110902
DTEND;VALUE=DATE:20110903
RRULE:FREQ=YEARLY;COUNT=5
SUMMARY:sears dishwasher
END:VEVENT

That’s an event recorded by my calendar program. It happened first on September 2, 2011, and will happen again yearly for five years. I cast my spell using Outlook but you can do the same thing using any calendar program: Google Calendar, Apple iCal, Hotmail Calendar, Lotus Notes, many others.

When I talk about iCalendar feeds in the context of the elmcity project, I tend to focus on the idea that these are data feeds, which they are. But iCalendar has a special property. Some of that data is actually code. In this example, here is the one line of code:

RRULE:FREQ=YEARLY;COUNT=5

In iCalendar lingo, RRULE means recurrence rule. From Outlook’s or Google Calendar’s point of view the rule is a tiny program and they are the operating systems that run it. Here are some other RRULES that calendar applications enable you to express:

every Tuesday at 10AM

every first Sunday until October 2011

every September 2 for five years

You don’t have to do it this way. You can, instead, record each event separately. Even though calendar software makes it quite easy to define repeating events, I’ve got a hunch that in the dishwasher scenario a lot of people would use data (five discrete events) rather than code (one event that expands to five). Why? For the same reason that many people will manually adjust the font size used for every paragraph in a document, rather than creating a rule that governs all the paragraphs.

My list of core principles for web thinkers doesn’t yet include the idea of code that generates data. I’ve found it plenty challenging just to get people to think about the nature of their data, about how they do or don’t control it, and about how it does or doesn’t flow through networks.

But if we want everyone to be able to automate tasks that otherwise get done poorly or not at all, we probably do need to find a way to teach patterns like code-generated data and Don’t Repeat Yourself more broadly than just to students of computer and information sciences.


If you want to read a lovely short essay on calendar software and our relationship to the future, I highly recommend Paul Ford’s Tickler File Forever.

Follow

Get every new post delivered to your Inbox.

Join 54 other followers