Sorry to be a pain but I am confused. The time in EM *IS* correct on my server - I don't have any problems on the server... the problem appears to be with how the .ics file is interpreted by Google Calendar.
This is an entry in the ics file after daylight savings change:
BEGIN:VEVENT
UID:e79b311e-6407-401e-b390-f68fcebfa0e9
DTSTART:20120406T190000Z
DTEND:20120406T220000Z
DTSTAMP:20111206T125646Z
SUMMARY:Good Friday - NO Friday Night at the Studio Event - Ian's Studio - 6 Apr 12 19:00
LOCATION:#_LOCATION
URL:http://www.ians-studio.co.uk/events/event/good-friday-no-friday-night-at-the-studio-event/
END:VEVENT
As you can see it is being exported as being 19:00 till 22:00. But when Google calendar imports the event it imports as running 20:00 till 23:00.
Looking at the header of the ics file I have the following:
BEGIN:VCALENDAR
VERSION:2.0
METHOD:PUBLISH
CALSCALE:GREGORIAN
PRODID:-//Events Manager//1.0//EN
X-WR-CALNAME:Ian's Studio - Calendar
I won't pretend to really understand the ics file format but I would expect to see a TZID tag daylight savings specification to say what timezone the calendar is for and when daylight savings starts.
When the ics is imported into Google calendar a calendar timezone of "GMT+00:00) GMT (no daylight saving)" is set with no way to change this.
Some ics files I've looked at have the following included in in the header seciton:
BEGIN:VTIMEZONE
TZID:Europe/London
BEGIN:DAYLIGHT
TZOFFSETFROM:+0000
TZOFFSETTO:+0100
DTSTART:19810329T010000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
TZNAME:BST
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0100
TZOFFSETTO:+0000
DTSTART:19961027T020000
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
TZNAME:GMT
END:STANDARD
END:VTIMEZONE
Nothing like this appears in the ics file generated by EM.