I am not lucky enough to have a server with WebDAV, so in the past, I have used scp to copy the iCal calendar files to my server for use with phpical.
I recently found out (as of 10.4) that the calendar files are no longer accesible in ~/Library/Calendars. They are actually stored in ~/Library/Application Support/iCal/Sources/coredata.ics. This not only makes it hard to upload them because they are in seperate folders, but they also have the same name. So I wrote a Python script (this code is also available at thenullpointer.net) to get the 'real name' of the calendar file out of a plist and upload the calendar with that name.
I use ssh keys to do this; google is required to figure that portion out.

