Ich habe mal ein wenig rumgespielt. Wenn ich die Datei in iCal importiere -> exportiere und dann in Google Kalender ziehe, stimmen die Zeiten.
Also hab ich mal das Original mit dem Export aus iCal verglichen.
Dabei ist mir die 2. Zeile vom iCal export aufgefallen:
X-WR-TIMEZONE:Europe/Berlin
Nachdem ich die im Original als property von VTIMEZONE hinzugefügt habe, stimmten auch da die Zeiten.
Allerdings sind X-* header optional und nicht Teil des Standards. Imho ist die Zeitzonen-Def eh ganz schön lang ...