-
-
Notifications
You must be signed in to change notification settings - Fork 86
Description
Hello,
we maintain an instance with more than 500 domains. So, there are a lot of ics imports (see verdigado/calendarize_external).
During integration of calendarize we noticed
- each ics import must respect the pid, see my PR Restrict ics-import to pid per calendar #773 -
otherwise, ics imports using the same source link "steal" events from each other - the
SEQUENCEkey in ics files is not respected.
This leads to recurring events, which will be created (or old ones overwritten): but without the frequency ...
resulting in missing events.
Only workaround for now is, in the source ics calendar:
deleting the recurring event (which had a calendar exception) and recreating the recurring event from scratch,
which is not always possible (not all users own that calendar they export from).
I debugged it like this:
- have a Google calendar export with recurring events => usually works
- then, someone changes one event of the recurring series. In the ics export, you now have two events with the same
UID
and differentSEQUENCElike 0 and 1. - now, the next ics import runs like this:
- the event with
SEQUENCE:0has theRRULE=> frequency is set for the importid. - the event with
SEQUENCE:1has noRRULE, but same UID => frequency is unset. - we get in Log:
Invalid frequency="{frequency}" in RRULEerrors
- the event with
- sometimes you see other events in the export having e.g.
SEQUENCE:11, but no other event with the sameUID/ importId
IMHO we could fix this by attaching the sequence id to the importid like here:
master...verdigado:calendarize:add-sequenceid-to-importid
(no PR, just asking)
But this creates two other problems:
- existing, recurring events (remember: up to now, we did not yet add sequenceid to importId)
will be reimported using importId+sequenceid - other, (non recurring?) events which have a sequenceid will be reimported, too
That is due to: old imported events will not be deleted on ics import, if deleted in ics source. See #620 too.
So we would have to deal with finding all "old" importId events which must be deleted, if we have a new import with importId+sequenceid. ATM I see at least no slot/eventlistener where I can hook in to do this.
My test calendar link contains both of the above mentioned recurring events.
Any idea?
Thanx anyway for this great extension!
Falko