This article originally appeared in TidBITS on 2009-12-14 at 9:23 a.m.
The permanent URL for this article is: http://tidbits.com/article/10817
Include images: Off

Banging My Head Against iCal Server's Limitations

by Rich Mogull

I know a lot of people hate iCal, but I've always been a fan. As a longtime Microsoft Outlook user, I appreciate iCal's simplicity and clean display. It isn't that Outlook does anything wrong - I think it's vastly superior to competing enterprise messaging and calendaring solutions - but if you don't need all those additional features, iCal is a great substitute. (I briefly tried Microsoft Entourage, Outlook's nearest Mac equivalent, but found it lacking in multiple ways). As someone who has bounced around dozens of different mobile devices, I also appreciate the general consistency of iCal on the iPhone and Mac, and how current versions synchronize the calendar colors.

iCal, in Mac OS X 10.6 Snow Leopard and on the iPhone, even offers extensive Exchange support for Mac users in enterprise environments - which makes it all the more maddening that Apple's support for iCal Server on Macs and iPhones is absolutely horrific. It's as if Apple is deliberately driving users away from Mac OS X Server and into the waiting arms of Microsoft.


A Voyage of a Thousand Miles -- My journey of iCal and iCal Server despair began almost two years ago when I purchased an Apple Xserve running Mac OS X Server 10.5 Leopard to run my security consulting business. Leopard Server seemed like a near-ideal solution for a Mac-based small business, for three key reasons.

Obviously, Leopard Server has many additional features, but these three were what we needed to support our operations without having to install and manage an Exchange server.

While Leopard Server's mail and wiki servers performed exactly as expected (actually, the wiki exceeded our expectations), iCal Server quickly failed to meet our needs. Although we could set up and access the group calendars through the wiki's Web interface, there was no official way to access these directly from iCal on our computers (I've since found an unofficial method [1] over at Mac OS X Hints). In other words, although the group calendars were configured and managed from iCal Server like user calendars, access was available only through the wiki Web interface.

Also, I hoped the Web-based group calendar in the wiki would allow us to view each others' appointments via the Web interface, but it supported only the single, Web-only group calendar. Additionally, at that time the iPhone didn't support Apple's own CalDAV calendars (CalDAV [2] is the protocol iCal Server uses), something that's absolutely essential to me due to my heavy travel schedule. Starting with iPhone OS 2.0, the iPhone could completely support Exchange calendars, but not Apple's CalDAV calendars.


Detour to MobileMe -- Since I couldn't access CalDAV calendars from my iPhone, set up shared calendars, or offer iCal access for group calendars, I decided to stick with an alternate Apple service: MobileMe. With MobileMe, at least my calendars would synchronize with my iPhone wirelessly, although I still couldn't create the mythical shared calendar so that, for example, my wife and I could coordinate family events (never mind any shared/group calendars for work).

Going with MobileMe unfortunately restricted me from using one essential business calendaring feature: meeting invitations. For reasons only Steve Jobs can fathom, you cannot accept meeting invitations on an iPhone unless you are using a Microsoft Exchange account. When a meeting invitation arrives in an email message in the iPhone's Mail app, you see the standard iCal icon, but double tapping only makes it a little bigger or smaller, as if you're trying to zoom the icon. It's almost as if Apple is trying to taunt you.

I could, of course, have switched to an Exchange server, but I assumed these were minor glitches Apple would work out quickly, or at least by the time Snow Leopard was released. Microsoft's Small Business Server would meet all our needs completely, but Mac OS X Server is more lightweight, and more closely matched our goals.


Light at the End of the Tunnel? With the release of iPhone OS 3.0 in June 2009 (see "Apple Previews iPhone 3.0 Software [3]," 17 March 2009, and "iPhone OS 3.0 Ships 17-Jun-09 [4]," 8 June 2009), Apple slowly narrowed the feature gap. iPhone OS 3.0 finally supported calendar subscriptions, including connections to iCal Server's CalDAV calendars, but I decided to hold off on changing anything until the release of Snow Leopard because we'd already adapted our workflow for our current infrastructure. The public information on Snow Leopard hinted at greater iPhone support, better calendar sharing, and even free/busy information to help coordinate meetings among a group of individuals. Exactly what we were looking for.

Or not. Three weeks ago I made the transition to Mac OS X Server 10.6 Snow Leopard, only to experience new levels of frustration. Overall, Snow Leopard Server is an excellent upgrade. It removes some of the management inconsistencies of Leopard Server, while adding valuable new features. With improved iPhone access, push notifications, a better mail system, centralized address books, an enhanced wiki, and even the long-awaited iCal Server 2, it's nearly everything I hoped for.

Except for the blasted iCal/calendar support.

The first thing I noticed was that the Web-based wiki calendar integration no longer worked. I mean, I think it's supposed to work, and even though we weren't using it, the feature worked before our upgrade, but now all we get are errors when we turn it on. I've walked through every option in Server Admin (Apple's tool for managing Mac OS X Server), and still can't get the Web calendars to display, only a permissions error.

Okay, we can live without that, but what about iPhone support?

Connecting to the CalDAV calendars published by iCal Server 2 was straightforward, and the calendars display just like any other calendar on the iPhone. Technically, push notifications could keep the iPhone up to date just like MobileMe, although we aren't using those for security reasons (this is more due to the security we have in front of our server than any problems with push notifications).

But how about those meeting invitations? Nope; despite running all Apple software, there's still no way to accept standard meeting invitations (from iCal, Exchange, or any other source) on an iPhone unless you're running an Exchange server.

Okay, we can also live without that, but what about iCal client support?

As with Leopard Server, connecting iCal to Snow Leopard Server's iCal Server 2 is fairly straightforward. I even found the secret path to connect to group calendars, not that we can set them up properly due to the broken wiki functionality.

But a CalDAV calendar in iCal is pretty much worthless. For whatever reason, if you use both local and CalDAV calendars, you cannot accept meeting invitations onto your server calendars! When a meeting invitation arrives in Apple Mail, it's sent over to iCal as expected, but you can accept the invitation only on a local calendar.

This made no sense, and I assumed I was doing something wrong, but a little searching on the Web validated that some bug (or feature) in iCal won't let you accept meeting invitations and assign them to your server-based calendar. Your only option is to duplicate the entry, which makes you the meeting organizer, and assign that duplicate to the server calendar. You can create your own entries on the server calendars, you just can't accept meeting invitations... even from other users on the same server. If you Command-click an event made locally, you can assign it to any calendar in iCal, whether it's local or on a server. Command-click a meeting invitation, and only local calendars show as options.

It's just broken, unless, that is, you switch to a Microsoft Exchange server. Snow Leopard and iCal 4.0 include excellent support for Exchange servers, just like the iPhone.

I'm really starting to wonder if my ongoing dedication to iCal Server is indicative of a serious mental disorder. Despite running an all-Apple infrastructure with the Xserve, the Mac, and the iPhone, I'm unable to carry out the most basic of business calendaring tasks. I can't accept meeting invitations with iCal or my iPhone and assign them to my business calendar, nor use the built-in Web calendar that used to work before our upgrade. All of these features are fully supported if I switch to a Microsoft Exchange server, but after two major version releases of Mac OS X, Mac OS X Server, and the iPhone OS, Apple still can't produce a functional calendaring system.

And as I travel down path after frustrating path, a shadowy voice keeps whispering in my ear. "Microsoft Exchange", it says. "Exchange..."

[1]: http://www.macosxhints.com/article.php?story=20080410162942908
[2]: http://en.wikipedia.org/wiki/CalDAV
[3]: http://db.tidbits.com/article/10144
[4]: http://db.tidbits.com/article/10334