I have this VTIMEZONE block
BEGIN:VTIMEZONE
TZID:Asia/Dubai
BEGIN:STANDARD
DTSTART:20000101T000000
RRULE:FREQ=YEARLY;BYMONTH=1
TZNAME:+04
TZOFFSETFROM:+0400
TZOFFSETTO:+0400
END:STANDARD
END:VTIMEZONE
Because the RRULE block is missing the BYDAY statement, outlook does is not able to parse this. I know that this is compliant code, but anyway, adding BYDAY does not hurt in this case.
Changing from
RRULE:FREQ=YEARLY;BYMONTH=1
to
RRULE:FREQ=YEARLY;BYDAY=1;BYMONTH=1
does the jobs.
This applies to places that do not have any clock change during the year.
I'm using vobject 0.9.6