I tried this for my Epic 4G after gingerbread, and it didn't work. I know it has worked for many people, I'm not sure why it didn't work for me. It may have something to do with the Calendar Storage app having zero data (clear data is greyed out). Also tried clearing: Calendar app and Google Calendar Sync apps. None of it works. My phone calendar is basically empty.
If you are in the same situation, you may want to experiment with adding a new test event on the web and re-syncing. Now try the phone and re-sync. If the events sync correctly, then the following workaround will work:
Go to your google calendar on the web., My Calendar arrow, export calendars. All your events should now be sitting in a zip file. Extract. You should now have a folder containing a file for each of your calendars (I have 5). Click Import calendar, browse to the file for your calendar, select the corresponding file from the list, and click import. Click sync on the phone (I have an app for that, synker, or you can wait an hour or so), and voila, all your events get populated. As far as the web calendar is concerned, there are no duplicate events. Either the program is smart enough to realize the events are redundant, or things got just that messed up with the update. Regardless, you can't argue with the result.
Repeat the importing process for the remainder of your calendars, obviously importing the data on the hard drive to the corresponding calendars on the web. Sync again, and you're done.
Hope that helps.