So you decided to "upgrade" your MobileMe calendars to Apple's new way of doing things – the one that puts the calendar up in the cloud as the main version, and offers to keep a local copy in iCal when you're offline. Did you find out a problem the hard way like I did? If you used to publish a calendar, like, oh, a club meeting calendar, that was read-only, so your club members could see when meetings were, then guess what? You can't do that any more.
It gets worse! Suppose you were doing that, then went to MobileMe and said "upgrade." All your former calendars were replaced with new ones up on the MobileMe servers. But what if you forgot to "unpublish" your old calendars? Surprise! They're still there. And once the old one is gone, you can't unpublish it. You'll need to create another one with the same name on your Mac, publish it, then unpublish it to get rid of it. Otherwise, it will be out there for people to look at, but never get updated.
But surely Apple has this covered, right? You can right-click on a new calendar and select "Share Calendar" to email the web page to your friends, right? Um…no. Yes, you can email them an invite to the calendar – but the invite gives them a cryptic long file name ending in .ics. What iCal is sending out for you is a subscription address – your friends can subscribe to the calendar, but not see it in a web page like before. If you allow it, they can even edit the calendar. Problem solved! Unless, of course, you have a lot of people who went to the web page to check on club meetings that don't have Macs, so no iCal, or a compatible Windows program. All they want to do is check out when a meeting is and to see maybe if some details attached to it changed. maybe they want to check from work before they leave, but can't exactly subscribe to your calendar from there. So how do you get a web page back?
PHP iCalendar to the rescue! PHP iCalendar is free software, written in PHP, that will allow you to publish .ics files as web pages. Now, you'll need some sort of web server available to you for this to work, and that web server must support PHP scripts (many ISPs offer free web space to subscribers, but Comcast for example does not allow you to run PHP scripts). But there are free and low-cost web providers that allow PHP scripting around.
Before you start worrying that you need to learn how to write PHP scripts, don't worry – you don't need to know anything about it. You also don't need to know anything about HTML. All you need to do is to download the zip file, unzip it, and put the resulting directory in the root of your web server's web root, which is the same place your index.html file or other home page file is (and yes, you can put it anywhere else too – I'm simplifying). You can rename the directory if you like (in case you think "phpicalendar" is too long say). Then edit one line in the file config.inc.php (use a text editor such as TextEdit in text mode or the free TextWrangler, available in the new App Store, or also directly from Bare Bones Software) – look at line 104, it looks like this:
This tells PHP iCalendar to subscribe to a .ics file. You want to change it to subscribe to your calendar. So first you need to right-click on the calendar in iCal and select "Share Calendar." Then send an invitation to yourself via email. In it, you'll get a long file name beginning with "webcal://" and ending in ".ics". Use that file name in place of the sample in line 104 (and take out the # sign at the front – that is a "comment" character that tells the system to ignore the line). Save your file, and you're done! You can then go to http://www.your-web-site.com/phpicalendar (if you didn't change the default directory name) and you will have a web page with your calendar (by default, showing you today). As you update it in iCal, and those updates are sent up to MobileMe, they will show up in PHP iCalendar (you need to refresh the page to get the updates). You can go to a month view by going to http://www.your-web-site.com/phpicalendar/month.php. Hovering over an item will pop up any details about the item. You can print, subscribe to RSS feeds, and save off your preferences for views, etc in a cookie (like a preference for always starting in "week" view).
PHP iCalendar is free and open source. If you're handy with PHP, you can of course customize it any way you want, as you have the source code. But if you don't know anything about PHP or HTML, you can still set it up very quickly.