Radicale
Radicale copied to clipboard
"Overwritten recurrence with RRULESET" error
Radicale breaks if presented with icalendar data having both RECURRENCE-ID and RRULE set. The RFC is very vague on this, but it does not say explicitly that those two cannot be combined. I do see that there are some few other issues at this, namely #700 and #758, both of them are closed, concluding that the problem is with broken icalendar data. I'm not entirely sure this conclusion is correct.
At first it may sound like it doesn't make sense combining those two, but the RECURRENCE-ID takes a parameter RANGE which can be set to THISANDFUTURE as well as THISANDPRIOR. In my head it then makes sense to include RRULE to indicate what kind of future/prior events are affected. Consider the case where a monthly meeting is moved from being held at the first Monday of the month to the first Tuesday of the month, this involves editing the RRULE itself.
The RFC is also very lacking on how to handle recurring tasks. The way I "solved" completion of an instance of a recurring task in my calendar-cli utility was to split the task into a "completed" and "remaining", both of them having RECURRENCE-ID set, none of them modifying or removing the RRULE, and with the "remaining" having a THIS-AND-FUTURE range.
I should probably do more research on how things like this have been solved in other clients and servers ... but anyway, as the RFC doesn't say explicitly that the RRULE should be removed when RECURRENCE-ID is set, I would claim that this is a Radicale issue as for now :-)
I found this quote on https://devguide.calconnect.org/iCalendar-Topics/Recurrences/ ...
An override is stored as a COMPLETE copy of the master with the DTSTART and/or DTEND set to the dates for the instance and will contain a RECURRENCE-ID property to identify which instance it is. It MUST NOT contain any RRULE, RDATE or EXDATE properties.
If that is to believed, the current implementation is correct and this issue should be closed. However, I cannot find this in RFC5545.
Hit this today as well when deleting one event of a regularly occurring series on Android 11. If the implementation in radicale is correct, then the implementation on Android is broken. Or vice versa. Not taking party of any product here, just stating that these two obviously diverge in their implementation.
Does android 11 support CalDAV out of the box? I thought it was needed with the DAVx5 connector? (a bit off-topic for this issue, though)
Sorry, yes. Forgot that, I'm using DAVx5 as you assumed.
This is https://github.com/SimpleMobileTools/Simple-Calendar/issues/1538 See also description of the issue https://github.com/bitfireAT/davx5-ose/discussions/66?sort=top