Google Sync: sync contacts, calendars and email (push) with iPhone
At last, I have my iPhone syncing my contacts, calendars and email. How? I added Gmail as an Exchange server. How? First, enable Google Sync (you’ll only need to do this if you’re using Google Apps).
After this it’s trivial if you follow the Google help page instructions. Enjoy!