We did the Oracle Calendar --> Google Calendar migration in December of 2010. Our process went something like:
- export all Oracle Calendars to text files
- custom code to parse the text files and insert data into a database (around 8 million events total)
- a series of runners which would grab a bunch of untransferred events from the database, create them in Google Calendar, mark them as transferred in the database
Google's APIs let each process do around 1-2 transactions per second, so to get all 8,000,000 events transferred over in a weekend, we had to run dozens of the runners simultaneously.
We did our migration in 12/2010 and only migrated future meetings through 12/2011. Recurring meetings in Oracle make a copy of the meeting for each occurrence while Google Calendar handles it a bit more elegantly. So, for recurring meetings, we wanted people to re-create them as proper recurring meetings in Google instead of having hundreds of copies of the same meeting going years into the future that have to each be edited or deleted separately. That's why we only brought over 1 year worth of future events.
It took a couple of months for us to perfect the technical steps of the process and to get the migration to run from beginning to end successfully and to complete in short enough time that we could do the entire thing between close of business on Friday and start of business on Monday morning. I'm not sure how much of our code is portable, but I know that a bunch of the big Google Apps integrators have code to do that as well.
/l