Importance of timezones in recurring events

Following is a table of dates for a weekly recurring event. The original event (in an ics file) is specified in the Europe/London timezone. For the purposes of demonstration here, assume that the dates for event are to be displayed in the Sydney timezone.

Both London and Sydney have daylight saving changes. The table shows the perils of not adequately dealing with the timezones.

If one converts the start date to Sydney and then generates the repeating dates, one will end up with the wrong times. The correct way to do it, is to stay in the event timezone while one generates the repeating dates, and then at display time only, convert the datetime object to the display timezone.

London, recurring Convert to Sydney then recur (wrong) London recurring then convert to Sydney (right)
2010-03-08T19:00:00+00:00 2010-03-09T06:00:00+11:00 2010-03-09T06:00:00+11:00
2010-03-15T19:00:00+00:00 2010-03-16T06:00:00+11:00 2010-03-16T06:00:00+11:00
2010-03-22T19:00:00+00:00 2010-03-23T06:00:00+11:00 2010-03-23T06:00:00+11:00
2010-03-29T19:00:00+01:00 2010-03-30T06:00:00+11:00 2010-03-30T05:00:00+11:00
2010-04-05T19:00:00+01:00 2010-04-06T06:00:00+10:00 2010-04-06T04:00:00+10:00
2010-04-12T19:00:00+01:00 2010-04-13T06:00:00+10:00 2010-04-13T04:00:00+10:00
2010-04-19T19:00:00+01:00 2010-04-20T06:00:00+10:00 2010-04-20T04:00:00+10:00
2010-04-26T19:00:00+01:00 2010-04-27T06:00:00+10:00 2010-04-27T04:00:00+10:00
2010-05-03T19:00:00+01:00 2010-05-04T06:00:00+10:00 2010-05-04T04:00:00+10:00
2010-05-10T19:00:00+01:00 2010-05-11T06:00:00+10:00 2010-05-11T04:00:00+10:00