pimutils / khal

:calendar: CLI calendar application
https://lostpackets.de/khal/
MIT License
2.59k stars 200 forks source link

Cancellations of recurrent events are not handled #523

Closed noctux closed 7 years ago

noctux commented 7 years ago

I've created and recurring event on my Android phone with a weekly occurrence on Mondays until somewhere in February, but three exceptions to the rule, e.g. one around Christmas. The resulting .ics file looks like this (please note that I've modified the SUMMARY and DESCRIPTION fields of the VEVENTs for privacy reasons):

BEGIN:VCALENDAR
VERSION:2.0
PRODID:+//IDN bitfire.at//DAVdroid/1.3.3-ose ical4android ical4j/2.x
BEGIN:VEVENT
DTSTAMP:20161021T202329Z
UID:6db64a41-af35-4b22-9ce9-257f78e8a151
SEQUENCE:3
DTSTART;TZID=Europe/Berlin:20161024T101500
DURATION:PT5400S
RRULE:FREQ=WEEKLY;WKST=MO;UNTIL=20170211T081500Z;BYDAY=MO
SUMMARY:DESC_REMOVED_FOR_PRIVACY_REASONS
STATUS:CONFIRMED
BEGIN:VALARM
TRIGGER:-PT10M
ACTION:DISPLAY
DESCRIPTION:DESC_REMOVED_FOR_PRIVACY_REASONS
END:VALARM
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20161021T202329Z
UID:6db64a41-af35-4b22-9ce9-257f78e8a151
RECURRENCE-ID:20161226T091500Z
SEQUENCE:1
DTSTART;TZID=Europe/Berlin:20161226T101500
DTEND;TZID=Europe/Berlin:20161226T114500
SUMMARY:DESC_REMOVED_FOR_PRIVACY_REASONS
STATUS:CANCELLED
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20161021T202329Z
UID:6db64a41-af35-4b22-9ce9-257f78e8a151
RECURRENCE-ID:20170102T091500Z
SEQUENCE:1
DTSTART;TZID=Europe/Berlin:20170102T101500
DTEND;TZID=Europe/Berlin:20170102T114500
SUMMARY:DESC_REMOVED_FOR_PRIVACY_REASONS
STATUS:CANCELLED
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20161021T202329Z
UID:6db64a41-af35-4b22-9ce9-257f78e8a151
RECURRENCE-ID:20161128T091500Z
SEQUENCE:1
DTSTART;TZID=Europe/Berlin:20161128T101500
DTEND;TZID=Europe/Berlin:20161128T114500
SUMMARY:DESC_REMOVED_FOR_PRIVACY_REASONS
STATUS:CANCELLED
END:VEVENT
BEGIN:VTIMEZONE
TZID:Europe/Berlin
BEGIN:STANDARD
DTSTART;VALUE=DATE-TIME:20161030T020000
TZNAME:CET
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
END:STANDARD
BEGIN:DAYLIGHT
DTSTART;VALUE=DATE-TIME:20160327T020000
TZNAME:CEST
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
END:DAYLIGHT
END:VTIMEZONE
END:VCALENDAR

Khal does not seem to parse the cancellation entries correctly and still shows those appointments which should have been cancelled. This happens both with version 0.8.4 as well as git master (this is 039a6e8 at the time of writing). However, I don't know, whether Androids/Davdroids format is standard-compliant here, if so, I would be happy to report the bug there, just give me a notice.

Thanks for the project and considering this issue! If further information is required, please ask.

geier commented 7 years ago

No it doesn't. We currently completely ignore any status properties, it might be a good idea to at least show that property, if not by default than make it configurable via the new --format directives.

geier commented 7 years ago

This is handled since 911060a7ff76d9706b6d7dfbef50bd617fd83558