[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Disappearing TZID in iCalendar Display.
From: |
Ralph Corderoy |
Subject: |
Disappearing TZID in iCalendar Display. |
Date: |
Sun, 20 Jun 2021 14:52:14 +0100 |
Hi,
mhshow(1) on an email which had a text/calendar part spewed many
duplicate
mhical: did not find VTIMEZONE section for GMT Standard Time
errors.
A rough trace of the control flow is
mhical: load_timezones
mhical: adding 'GMT Standard Time'
mhical: needle 'GMT Standard Time'
mhical: haystack 'GMT Standard Time'
mhical: needle 'GMT Standard Time'
mhical: haystack 'GMT Standard Time'
mhical: free_timezones
mhical: load_timezones
mhical: uip/mhical.c 677
mhical: needle 'GMT Standard Time'
mhical: did not find VTIMEZONE section for GMT Standard Time
Investigation suggests the list of timezones is parsed correctly and the
needle is found in its haystack in the initial call to display() but
then subsequent calls have an empty haystack of timezones.
I think this is because load_timezones() is called repeatedly but the
definition of GMT is only in the data for its first call. Here's the
node names load_timezones() sees on each call. TZID is only in the
first.
1 begin prodid version method x-calstart x-calend x-wr-relcalid
x-wr-calname begin tzid begin dtstart rrule tzoffsetfrom tzoffsetto
end begin dtstart rrule tzoffsetfrom tzoffsetto end end begin
attendee attendee attendee attendee categories class created
description dtend dtstamp dtstart last-modified location organizer
priority sequence summary transp uid x-alt-desc
x-microsoft-cdo-busystatus x-microsoft-cdo-importance
x-ms-olk-apptlastsequence x-ms-olk-apptseqtime end begin attendee
attendee attendee attendee categories class created description
dtend dtstamp dtstart last-modified location organizer priority
sequence summary transp uid x-alt-desc x-microsoft-cdo-busystatus
x-microsoft-cdo-importance x-ms-olk-apptlastsequence
x-ms-olk-apptseqtime end
2 begin attendee attendee attendee attendee attendee attendee
attendee categories class created description dtend dtstamp dtstart
last-modified location organizer priority sequence summary transp
uid x-alt-desc x-microsoft-cdo-busystatus
x-microsoft-cdo-importance x-ms-olk-apptlastsequence
x-ms-olk-apptseqtime end
3 begin attendee attendee attendee attendee attendee attendee
attendee attendee attendee categories class created description
dtend dtstamp dtstart last-modified location organizer priority
sequence summary transp uid x-alt-desc x-microsoft-cdo-busystatus
x-microsoft-cdo-importance x-ms-olk-apptlastsequence
x-ms-olk-apptseqtime end
4 begin attendee attendee attendee attendee attendee attendee
attendee attendee categories class created description dtend
dtstamp dtstart last-modified location organizer priority sequence
summary transp uid x-alt-desc x-microsoft-cdo-busystatus
x-microsoft-cdo-importance x-ms-olk-apptlastsequence
x-ms-olk-apptseqtime end
5 begin attendee attendee attendee categories class created
description dtend dtstamp dtstart exdate last-modified location
organizer priority rrule sequence summary transp uid x-alt-desc
x-microsoft-cdo-busystatus x-microsoft-cdo-importance
x-ms-olk-apptlastsequence x-ms-olk-apptseqtime end
6 begin class created dtend dtstamp dtstart last-modified priority
recurrence-id sequence uid x-microsoft-cdo-importance
x-ms-olk-apptseqtime end
7 begin attendee attendee attendee attendee attendee attendee
attendee categories class created description dtend dtstamp dtstart
last-modified location organizer priority sequence summary transp
uid x-alt-desc x-microsoft-cdo-busystatus
x-microsoft-cdo-importance x-ms-olk-apptlastsequence
x-ms-olk-apptseqtime end
8 begin attendee attendee attendee attendee attendee attendee
attendee attendee attendee categories class created description
dtend dtstamp dtstart last-modified location organizer priority
sequence summary transp uid x-alt-desc x-microsoft-cdo-busystatus
x-microsoft-cdo-importance x-ms-olk-apptlastsequence
x-ms-olk-apptseqtime end
9 begin attendee attendee attendee attendee categories class
created description dtend dtstamp dtstart last-modified location
organizer priority sequence summary transp uid x-alt-desc
x-microsoft-cdo-busystatus x-microsoft-cdo-importance
x-ms-olk-apptlastsequence x-ms-olk-apptseqtime end
The structure of the text/calendar part, as shown with
egrep '^(BEGIN|END|TZID|DTSTART;|DTEND;)'
and with some lines which repeated their surrounding VEVENTs deleted for
brevity is
1 BEGIN:VCALENDAR
2 BEGIN:VTIMEZONE
3 TZID:GMT Standard Time
4 BEGIN:STANDARD
5 END:STANDARD
6 BEGIN:DAYLIGHT
7 END:DAYLIGHT
8 END:VTIMEZONE
9 BEGIN:VEVENT
10 DTEND;TZID="GMT Standard Time":20210622T153000
11 DTSTART;TZID="GMT Standard Time":20210622T140000
12 END:VEVENT
13 BEGIN:VEVENT
14 DTEND;TZID="GMT Standard Time":20210622T170000
15 DTSTART;TZID="GMT Standard Time":20210622T160000
16 END:VEVENT
17 BEGIN:VEVENT
18 DTEND;TZID="GMT Standard Time":20210623T140000
19 DTSTART;TZID="GMT Standard Time":20210623T123000
20 END:VEVENT
21 BEGIN:VEVENT
22 DTEND;TZID="GMT Standard Time":20210624T113000
23 DTSTART;TZID="GMT Standard Time":20210624T100000
24 END:VEVENT
25 BEGIN:VEVENT
26 DTEND;TZID="GMT Standard Time":20210624T160000
27 DTSTART;TZID="GMT Standard Time":20210624T150000
28 END:VEVENT
29 BEGIN:VEVENT
30 DTEND;TZID="GMT Standard Time":20210611T110000
31 DTSTART;TZID="GMT Standard Time":20210611T100000
32 END:VEVENT
33 BEGIN:VEVENT
34 END:VEVENT
35 BEGIN:VEVENT
36 DTEND;TZID="GMT Standard Time":20210629T120000
37 DTSTART;TZID="GMT Standard Time":20210629T110000
38 END:VEVENT
...
383 BEGIN:VEVENT
384 DTEND;TZID="GMT Standard Time":20210914T110000
385 DTSTART;TZID="GMT Standard Time":20210914T100000
386 END:VEVENT
387 BEGIN:VEVENT
388 DTEND;TZID="GMT Standard Time":20210623T113000
389 DTSTART;TZID="GMT Standard Time":20210623T100000
390 END:VEVENT
391 BEGIN:VEVENT
392 DTEND;VALUE=DATE:20210724
393 DTSTART;VALUE=DATE:20210719
394 END:VEVENT
395 BEGIN:VEVENT
396 DTEND;VALUE=DATE:20210807
397 DTSTART;VALUE=DATE:20210802
398 END:VEVENT
399 BEGIN:VEVENT
400 DTEND;VALUE=DATE:20210626
401 DTSTART;VALUE=DATE:20210624
402 END:VEVENT
403 BEGIN:VEVENT
404 DTEND;VALUE=DATE:20210619
405 DTSTART;VALUE=DATE:20210618
406 END:VEVENT
407 BEGIN:VEVENT
408 DTEND;VALUE=DATE:20210619
409 DTSTART;VALUE=DATE:20210616
410 END:VEVENT
411 BEGIN:VEVENT
412 DTEND;TZID="GMT Standard Time":20210701T160000
413 DTSTART;TZID="GMT Standard Time":20210701T150000
414 END:VEVENT
...
499 BEGIN:VEVENT
500 DTEND;TZID="GMT Standard Time":20210906T120000
501 DTSTART;TZID="GMT Standard Time":20210906T110000
502 END:VEVENT
503 BEGIN:VEVENT
504 DTEND;TZID="GMT Standard Time":20210625T123000
505 DTSTART;TZID="GMT Standard Time":20210625T110000
506 END:VEVENT
507 END:VCALENDAR
I didn't investigate further in case I'm on the wrong track of the
text/calendar input doesn't comply with
https://www.rfc-editor.org/rfc/inline-errata/rfc5545.html
--
Cheers, Ralph.
- Disappearing TZID in iCalendar Display.,
Ralph Corderoy <=