Publish iCal Calendars on the Internet for Free

Addendum: Aug 21, 2010

I wanted to let folks know that the information in this post is pretty old, and these days there are better options for sharing calendars. Most notably, Google Calendar sharing. The method used in the post you're about to read is a one-way share in which the publishing computer is the only one that can make changes, and all subscribing calendars have read-only access. This is limited, I know, but at the time it was readily available and plenty of functionality for most people who just wanted a free option for calendar sharing from their main machine. Nowadays, though, Google Calendar sharing gives the same level of ease-of-use and true, server-based, two-way calendar syncing, allowing you to edit you calendars from any computer (including iPhones). It truly is superior, and I highly recommend it.

So, if you're still interested in the one-way Box.net method, I leave it up for posterity. Otherwise, Google Calendar sharing is probably the way to go.

Happy calendaring!

Original Post

Ever want to share your iCal calendars on the 'net? Well, I have. Unfortunately, iCal publishing requires a server that runs the WebDAV protocol. Apple's .Mac offers such a service, and .Mac, indeed, uses WebDAV. But .Mac costs money, and I've never seen a compelling enough reason to pay for it. Setting up iCal on a Macintosh server is also fairly easy, but it's an awful lot of trouble to go to and a waste of resources if all you're interested in is sharing your iCal calendars. But today I've discovered an easier — and free — way to do just that.

Box.net offers 1 GB of online file storage for free. The data is accessible via the web, so you can get to it from any connected computer. They have a web interface for accessing you files. On Windows they also have client software that lets you access your data as though it were on a shared volume, right from the Desktop. But on the Mac you can connect to it right from the Finder using the ever-trusty "Connect to Server..." command (or command-k) in the "Go" menu. How is this possible you ask? Because the Mac Finder has WebDAV accessibility built right in. And because box.net shares it's data via the WebDAV protocol.

If you haven't put it together yet, this means you can use your free box.net account to host your iCal calendars. The process would go something like this:

  1. Sign up for a free box.net account. It's easy as pie, and faster than a bat out of hell. Give 'em your email, a password, and you are d-o-n-e, done. (NOTE: Obviously, to share the calendar with others, they'll need the URL and the box.net username and password, so you might want to make sure you set this account up with information you don't mind giving out. Use a second, private account for stuff you want to keep secure.)
  2. To access your box.net account via the Finder, click "Connect to Server..." and type "https://www.box.net/dav" into the URL field of the connection window. (NOTE: Some folks are unable to connect using the "https" protocol. If this fails for you, try it with "http" instead. Either one works for me.) You will be prompted for username (the email you used to register the account) and your box.net password. Enter these and your online data will appear on the Desktop in a volume called "dav" which will be pre-populated with a few default folders.
  3. But to publish your iCal calendar, just open iCal, select the calendar you want to share and choose "Publish" from the "Calendar" pulldown menu.

    (click for larger view)

  4. In the dialog box that follows, name your calendar (or keep the existing name if it suits you), for "Publish on:" select "Private Server," enter "https://www.box.net/dav/Documents" for the "Base URL:" and enter your box.net username and password in the "Login:" and "Password:" fields respectively. (NOTE: Here, too, secure http sometimes fails, so if you have trouble try using "http" instead of "https".)
  5. You might also want to check or uncheck some of the checkboxes at the bottom, depending on your needs.
  6. Finally, hit "Publish" to publish the calendar. You'll see your calendar now sports the "I'm Published" icon just to its right.
  7. To subscribe to this calendar (say, from another computer), choose "Subscribe" in the"Calendar" pull-down menu.
  8. In the URL field enter:

    "http://www.box.net/dav/Documents/YourCalendar.ics"

    (where "YourCalendar" is the name of the calendar you just published).

    (click for larger view)

    Be careful NOT to enter "https" here. Just use the "http" protocol to subscribe. Enter your box.net username and password at the prompt and you'll suddenly find yourself subscribed to your own calendar.

    (click for larger view)

  9. A final note: Updates to the calendar take some time. Hitting refresh too often (like every minute or so) on a subscribed calendar will generate an error. Just wait and let iCal do it's thing and it will keep everthing up to date. No pun intended.

I'm not sure if many people will find this useful. But to me it seems like a good way to share you iCal calendars, either between remote locations (like work and home) or between groups of people, like friends, family or members of an organization. And hey, it's completely free. How cool is that?

UPDATE 1:

A lot of people have written in with great suggestions, alternatives to and variations on this process, including a page for similarly configuring Sunbird. Please read the comments for more useful information.

UPDATE 2:

I have added a note to the publishing instructions in this article regarding the use of "https". In a nutshell, both publishing and subscribing sometimes fail because of problems with secure http. This is something I receive a lot of comments about and I just wanted to clear things up. If you are having trouble either publishing or subscribing, try doing so using "http" instead of "https". While somewhat less secure, it tends to be far more reliable.

Toast 7 Disc Spanning is Essentially Useless

Well, I should say, "Toast 7 disc spanning is essentially useless to me." Or maybe I should just say, "Toast 7 disc spanning is a big letdown." Why? Because the error handling is piss poor.

Case in point: I recently had the need to burn 60 GB of data to DVD for archival purposes. Within this 60 GB data store there were numerous seriously nested folders — we're talkin' folders upon folders upon folders — so creating 4.2 GB chunks for burning to DVD was going to be a real pain. Maybe a day's worth of work. So I hurriedly ran out and bought my copy (or, actually, got my boss to buy my copy) of Toast 7 as its new disc spanning feature promised to make short work of the lengthy process. I handed the data off to a couple assistants and told them to use the new Toast, and pointed out how easy it would be. They were duly impressed until, on disc 8 of a 15 disc set, the burn failed. The error message cited an inability to read/write data from a particular file on the hard drive. There was little information as to why this was happening. We assumed it was probably a one-time error, or perhaps a permissions problem. So we corrected permissions and tried again, starting from scratch. This was an archive, after all, and we wanted to make sure that we got it right.

This second attempt failed as well. We tried saving the Toast file at the point of failure to see if we could pick up where we left off at a later point in time, but no. Once quit, Toast had no recollection of where it was in the burn.

Next we tried looking at the catalog created by Toast to see if we could figure out what had actually gotten burned and what hadn't, and then start a new burn at the point where the original had failed. It was a difficult process as there were thousands of files, again, in deeply nested folders, and Toast had scattered this data across the set. But it seemed to work reasonably well, until we got to that magic bad file again.

Once again, the burn failed. Same file, same error. After playing around, we discovered that Toast will, on such a failure, attempt to continue with the burn. This is good: if one of your DVDs is bad, you can recover. Just give Toast a new DVD and be on your way. But in our case it was the data on the hard drive that was bad, and from this there was no recovery. I even tried deleting the suspect files and proceeding with the burn, but Toast always insisted that the file was unreadable and kept asking for disc after disc. I had no choice but to cancel the burn and give up, three coasters later, mind you.

I've left out a lot of the little things we tried to get this data burned to DVD with Toast 7, for brevity's sake and because I've forgotten a great deal of them. It's a long and boring tale anyway. But we took numerous stabs at this multi-disc burn, actually. All tolled, it took us three days and we never got a complete disc set of our data. And, in addition to the time spent retrying and troubleshooting the burn, we wasted an ungodly number of DVDs.

As I see it, there are really two points of failure here:

  1. While Toast seems capable of continuing a burn in the case of a bad CD or DVD, it is incapable of doing so when the original data is bad in some way. It seems to me like it would help a lot if Toast either scanned the data for errors before a multi-disc burn, or if it offered the user a way to skip problem files during the burn. Actually, both would be nice, but that's probably hoping too much.
  2. Toast has no memory of where in the multi-disc burn it left off, so if, for some reason, you need to quit the program before all the discs in a set have burned, you'll pretty much have to re-burn the entire set. You can't save that state. This seems particularly short-sighted when you consider the fact that Toast already has a catalog of the data it's burning and what discs that data will be on. Why can't it just allow you to save the multi-disc Toast file between discs and let you pick up where you left off?

For me, the whole appeal of disc spanning is that it allows you to burn a great deal of data (like 50 or 60 GB) without having to slice it up yourself. But Toast 7's inability to handle errors gracefully makes disc spanning across a large number of discs a frightening — and, if there are problems, as in our case, far less practical — prospect than simply breaking the data into DVD-sized chunks yourself and burning the old-fashioned way. It's too bad. I was really jazzed about disc spanning. But until the error handling kinks get worked out, I'm afraid I'm going to have to pass.

Thanks anyway.

UPDATE: According to Roxio, re-burn is a feature of v. 7.0.2 and up: "Disc spanning now prompts to re-burn if a failure or error occurs while burning a single disc," though this is apparently only true if the error happens on the CD or DVD, not if the error is due to bad source data on the hard drive. This issue is also touched on in this very thorough MacInTouch review.

Fix Scrolling Glitch with Embedded Movies in Firefox

Do you use Firefox? Ever scroll a page with an embedded movie and get this?


Firefox Scolling Glitch: Ugly and Annoying
(click for larger view)

Are you tired of it? Do you want to fix it? I sure did. And I finally figured out how. Seems I'd done a stupid thing and turned on the "Smooth Scrolling" feature. I'm not even sure anymore what this feature does. I think it ramps the speed of your scrolling as you finish the scroll, gradually slowing the scroll down towards the end. It's cute, but hardly necessary. And it's the cause of this annoying behavior with embedded movies. So, want to stop the insanity? Just disable "Smooth Scrolling." You'll be a happy camper.


Smooth Scrolling Prefs: Ahhh! That's Better!
(click for larger view)

Apple Software RAID Tests or: What to Do if You Don't Have an Intel Mac

Yes, I got very excited about what I saw in Boot Camp, though for maybe different reasons than most, and now I'm over it. I don't have an Intel Mac, so I couldn't really do much with the Boot Camp Assistant, but I did get turned on to the latest software RAID capabilities included with the Mac OS. Specifically, two items I was previously unaware of: concatenated RAID and the new resizeVolume verb included with the latest version of the diskutil command. Since I promised I'd report about anything I found, and since I did take the time to perform a battery of tests on all things Apple Software RAID, I thought I'd share what I found, though there's not much here that's very exciting, or perhaps even very enlightening. Still, what follows is a fairly thorough explanation of the various RAID options available in Mac OSX. For PPC, that is.

First of all, software RAIDs cannot be partitioned, which I actually didn't realize, though it does make sense.

Attempting to Partition a Software RAID: No Go

(click for larger view)

The two most common and useful types of RAID are Striped and Mirrored. A RAID stripe combines two drives for increased storage and performance. A mirror combines two drives for redundancy. Here are some details on creating RAID stripes and mirrors on Mac OS X.

Striped RAID

  • Increase in capacity
  • Increase in performance
  • No redundancy
  • Works best with disks of equal size/type
  • Can be used with disks of different sizes
    • Consequences unknown
  • Deletes disk contents on creation

Mirrored RAID

  • Half capacity of combined disks
  • No performance increase
  • Redundancy for disk failures
  • Works best with disks of equal size/type
  • Can be used with disks of different sizes
    • Total size/redundancy is equal to the smaller of the two members
    • Other consequences unknown
  • Deletes disk contents on creation

Most of this I already knew, though I did discover that the RAID mirror can also be set to automatically rebuild in the event that one of the disks fails. Unfortunately, there is no notification for disk failure. So you can automatically rebuild the set, but you have to manually check its status. This is obviously putting the cart before the horse. Kind of stupid. But whatever.

RAID Mirror AutoRebuild: I Didn't Know it was Broken

(click for larger view)

What I did not already know about, however, was something called concatenated RAID. Turns out concatenated RAID (or "JBOD" for Just a Bunch Of Disks) is the oldest form of RAID, and has generally fallen out of fashion. No one uses concatenated RAID anymore. With the current size of hard drives, there's little reason to.

Basically, concatenated RAID does only one thing. It combines a set of drives for increased capacity. There is no performance increase. Concatenated RAID can be used with combinations of drives of any size and can be added to dynamically. If you add a disk to a concatenated RAID, the added disk is erased but the contents of the RAID remain untouched. There is also no redundancy with concatenated RAID, so if you lose one drive in the set, you lose all the data on the RAID. Here's how concatenated RAID works in Apple's Disk Utility.

Creating a Concatenated RAID Set: Data Will be Deleted

(click for larger view)

Concatenated RAID

  • Increase in capacity
  • No increase in performance or redundancy
  • Works with any set of disks
  • WILL delete disk contents on creation
  • Unmounting one member of the set will cause the RAID to fail completely; RAID must be mounted/unmounted all at once
    • Rebooting fixes the broken RAID
  • Adding to the set deletes data on the new disk, but keeps data on the existing set
Updating a Concatenated RAID Set: RAID Data is Preserved

(click for larger view)

Resizing Partitions with diskutil resizeVolumes

Finally, in Mac OS X 10.4.6 there is a new option for diskutil, the command-line version of the Disk Utility application. This new verb is called resizeVolumes and is intended for doing just what it says: taking existing partitions and resizing them dynamically. Unfortunately, as indicated in the comments of this MacGeekery article, though the option is included in the PPC version of 10.4.6, it only works on GPT (GUID Partition Table) formatted partitions which are not normally created by PPC Macs. PPC Macs use the APM (Apple Partition Map) format for their partitions, so on my machine the command failed with the following errors:

Attempting to Resize an APM Volume on PPC: Fat Chance!

(click for larger view)

This appears to be more than just a partition format problem though. The new Disk Utility in 10.4.6 allows for creating partitions with the GUID scheme:

Choosing a Partition Scheme: No Help for the Intel-Challenged

(click for larger view)

But attempting to resize these with diskutil still fails thusly:

Attempting to Resize a GPT Volume on PPC: Nice Try!

(click for larger view)

So, it would appear that, although there are some intriguing new partitioning tidbits in Mac OS X 10.4.6, they are not to be enjoyed by the Intel Mac-less. Alas! Such is life on an educational salary. If I can convince someone to buy me an Intel Mac, I'll surely mess around with this stuff some more. Until then I guess we'll leave the real cutting edge stuff up to the early adopters.

Lucky bastards!

Apple Remote Desktop 3

I've been using Apple Remote Desktop since the Classic days when it was called Network Assistant. I've always used it in very basic ways — client control, software installation and remote troubleshooting mainly — but it's nevertheless been an invaluable utility in my sysadmin tool belt. And in the last few years it's gotten nothing but better. For one, starting in Panther, the ARD client was included in the OS install, making installation and setup on a group of clients a trivial affair. Version 2 also included the ability to run UNIX commands on a group of clients, which has made my job about twelve million times easier, so that was, and continues to be, great. In fact, it was this feature that made ARD 2 a must-have for me. Not only did it allow me to perform tasks en masse that I simply couldn't perform any other way, it also filled a lot of holes in the software itself. There is a lot you can do with ARD 2 right from the GUI, but there are a lot of things you can't, though you probably should be able to. Things like enabling file sharing or Appletalk come to mind. Ideally, any setting you can make in a computer's Systems Preferences (or at least in the Network prefs) would be configurable from ARD. This is not always the case, but the UNIX functionality greatly mitigated most if not all of this.

Apple Remote Desktop 3 is the newest version of ARD, and it, like its predecessor, offers what look to be some really great improvements. The interface is now two-paned and sports the new "Unified" look, and tasks are listed in the left-hand pane along with everything else. If you want to view a running task, select it in the left-hand pane and view its progress in the main window. Gone is the third pane containing your task history, and you no longer need to view a task's progress in a new window. Hallelujah! Remote management just got more efficient, and that is, after all, the name of the game. This left-hand pane also sports new organizational features as well. Folders let you group computer lists, and Smart lists can be set up as well to keep tabs on computers with certain properties. These little organizational touches go a long way toward enhancing the usefulness of a product like ARD. Believe me, they're important details when you're managing a group of computers, and are welcome additions to the application.

One of the things I always hated about ARD 2 was that if you, as the ARD admin, locked the screen of a client computer, you, the admin, were locked out as well. This has been addressed in ARD 3 with a new feature called Curtain Mode. Curtain Mode allows the administrator to lock the screen of the client computer, just like Lock Screen did in ARD 2. But with Curtain Mode, the client gets a locked screen while the admin gets complete, unfettered access to the computer. I can't tell you how many times I've wanted this feature. Finally, I can lock down computers but still perform tasks in the GUI.

ARD 3 now offers Remote Drag and Drop, enabling an administrator to drag documents directly to the client. This is a nice productivity enhancement that I'm sure most ARD admins have longed for for awhile. Pure Apple simplicity.

Reports have been enhanced too, and now feature the ability to track application usage and user history. This will be great for monitoring which apps get used most and what users are doing to cause problems on their systems.

Probably the most hailed (and rightfully so) new feature of ARD 3 is automation. ARD is now AppleScriptable in version 3 and also comes bundled with a set of Automator actions. It's only right and proper that an application that's made to perform multiple tasks on multiple computers should be automatable in some way. And now it is.

There are a bunch of other new features, but the above are the ones I'm most excited about. Most of these new feature are things I've always wanted in ARD. In fact their absence in previous versions often left me scratching my head and wondering why they weren't included. They seem so obvious and so Apple. So I'm really glad to see them finally rolled out in the new product. And I'm glad to see that Apple is paying attention to Remote Desktop. It's kind of surprising to me to see constant and significant improvements in a product that's probably not a big money-maker for Apple. But it's great to see. I haven't gotten ARD 3 yet, but I'll be ordering it as soon as budgets allow, and then waiting for it with bated breath. If the hands-on reviews are any indication, It looks like a winner.