Event not removed after importing ics file containing cancel method
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 3.1k
- Forks
- 233
- Avg merge
- 1h 44m
- Merged PRs (30d)
- 1
Description
Describe the bug
Importing an ics file from a cancellation email does not remove the event from the calendar.
To Reproduce
Import ics file from invitation email.
Then import the ics file from the corresponding cancellation email.
Expected behavior
The event should be removed from the calendar.
OS, version, khal version and how you installed it:
- The output of khal --version: khal, version 0.10.5
- Installation method: apt
- python3 --version: Python 3.11.2
- OS: Debian
- khal config file:
[calendars]
[[BESP_local]]
path = ~/vdir-calendar-besp/FOLDER_NAME/
type = calendar
[[TEAM_local]]
path = ~/vdir-calendar-team/ANOTHER_FOLDER_NAME/
type = calendar
[default]
timedelta = 7 days
[locale]
timeformat = %H:%M
dateformat = %Y-%m-%d
longdateformat = %Y-%m-%d
datetimeformat = %Y-%m-%d %H:%M
longdatetimeformat = %Y-%m-%d %H:%M
- output of
pip freeze:
aiohttp==3.8.4
aiosignal==1.3.1
aiostream==0.4.3
async-timeout==4.0.2
atomicwrites==1.4.1
attrs==22.2.0
certifi==2022.9.24
chardet==5.1.0
charset-normalizer==3.0.1
click==8.1.3
click-log==0.3.2
colorama==0.4.6
configobj==5.0.8
distro==1.8.0
frozenlist==1.3.3
httplib2==0.20.4
icalendar==4.0.3
idna==3.3
imaplib2==3.5
khal==0.10.5
multidict==6.0.4
pycurl==7.45.2
pyparsing==3.0.9
PySimpleSOAP==1.16.2
python-apt==2.6.0
python-dateutil==2.8.2
python-debian==0.1.49
python-debianbts==4.0.1
pytz==2022.7.1
pytz-deprecation-shim==0.1.0.post0
pyxdg==0.28
reportbug==12.0.0
requests==2.28.1
requests-toolbelt==0.10.1
setproctitle==1.3.1
six==1.16.0
tzlocal==4.2
urllib3==1.26.12
urwid==2.1.2
vdirsyncer==0.19.0
xdg==5
yarl==1.8.2
Additional context
- ics file content: (some personal information has been replaced by the following: ---INFO REMOVED---)
BEGIN:VCALENDAR
PRODID:-//Mozilla.org/NONSGML Mozilla Calendar V1.1//EN
VERSION:2.0
METHOD:CANCEL
BEGIN:VTIMEZONE
TZID:Europe/Berlin
X-TZINFO:Europe/Berlin[2024a]
BEGIN:STANDARD
TZOFFSETTO:+010000
TZOFFSETFROM:+005328
TZNAME:Europe/Berlin(STD)
DTSTART:18930401T000000
RDATE:18930401T000000
END:STANDARD
BEGIN:STANDARD
TZOFFSETTO:+010000
TZOFFSETFROM:+020000
TZNAME:Europe/Berlin(STD)
DTSTART:19161001T010000
RDATE:19161001T010000
END:STANDARD
BEGIN:STANDARD
TZOFFSETTO:+010000
TZOFFSETFROM:+020000
TZNAME:Europe/Berlin(STD)
DTSTART:19170917T030000
RRULE:FREQ=YEARLY;BYMONTH=9;BYDAY=3MO;UNTIL=19180916T030000
END:STANDARD
BEGIN:STANDARD
TZOFFSETTO:+010000
TZOFFSETFROM:+020000
TZNAME:Europe/Berlin(STD)
DTSTART:19421102T030000
RDATE:19421102T030000
END:STANDARD
BEGIN:STANDARD
TZOFFSETTO:+010000
TZOFFSETFROM:+020000
TZNAME:Europe/Berlin(STD)
DTSTART:19431004T030000
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1MO;UNTIL=19441002T030000
END:STANDARD
BEGIN:STANDARD
TZOFFSETTO:+010000
TZOFFSETFROM:+020000
TZNAME:Europe/Berlin(STD)
DTSTART:19451118T030000
RDATE:19451118T030000
END:STANDARD
BEGIN:STANDARD
TZOFFSETTO:+010000
TZOFFSETFROM:+020000
TZNAME:Europe/Berlin(STD)
DTSTART:19461007T030000
RDATE:19461007T030000
END:STANDARD
BEGIN:STANDARD
TZOFFSETTO:+010000
TZOFFSETFROM:+020000
TZNAME:Europe/Berlin(STD)
DTSTART:19471005T030000
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU;UNTIL=19491002T030000
END:STANDARD
BEGIN:STANDARD
TZOFFSETTO:+010000
TZOFFSETFROM:+020000
TZNAME:Europe/Berlin(STD)
DTSTART:19800928T030000
RRULE:FREQ=YEARLY;BYMONTH=9;BYDAY=-1SU;UNTIL=19950924T030000
END:STANDARD
BEGIN:STANDARD
TZOFFSETTO:+010000
TZOFFSETFROM:+020000
TZNAME:Europe/Berlin(STD)
DTSTART:19961027T030000
RDATE:19961027T030000
END:STANDARD
BEGIN:STANDARD
TZOFFSETTO:+010000
TZOFFSETFROM:+020000
TZNAME:(STD)
DTSTART:19971026T030000
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETTO:+020000
TZOFFSETFROM:+010000
TZNAME:Europe/Berlin(DST)
DTSTART:19160430T230000
RDATE:19160430T230000
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETTO:+020000
TZOFFSETFROM:+010000
TZNAME:Europe/Berlin(DST)
DTSTART:19170416T020000
RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=3MO;UNTIL=19180415T020000
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETTO:+020000
TZOFFSETFROM:+010000
TZNAME:Europe/Berlin(DST)
DTSTART:19400401T020000
RDATE:19400401T020000
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETTO:+020000
TZOFFSETFROM:+010000
TZNAME:Europe/Berlin(DST)
DTSTART:19430329T020000
RDATE:19430329T020000
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETTO:+020000
TZOFFSETFROM:+010000
TZNAME:Europe/Berlin(DST)
DTSTART:19440403T020000
RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1MO;UNTIL=19450402T020000
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETTO:+030000
TZOFFSETFROM:+020000
TZNAME:Europe/Berlin(DST)
DTSTART:19450524T020000
RDATE:19450524T020000
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETTO:+020000
TZOFFSETFROM:+030000
TZNAME:Europe/Berlin(DST)
DTSTART:19450924T030000
RDATE:19450924T030000
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETTO:+020000
TZOFFSETFROM:+010000
TZNAME:Europe/Berlin(DST)
DTSTART:19460414T020000
RDATE:19460414T020000
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETTO:+020000
TZOFFSETFROM:+010000
TZNAME:Europe/Berlin(DST)
DTSTART:19470406T030000
RDATE:19470406T030000
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETTO:+030000
TZOFFSETFROM:+020000
TZNAME:Europe/Berlin(DST)
DTSTART:19470511T030000
RDATE:19470511T030000
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETTO:+020000
TZOFFSETFROM:+030000
TZNAME:Europe/Berlin(DST)
DTSTART:19470629T030000
RDATE:19470629T030000
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETTO:+020000
TZOFFSETFROM:+010000
TZNAME:Europe/Berlin(DST)
DTSTART:19480418T020000
RDATE:19480418T020000
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETTO:+020000
TZOFFSETFROM:+010000
TZNAME:Europe/Berlin(DST)
DTSTART:19490410T020000
RDATE:19490410T020000
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETTO:+020000
TZOFFSETFROM:+010000
TZNAME:Europe/Berlin(DST)
DTSTART:19800406T020000
RDATE:19800406T020000
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETTO:+020000
TZOFFSETFROM:+010000
TZNAME:Europe/Berlin(DST)
DTSTART:19810329T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU;UNTIL=19960331T020000
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETTO:+020000
TZOFFSETFROM:+010000
TZNAME:(DST)
DTSTART:19970330T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
CREATED:20250505T104925Z
LAST-MODIFIED:20250505T104943Z
DTSTAMP:20250505T104943Z
UID:733e86de-ce07-41c9-990b-9c91b41a35fd
SUMMARY:---INFO REMOVED---
ORGANIZER;PARTSTAT=NEEDS-ACTION;CUTYPE=INDIVIDUAL:mailto:---INFO REMOVED---
ATTENDEE;PARTSTAT=ACCEPTED;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT:mailto:---INFO REMOVED---
ATTENDEE;PARTSTAT=NEEDS-ACTION;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT:mailt
o:---INFO REMOVED---
DTSTART;TZID=Europe/Berlin:20250509T091500
DTEND;TZID=Europe/Berlin:20250509T101500
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing khal's calendar import handling for the supplied VCALENDAR with METHOD:CANCEL and compare it with the preceding invitation import. Reproduce the two-step import using the issue's example, then verify that the matching event is removed from the calendar.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- cli
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100