Pencil Me In

We seem to be in the middle of a wave of calendaring apps. 30 boxes is gaining momentum, Apple pushes .Mac and its ability to sync your iCal calendar to the web, and Microsoft has decided to put a standalone calendar app in to Vista.

So, we have plenty of ways to see our calendars, but I'd like to talk about how we get things put in to our calendars. The key to calendar sharing these days lies with iCalendar. iCalendar, or RFC 2445, is a text based format, pairing values with known identifiers. iCalendar is not an XML format, but if that is your thing, check out hCalendar which is a 1 to 1 representation of iCalendar in XHTML. iCalendar can do everything you'd expect it to. Set a calendar entry, duration, notification, even advertise your busy and available times. iCalendar is widely supported. iCal, Outlook, and Sunbird all support iCalendar. The calendars are ready, it's the entries that are missing.

I am genuinely amazed that more apps don't make use of iCalendar. You'd think that any website announcing an event would offer a link to be added in to your calendar. You'd think that email apps would be able to embed appointments (no, Exchange doesn't count). Heck, you'd think that Google would have spit out a calendar app by now with GMail auto-linking things that look like appointments.

Let's explore some of the web sites that could offer iCalendar links.

  • Movie Showtimes - Visit the page, find the one you want, click the llink to add it to your calendar. More on this later.

  • Sporting Events - Live in Los Angeles? Visit the Lakers schedule site early in the year and click a link to have all of this year's home games added to your calendar.

  • Earnings Calls - Daytraders and interested employess might like to know when their favorite stock is due for a chat.

  • TV Listings - Maybe less for you and more for your ReplayTV or Tivo. Visit a web schedule and click the shows you want to watch.

  • School events for the kids - Visit your school's site, drill down to your child's grade and add the month's events to your calendar. Field trips, baseball games, choir practices. It could all be there.

I'm sure you can think of dozens more. It is just strange to me that everyone has an RSS button on their pages today, but nobody I've seen has an iCalendar button. That's not to say that these sorts of calendars don't exist. While researching this blog entry (yes, I do research), I found a couple of resources that house these sorts of schedules. This is encouraging, but for the most part, these are user made calendars, and do not come from the official sources.

Now, let's take a look at how iCalendar files (.ics) are handled. It doesn't really matter how you open these files. They could exist on your harddrive, they could be attached to an email, or even linked from a web page. To test things, I made a simple .ics and linked it from a simple .html file.

iCal under OS X, is very slick. A window will pop up and ask you which calendar you'd like to add the event to. It is quite clear what is going on, so this looks hard to exploit.

As usual, Firefox asked me if I wanted to run the file. After that, Outlook under Windows XP asked me if I wanted to load the appointment, and promptly did when I gave the go ahead. These seems like an appropriate thing to do.

Also of interest, Outlook allows you to forward any of your appointments as an iCalendar file. Good for you Outlook.

Windows Mobile 5.0 also asks if you'd like to save the calendar data, but it could be a little more helpful in letting you know exactly what it is asking.

Even more interesting is the fact that sending the .ics over Bluetooth results in a prompt that actually lets you know that this is calendar data. Say yes and the entry is added. Slick. iCalendar and Bluetooth are a great pair.

I think the reason we don't see more iCalendar links is that there isn't a complete solution. Calendars change frequently and when we need them, we are usually on the go. For that to work, we need our on the go devices, like cell phones, PDAs, and iPods to sync frequently. Unfortunately, most people still sync with cables. Cables suck. If you sync with a cable, you can't get up to date data if your phone is still in your pocket. Cue Bluetooth, but having two devices capable of OBEX push isn't enough. You still need a broker in the middle to do the syncing. Ideally, we can continously sync while in range, but short of that, you could have a handler for .ics files that knows which Bluetooth devices to sync with when it processes a new calendar entry. Perhaps Bluetooth's continued rise will bring about a new focus on calendar and contact data because it can flow so easily.

Finally, let's get to a real example. Here's you chance to see how your system handles iCalendar files.
Read Thoughts Abound
While playing with the sample file, I found that Windows Mobile didn't like the timezone info that can be found in the examples on Apple's page. I read that a lot. Apparently iCalendar implementations are notoriously spotty. Hopefully that is a thing of the past.

Have you seen iCalendar files linked on websites? If you have, leave a comment with a link.


Jason said...

Good stuff all around. Using 30 boxes for a while now has only increased my appetite for a calender that follows me anywhere. The biggest problem is exactly what you stated, it is still too hard to add events.

My Windows box didn't know what to think of your example. It just rendered it in HTML. I was surprised since I have Outlook on here. I'm looking forward to Vista building this right into the OS (something I didn't think I would be saying a few weeks ago), but I still think a web app (like gmail) is the way to go.

Jeff McMahan said...

South by Southwest (SXSW) has a great calendar... thing... setup. You can just go to any event on their site, be it a movie, panel, or music performance, and just click to add it to your calendar. WOOF! There it is in iCal. I love it.