I spoke to Zimbra support. There is a workaround to this. I am surprised that they didn't post to this thread as I referenced it in my email. Anyway, the trick is to delete the offending calendar entry. In my case I found it to be the very first calendar entry. I looked at the full ical dump and found that the very first entry had all those "\n" characters in it. Zimbra gave me instructions on deleting that entry. They are paraphrased/corrected below...
You need to get the ID of the calendar appointment. You can do this with Firebug by looking at the post request sent to the server from the web UI (actually in my case, I had to use a packet sniffer and look at the request headers. Maybe I just don't know how to use firebug). It also might show up in the error you are getting as well. The request will look something like this:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<soap:Header><context xmlns="urn:zimbra">
<userAgent name="ZimbraWebClient - FF2.0 (Mac)" version="4.5.9_GA_1454.MACOSXx86"/>
<sessionId id="57"/><change token="40233" type="new"/><authToken>...</authToken>
<format type="js"/></context></soap:Header><soap:Body>
<GetMsgRequest xmlns="urn:zimbraMail">
<m id="12902-15155" read="1" html="1"/>
</GetMsgRequest></soap:Body></soap:Envelope>
The item id for the calendar item is the number before the "-" in the id property:
<m id="12902-15155" read="1" html="1"/>
So, 12902.
Next, you can use zmmailbox to delete the item:
$ zmmailbox -z -m <mailbox>
mbox> gru -o /tmp/cal /Calendar
mbox> di 12902
After I did this, everything worked perfectly. It is also possible that 4.5.10 addresses this issue, but I don't know as I haven't installed it.