home-assistant / core

:house_with_garden: Open source home automation that puts local control and privacy first.
https://www.home-assistant.io
Apache License 2.0
71.07k stars 29.73k forks source link

recurring events not displayed correct #121766

Open EddieFAF opened 1 month ago

EddieFAF commented 1 month ago

The problem

Recurring events are not displayed properly. I'm using Radicale as caldav server. In several other applications (Android, AgenDav, Thunderbird, ..) recurring events are displayed correct. In the following example I have an event that is repeated every week on tuesdays.

Here is the calendar view in the UI, showing several events all on the same day instead of once every week: image

Querying the calendar using developertools->services like this for the whole month: image

I get this result: image

As you can see, there are several events, but all recurring events have the same start and end date, and not the date they should take place at.

In the past that was working correctly, but I can't really tell with which version this behavior appeared.

the content of the ics file looks like this:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:DAVx5/4.4.0.1-ose ical4j/3.2.18 (org.fossify.calendar)
BEGIN:VTIMEZONE
TZID:Europe/Berlin
BEGIN:STANDARD
DTSTART:19961027T030000
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
TZNAME:CET
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19810329T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
TZNAME:CEST
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
UID:feda5d55-466e-4838-9687-c5412cf6cac8
DTSTART;TZID=Europe/Berlin:20240709T091500
DTEND;TZID=Europe/Berlin:20240709T100000
CLASS:PUBLIC
CREATED:20240708T125446Z
DTSTAMP:20240708T130213Z
LOCATION:Kaiserstraße 29
RRULE:FREQ=WEEKLY;INTERVAL=1;BYDAY=TU
SEQUENCE:3
STATUS:CONFIRMED
SUMMARY:Sprachtherapie Felix
END:VEVENT
END:VCALENDAR

If needed I can try to provide further infos...

What version of Home Assistant Core has the issue?

core-2024.7.2

What was the last working version of Home Assistant Core?

No response

What type of installation are you running?

Home Assistant OS

Integration causing the issue

caldav

Link to integration documentation on our website

https://www.home-assistant.io/integrations/caldav/

Diagnostics information

No response

Example YAML snippet

No response

Anything in the logs that might be useful for us?

2024-07-11 12:29:55.641 DEBUG (SyncWorker_50) [caldav] response status: 0
2024-07-11 12:29:55.642 DEBUG (SyncWorker_50) [caldav] b'<multistatus xmlns="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav">\n  <response>\n    <href>/eisvogel/42286e95-5851-90a9-cb48-900b7d9e1360/feda5d55-466e-4838-9687-c5412cf6cac8.ics</href>\n    <propstat>\n      <prop>\n        <C:calendar-data>BEGIN:VCALENDAR\nVERSION:2.0\nPRODID:DAVx5/4.4.0.1-ose ical4j/3.2.18 (org.fossify.calendar)\nBEGIN:VEVENT\nUID:feda5d55-466e-4838-9687-c5412cf6cac8\nRECURRENCE-ID:20240709T071500Z\nDTSTART:20240709T071500Z\nDTEND:20240709T080000Z\nCLASS:PUBLIC\nCREATED:20240708T125446Z\nDTSTAMP:20240708T130213Z\nLOCATION:Kaiserstra&#223;e 29\nSEQUENCE:3\nSTATUS:CONFIRMED\nSUMMARY:Sprachtherapie Felix\nEND:VEVENT\nBEGIN:VEVENT\nUID:feda5d55-466e-4838-9687-c5412cf6cac8\nRECURRENCE-ID:20240716T071500Z\nDTSTART:20240709T071500Z\nDTEND:20240709T080000Z\nCLASS:PUBLIC\nCREATED:20240708T125446Z\nDTSTAMP:20240708T130213Z\nLOCATION:Kaiserstra&#223;e 29\nSEQUENCE:3\nSTATUS:CONFIRMED\nSUMMARY:Sprachtherapie Felix\nEND:VEVENT\nBEGIN:VEVENT\nUID:feda5d55-466e-4838-9687-c5412cf6cac8\nRECURRENCE-ID:20240723T071500Z\nDTSTART:20240709T071500Z\nDTEND:20240709T080000Z\nCLASS:PUBLIC\nCREATED:20240708T125446Z\nDTSTAMP:20240708T130213Z\nLOCATION:Kaiserstra&#223;e 29\nSEQUENCE:3\nSTATUS:CONFIRMED\nSUMMARY:Sprachtherapie Felix\nEND:VEVENT\nBEGIN:VEVENT\nUID:feda5d55-466e-4838-9687-c5412cf6cac8\nRECURRENCE-ID:20240730T071500Z\nDTSTART:20240709T071500Z\nDTEND:20240709T080000Z\nCLASS:PUBLIC\nCREATED:20240708T125446Z\nDTSTAMP:20240708T130213Z\nLOCATION:Kaiserstra&#223;e 29\nSEQUENCE:3\nSTATUS:CONFIRMED\nSUMMARY:Sprachtherapie Felix\nEND:VEVENT\nBEGIN:VEVENT\nUID:feda5d55-466e-4838-9687-c5412cf6cac8\nRECURRENCE-ID:20240806T071500Z\nDTSTART:20240709T071500Z\nDTEND:20240709T080000Z\nCLASS:PUBLIC\nCREATED:20240708T125446Z\nDTSTAMP:20240708T130213Z\nLOCATION:Kaiserstra&#223;e 29\nSEQUENCE:3\nSTATUS:CONFIRMED\nSUMMARY:Sprachtherapie Felix\nEND:VEVENT\nEND:VCALENDAR\n</C:calendar-data>\n      </prop>\n      <status>HTTP/1.1 200 OK</status>\n    </propstat>\n  </response>\n  <response>\n    <href>/eisvogel/42286e95-5851-90a9-cb48-900b7d9e1360/fbe4f0eb-10f5-419c-aee7-37d30f539ad1.ics</href>\n    <propstat>\n      <prop>\n        <C:calendar-data>BEGIN:VCALENDAR\nVERSION:2.0\nPRODID:DAVx5/4.4.0.1-ose ical4j/3.2.18 (org.fossify.calendar)\nBEGIN:VEVENT\nUID:fbe4f0eb-10f5-419c-aee7-37d30f539ad1\nDTSTART:20240722\nDTEND:20240810\nCLASS:PUBLIC\nDTSTAMP:20240708T093254Z\nSEQUENCE:1\nSTATUS:CONFIRMED\nSUMMARY:Urlaub Spanier\nBEGIN:VALARM\nACTION:DISPLAY\nDESCRIPTION:Urlaub Spanier\nTRIGGER:-PT10M\nEND:VALARM\nEND:VEVENT\nEND:VCALENDAR\n</C:calendar-data>\n      </prop>\n      <status>HTTP/1.1 200 OK</status>\n    </propstat>\n  </response>\n  <response>\n    <href>/eisvogel/42286e95-5851-90a9-cb48-900b7d9e1360/c1207893-6a2a-4616-a59f-888f7ea64648.ics</href>\n    <propstat>\n      <prop>\n        <C:calendar-data>BEGIN:VCALENDAR\nVERSION:2.0\nPRODID:DAVx5/4.4.0.1-ose ical4j/3.2.18 (org.fossify.calendar)\nBEGIN:VEVENT\nUID:c1207893-6a2a-4616-a59f-888f7ea64648\nRECURRENCE-ID:20240704T063000Z\nDTSTART:20230817T063000Z\nDTEND:20230817T071500Z\nCLASS:PUBLIC\nCREATED:20231024T155919Z\nDESCRIPTION:a\nDTSTAMP:20240710T120621Z\nLOCATION:Kaiserstra&#223;e 29\\, 31311 Uetze\nSEQUENCE:20\nSTATUS:CONFIRMED\nSUMMARY:Sprachtherapie Felix\nX-MOZ-GENERATION:3\nEND:VEVENT\nBEGIN:VEVENT\nUID:c1207893-6a2a-4616-a59f-888f7ea64648\nRECURRENCE-ID:20240711T063000Z\nDTSTART:20230817T063000Z\nDTEND:20230817T071500Z\nCLASS:PUBLIC\nCREATED:20231024T155919Z\nDESCRIPTION:a\nDTSTAMP:20240710T120621Z\nLOCATION:Kaiserstra&#223;e 29\\, 31311 Uetze\nSEQUENCE:20\nSTATUS:CONFIRMED\nSUMMARY:Sprachtherapie Felix\nX-MOZ-GENERATION:3\nEND:VEVENT\nBEGIN:VEVENT\nUID:c1207893-6a2a-4616-a59f-888f7ea64648\nRECURRENCE-ID:20240718T063000Z\nDTSTART:20230817T063000Z\nDTEND:20230817T071500Z\nCLASS:PUBLIC\nCREATED:20231024T155919Z\nDESCRIPTION:a\nDTSTAMP:20240710T120621Z\nLOCATION:Kaiserstra&#223;e 29\\, 31311 Uetze\nSEQUENCE:20\nSTATUS:CONFIRMED\nSUMMARY:Sprachtherapie Felix\nX-MOZ-GENERATION:3\nEND:VEVENT\nBEGIN:VEVENT\nUID:c1207893-6a2a-4616-a59f-888f7ea64648\nRECURRENCE-ID:20240725T063000Z\nDTSTART:20230817T063000Z\nDTEND:20230817T071500Z\nCLASS:PUBLIC\nCREATED:20231024T155919Z\nDESCRIPTION:a\nDTSTAMP:20240710T120621Z\nLOCATION:Kaiserstra&#223;e 29\\, 31311 Uetze\nSEQUENCE:20\nSTATUS:CONFIRMED\nSUMMARY:Sprachtherapie Felix\nX-MOZ-GENERATION:3\nEND:VEVENT\nBEGIN:VEVENT\nUID:c1207893-6a2a-4616-a59f-888f7ea64648\nRECURRENCE-ID:20240801T063000Z\nDTSTART:20230817T063000Z\nDTEND:20230817T071500Z\nCLASS:PUBLIC\nCREATED:20231024T155919Z\nDESCRIPTION:a\nDTSTAMP:20240710T120621Z\nLOCATION:Kaiserstra&#223;e 29\\, 31311 Uetze\nSEQUENCE:20\nSTATUS:CONFIRMED\nSUMMARY:Sprachtherapie Felix\nX-MOZ-GENERATION:3\nEND:VEVENT\nBEGIN:VEVENT\nUID:c1207893-6a2a-4616-a59f-888f7ea64648\nRECURRENCE-ID:20240808T063000Z\nDTSTART:20230817T063000Z\nDTEND:20230817T071500Z\nCLASS:PUBLIC\nCREATED:20231024T155919Z\nDESCRIPTION:a\nDTSTAMP:20240710T120621Z\nLOCATION:Kaiserstra&#223;e 29\\, 31311 Uetze\nSEQUENCE:20\nSTATUS:CONFIRMED\nSUMMARY:Sprachtherapie Felix\nX-MOZ-GENERATION:3\nEND:VEVENT\nEND:VCALENDAR\n</C:calendar-data>\n      </prop>\n      <status>HTTP/1.1 200 OK</status>\n    </propstat>\n  </response>\n</multistatus>\n'
2024-07-11 12:29:55.642 DEBUG (SyncWorker_50) [caldav] b'<?xml version=\'1.0\' encoding=\'utf-8\'?>\n<multistatus xmlns="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav"><response><href>/eisvogel/42286e95-5851-90a9-cb48-900b7d9e1360/feda5d55-466e-4838-9687-c5412cf6cac8.ics</href><propstat><prop><C:calendar-data>BEGIN:VCALENDAR\r\nVERSION:2.0\r\nPRODID:DAVx5/4.4.0.1-ose ical4j/3.2.18 (org.fossify.calendar)\r\nBEGIN:VEVENT\r\nUID:feda5d55-466e-4838-9687-c5412cf6cac8\r\nRECURRENCE-ID:20240709T071500Z\r\nDTSTART:20240709T071500Z\r\nDTEND:20240709T080000Z\r\nCLASS:PUBLIC\r\nCREATED:20240708T125446Z\r\nDTSTAMP:20240708T130213Z\r\nLOCATION:Kaiserstra\xc3\x9fe 29\r\nSEQUENCE:3\r\nSTATUS:CONFIRMED\r\nSUMMARY:Sprachtherapie Felix\r\nEND:VEVENT\r\nBEGIN:VEVENT\r\nUID:feda5d55-466e-4838-9687-c5412cf6cac8\r\nRECURRENCE-ID:20240716T071500Z\r\nDTSTART:20240709T071500Z\r\nDTEND:20240709T080000Z\r\nCLASS:PUBLIC\r\nCREATED:20240708T125446Z\r\nDTSTAMP:20240708T130213Z\r\nLOCATION:Kaiserstra\xc3\x9fe 29\r\nSEQUENCE:3\r\nSTATUS:CONFIRMED\r\nSUMMARY:Sprachtherapie Felix\r\nEND:VEVENT\r\nBEGIN:VEVENT\r\nUID:feda5d55-466e-4838-9687-c5412cf6cac8\r\nRECURRENCE-ID:20240723T071500Z\r\nDTSTART:20240709T071500Z\r\nDTEND:20240709T080000Z\r\nCLASS:PUBLIC\r\nCREATED:20240708T125446Z\r\nDTSTAMP:20240708T130213Z\r\nLOCATION:Kaiserstra\xc3\x9fe 29\r\nSEQUENCE:3\r\nSTATUS:CONFIRMED\r\nSUMMARY:Sprachtherapie Felix\r\nEND:VEVENT\r\nBEGIN:VEVENT\r\nUID:feda5d55-466e-4838-9687-c5412cf6cac8\r\nRECURRENCE-ID:20240730T071500Z\r\nDTSTART:20240709T071500Z\r\nDTEND:20240709T080000Z\r\nCLASS:PUBLIC\r\nCREATED:20240708T125446Z\r\nDTSTAMP:20240708T130213Z\r\nLOCATION:Kaiserstra\xc3\x9fe 29\r\nSEQUENCE:3\r\nSTATUS:CONFIRMED\r\nSUMMARY:Sprachtherapie Felix\r\nEND:VEVENT\r\nBEGIN:VEVENT\r\nUID:feda5d55-466e-4838-9687-c5412cf6cac8\r\nRECURRENCE-ID:20240806T071500Z\r\nDTSTART:20240709T071500Z\r\nDTEND:20240709T080000Z\r\nCLASS:PUBLIC\r\nCREATED:20240708T125446Z\r\nDTSTAMP:20240708T130213Z\r\nLOCATION:Kaiserstra\xc3\x9fe 29\r\nSEQUENCE:3\r\nSTATUS:CONFIRMED\r\nSUMMARY:Sprachtherapie Felix\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n</C:calendar-data></prop><status>HTTP/1.1 200 OK</status></propstat></response><response><href>/eisvogel/42286e95-5851-90a9-cb48-900b7d9e1360/fbe4f0eb-10f5-419c-aee7-37d30f539ad1.ics</href><propstat><prop><C:calendar-data>BEGIN:VCALENDAR\r\nVERSION:2.0\r\nPRODID:DAVx5/4.4.0.1-ose ical4j/3.2.18 (org.fossify.calendar)\r\nBEGIN:VEVENT\r\nUID:fbe4f0eb-10f5-419c-aee7-37d30f539ad1\r\nDTSTART:20240722\r\nDTEND:20240810\r\nCLASS:PUBLIC\r\nDTSTAMP:20240708T093254Z\r\nSEQUENCE:1\r\nSTATUS:CONFIRMED\r\nSUMMARY:Urlaub Spanier\r\nBEGIN:VALARM\r\nACTION:DISPLAY\r\nDESCRIPTION:Urlaub Spanier\r\nTRIGGER:-PT10M\r\nEND:VALARM\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n</C:calendar-data></prop><status>HTTP/1.1 200 OK</status></propstat></response><response><href>/eisvogel/42286e95-5851-90a9-cb48-900b7d9e1360/c1207893-6a2a-4616-a59f-888f7ea64648.ics</href><propstat><prop><C:calendar-data>BEGIN:VCALENDAR\r\nVERSION:2.0\r\nPRODID:DAVx5/4.4.0.1-ose ical4j/3.2.18 (org.fossify.calendar)\r\nBEGIN:VEVENT\r\nUID:c1207893-6a2a-4616-a59f-888f7ea64648\r\nRECURRENCE-ID:20240704T063000Z\r\nDTSTART:20230817T063000Z\r\nDTEND:20230817T071500Z\r\nCLASS:PUBLIC\r\nCREATED:20231024T155919Z\r\nDESCRIPTION:a\r\nDTSTAMP:20240710T120621Z\r\nLOCATION:Kaiserstra\xc3\x9fe 29\\, 31311 Uetze\r\nSEQUENCE:20\r\nSTATUS:CONFIRMED\r\nSUMMARY:Sprachtherapie Felix\r\nX-MOZ-GENERATION:3\r\nEND:VEVENT\r\nBEGIN:VEVENT\r\nUID:c1207893-6a2a-4616-a59f-888f7ea64648\r\nRECURRENCE-ID:20240711T063000Z\r\nDTSTART:20230817T063000Z\r\nDTEND:20230817T071500Z\r\nCLASS:PUBLIC\r\nCREATED:20231024T155919Z\r\nDESCRIPTION:a\r\nDTSTAMP:20240710T120621Z\r\nLOCATION:Kaiserstra\xc3\x9fe 29\\, 31311 Uetze\r\nSEQUENCE:20\r\nSTATUS:CONFIRMED\r\nSUMMARY:Sprachtherapie Felix\r\nX-MOZ-GENERATION:3\r\nEND:VEVENT\r\nBEGIN:VEVENT\r\nUID:c1207893-6a2a-4616-a59f-888f7ea64648\r\nRECURRENCE-ID:20240718T063000Z\r\nDTSTART:20230817T063000Z\r\nDTEND:20230817T071500Z\r\nCLASS:PUBLIC\r\nCREATED:20231024T155919Z\r\nDESCRIPTION:a\r\nDTSTAMP:20240710T120621Z\r\nLOCATION:Kaiserstra\xc3\x9fe 29\\, 31311 Uetze\r\nSEQUENCE:20\r\nSTATUS:CONFIRMED\r\nSUMMARY:Sprachtherapie Felix\r\nX-MOZ-GENERATION:3\r\nEND:VEVENT\r\nBEGIN:VEVENT\r\nUID:c1207893-6a2a-4616-a59f-888f7ea64648\r\nRECURRENCE-ID:20240725T063000Z\r\nDTSTART:20230817T063000Z\r\nDTEND:20230817T071500Z\r\nCLASS:PUBLIC\r\nCREATED:20231024T155919Z\r\nDESCRIPTION:a\r\nDTSTAMP:20240710T120621Z\r\nLOCATION:Kaiserstra\xc3\x9fe 29\\, 31311 Uetze\r\nSEQUENCE:20\r\nSTATUS:CONFIRMED\r\nSUMMARY:Sprachtherapie Felix\r\nX-MOZ-GENERATION:3\r\nEND:VEVENT\r\nBEGIN:VEVENT\r\nUID:c1207893-6a2a-4616-a59f-888f7ea64648\r\nRECURRENCE-ID:20240801T063000Z\r\nDTSTART:20230817T063000Z\r\nDTEND:20230817T071500Z\r\nCLASS:PUBLIC\r\nCREATED:20231024T155919Z\r\nDESCRIPTION:a\r\nDTSTAMP:20240710T120621Z\r\nLOCATION:Kaiserstra\xc3\x9fe 29\\, 31311 Uetze\r\nSEQUENCE:20\r\nSTATUS:CONFIRMED\r\nSUMMARY:Sprachtherapie Felix\r\nX-MOZ-GENERATION:3\r\nEND:VEVENT\r\nBEGIN:VEVENT\r\nUID:c1207893-6a2a-4616-a59f-888f7ea64648\r\nRECURRENCE-ID:20240808T063000Z\r\nDTSTART:20230817T063000Z\r\nDTEND:20230817T071500Z\r\nCLASS:PUBLIC\r\nCREATED:20231024T155919Z\r\nDESCRIPTION:a\r\nDTSTAMP:20240710T120621Z\r\nLOCATION:Kaiserstra\xc3\x9fe 29\\, 31311 Uetze\r\nSEQUENCE:20\r\nSTATUS:CONFIRMED\r\nSUMMARY:Sprachtherapie Felix\r\nX-MOZ-GENERATION:3\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n</C:calendar-data></prop><status>HTTP/1.1 200 OK</status></propstat></response></multistatus>'
2024-07-11 12:29:55.677 DEBUG (SyncWorker_44) [caldav] server responded with 207 Multi-Status
2024-07-11 12:29:55.677 DEBUG (SyncWorker_44) [caldav] response headers: {'Content-Encoding': 'gzip', 'Content-Length': '732', 'Content-Type': 'text/xml; charset=utf-8', 'Date': 'Thu, 11 Jul 2024 10:29:55 GMT', 'Permissions-Policy': 'camera=(),geolocation=(),microphone=(),payment=(),usb=(),vr=()', 'Referrer-Policy': 'same-origin', 'Strict-Transport-Security': 'max-age=63072000; includeSubDomains; preload', 'Vary': 'Accept-Encoding', 'X-Content-Type-Options': 'nosniff', 'X-Frame-Options': 'allow-from https://eisvogelweg2.de', 'X-Robots-Tag': 'none,noarchive,nosnippet,notranslate,noimageindex,', 'X-Xss-Protection': '1; mode=block'}
2024-07-11 12:29:55.677 DEBUG (SyncWorker_44) [caldav] response status: 0

Additional information

No response

home-assistant[bot] commented 1 month ago

caldav documentation caldav source

brandonb1987 commented 3 weeks ago

Bump, this is a VERY annoying bug that makes CalDav essentially useless because a lot of my calendars use repeated schedules. So, for example, my entire work schedule is useless and can't be used.

For someone like myself who is on a set shift rotation, I'm sorry but I'm not going to input every shift when it doesn't change for sometimes years....

PLEASE FIX THIS

eNBeWe commented 2 weeks ago

I just wanted to try the CalDav integration with my NextCloud calendar and it is missing the recurring events. This kind of defeats the whole idea of this integration.