One if the major bugs that has always existed in iOS, ever since 2.0 was that calendars that are not synced via MobileMe or iTunes will have unpredictable colors. This usually means that your colors won't match iCal. There are a lot of bad solutions and a few that are semi-decent.

Let me start off by saying that if you have MobileMe, your calendars will match iCal. If you have other calendars (Subscribed, CalDav or Exchange) set up both in iOS Calendar and iCal the colors likely don't match. It's these calendars we're talking about.

I'm going to expand on that last one to make it slightly easier. Sadly, this is still a gross hack.

  1. Disable the calendar syncing on all of your accounts (don't delete them, just set the calendar to Off)
  2. Find some random calendars on Google
  3. Add several until you get the color you want, then delete the most recently added
  4. Enable the calendar that you want to be that color
  5. Rinse, repeat.

I've filed radar 8087720 about the lack of color control for calendars