hi
we experimented a lot since the daylight saving time with sogo and
calendar clients that display the events in the wrong timezone. we
finally narrowed down the problem and solved it through a rewrite rule
in the apache config:
RequestHeader unset Accept-Encoding
AddOutputFilterByType SUBSTITUTE text/calendar text/xml
Substitute
's|^RRULE:([A-Z].+[A-Za-z0-9]);?FREQ=([A-Za-z]*);?(.*)$|RRULE:FREQ=$2;$1$3|'
the problem was that iCal expects the reccuring events, standard and
daylight definitions to start with the attribute FREQ, like this:
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
as in RFC2445 for iCalendar Core Object Spec, it is not absolutely
specified that the FREQ attribute must be the first one, but it can be
inferred I think.
http://www.ietf.org/rfc/rfc2445.txt on page 40:
....
Formal Definition: The value type is defined by the following
notation:
recur = "FREQ"=freq *(
; either UNTIL or COUNT may appear in a 'recur',
; but UNTIL and COUNT MUST NOT occur in the same 'recur'
( ";" "UNTIL" "=" enddate ) /
( ";" "COUNT" "=" 1*DIGIT ) /
; the rest of these keywords are optional,
; but MUST NOT occur more than once
( ";" "INTERVAL" "=" 1*DIGIT ) /
( ";" "BYSECOND" "=" byseclist ) /
( ";" "BYMINUTE" "=" byminlist ) /
( ";" "BYHOUR" "=" byhrlist ) /
( ";" "BYDAY" "=" bywdaylist ) /
( ";" "BYMONTHDAY" "=" bymodaylist ) /
( ";" "BYYEARDAY" "=" byyrdaylist ) /
( ";" "BYWEEKNO" "=" bywknolist ) /
( ";" "BYMONTH" "=" bymolist ) /
( ";" "BYSETPOS" "=" bysplist ) /
( ";" "WKST" "=" weekday ) /
( ";" x-name "=" text )
)
....
so my suggestion to the developers would be to set the RRULE attributes
in the right order in the sogo core. iCal would then work correctly
without the need of a hack, and so would the other clients.
of course, we could also send a suggestion to apple to fix their code,
but to what end :D
greetings
hugo.-
--
[email protected]
https://inverse.ca/sogo/lists