It's no secret that Google calendars and iCal don't play super nicely together. And it's even worse on the iPhone. It got so bad that I was using the Google calendar web app instead of the native calendar app because subscribed Google calendars (called "delegate" calendars) weren't even showing up.
But here's a trick -- a way to sync your subscribed calendars from Google's calendaring system onto your iPhone. This is part of my "lifehacking" series :)
You have to create a separate CALDAV account on the iPhone for each one, which is a pain, but doable.
(click links below for screenshots)
Step 1: On your iPhone, go into Settings >> Mail, Contacts, Calendars >> Add Account
Step 2: Scroll down and choose "Other". You should see a screen like this one. Choose Add CalDAV account
Step 3: Now you'll have to get the URL for the server. On your desktop, go to your Google Calendar and choose "Calendar Settings" then grab the private URL for the subscribed calendar you want to add to your phone.
Step 4: OK now you have to do a little concatenating of strings. Take the private calendar URL you just copied, and then add it to this bit "https://www.google.com/calendar/dav/" so it ends up looking like this. Then, add "/user" to the end (that's missing from the screenshot at left). So you should end up with something like this: https://firstname.lastname@example.org/user" (switch out the part in blue with your private URL)
Step 5: Now, you're going to want to put that into the "server" field on the iPhone in Step 3. Although you could type in the exact URL above, since it's long, I recommend you create a short URL out of it, like this, and then open that URL in Safari on your phone and copy it to your phone's clipboard. Then, paste it into the "server" field in your new CalDAV account. Put in your user name & password and name the calendar with whatever name you want for it.
Presto, you should be good to go. If you have any trouble, drop me a comment below.