I use a Mac application called Spanning Sync to sync iCal and Address Book contacts with Google Calendar and contacts. It keeps everything perfectly in sync, since your phone syncs over the network with Google cal and contacts. Change something on your phone, and it's immediately on Google and syncs on a schedule (usually every hour) on iCal. Add or change and event on iCal, and it changes immediately on Google and then gets synced to your phone as well, so long as you have data, generally within minutes.
iCal and Address Book have the ability to connect to Google products natively, but it isn't as robust and reliable in my experience as Spanning Sync has been.
I do have a link that you can use that will save you $5 if you choose to use it. (Please note that I get $5 if you use it as well.) Every Spanning Sync user can refer people with their own code and link, so you can as well if you do choose to use it.
They do have a 15 day trial as well.
Spanning Sync 3 - Sync iCal with Google Calendar, Sync Address Book with Google Contacts
As you can see, it is $15 per year, or $65 for a lifetime license.
Here is my affiliate code.