I have a Palm Treo that has over 10 years of calendar events on it. I could purge old info but I find it handy to refer to old dates for appointments, financials, etc (when was settlement on the house, when did I have that X-ray?).
I used to sync the Palm with Apple iCal using Palm Desktop and the iCal conduit. Unfortunately this broke with Snow Leopard as Palm hadn't updated their software in many many years. And because of this I've managed to lose my Palm's calendar data during some recent attempt at syncing. Not good.
Fortunately, I have most of the data in iSync from the last pre-Snow Leopard sync. And Snow Leopard lets me synchronize to Google Calendars in iCal. The iCal docs tell you how to do this but it only syncs with an existing Google Calendar.
If I can push my existing iCal calendars (home, work, travel, etc) to Google and import them then I can have iCal subscribe/sync with them when their native on Google Calendar.
In iCal, for each of the native calendars you want to export, select it. Then do File -> Export -> Export and it will default to a file named after your calendar with an "ics" extension, e.g., "Work.ics". Hit Save.
In Google Calendar, go to "My calendars" and you'll see a list of your existing calendars. Click the "Settings" link and then "Create new calendar" (optional) to import your iCal events into (e.g., "Work"). Then click "Import calendar", browse to your saved ICS file (e.g., Work.ics), select the Google Calenar you want the events imported to, then click the "Import" button.
I found that Google Calendar appeared to hang and got a Google "server error" when trying to import my 500KB main calendar. I tried a couple more times and was eventually able to import all its events, well over a thousand.
Subscribe/sync iCal to Google Calendars
The help in iCal is pretty good on this, but basically in Preferences -> Accounts add, then enter your Google address, like firstname.lastname@example.org.
It will show you your main google calendar, based on your account name.
Under the Delegation tab it will show you all the calendars you can access, including the ones you created and imported above. Select the ones you want by clicking their "Show" box.
You should now be able to see all the iCal events you imported into Google calendar, and they should sync bidirectionally.
You can now un-show or remove your iCal-native calendars.
Mail.app notices dates and if you hover over them, can offer to put them in your iCal calendar. It sees the native calendars (the once we just migrated to Google, and no longer want to use, and possibly removed). It sees your top-level Google calendar. But it does not see your other Google calendars (e.g., Work). So you can't take an event from Mail and put it on your Google Work calendar, only your the main one.
Sync Palm Treo Phone with GooSync
I tried the free version of GooSync to sync my Google Calendar entries to my Palm Treo. It works, but only sync's my main Google Calendar. I decided to pay the GBP20/year ($33) for the premier version. It syncs all my google calendars, plus Contacts and Tasks. It does a nice job.
Except that it puts all address information (street, city, state, zip) into the street address field on the Palm Address Book. This seems a limitation of Google Contact: they don't structure it there, any export from there has no City, State, Zip, etc. Probably because they parse it live with their magic engines. Annoying, but tolerable.