Feat: Support recurrence exceptions#281
Conversation
39f13ec to
a5f8e71
Compare
|
Thanks for the pr. I tried it out on one of my calendars and it seems to work great 🎉. You can run |
lukasdotcom
left a comment
There was a problem hiding this comment.
Looks good except some small nits.
Signed-off-by: Marcel Robitaille <mail@marcelrobitaille.me>
a5f8e71 to
cb5f267
Compare
Signed-off-by: Marcel Robitaille <mail@marcelrobitaille.me>
$localEventUpdatedTimestamp = $existingEvent['lastmodified'] ?? 0;
if ($remoteEventUpdatedTimestamp <= $localEventUpdatedTimestamp) {
continue;
}Can we somehow store the version of the app the event was created with and update it if the app was upgraded? Otherwise this fix will not apply to existing events. |
Signed-off-by: Marcel Robitaille <mail@marcelrobitaille.me>
This comment was marked as outdated.
This comment was marked as outdated.
|
Hi @lukasdotcom Thanks for sharing. I'll look into that bug. Good idea to test it. Could you please add nextcloud@marcelrobitaille.me instead? |
There should be an invite email to the company Nextcloud instance that will give you the steps to join. I used the new email you gave (nextcloud@marcelrobitaille.me). |
I got it. Thanks. |
|
Hi @lukasdotcom
How did you provoke this? If I delete a single event, it shows as cancelled in the calendar.
I expect it to work like a normal exception but with |
Sorry for the mistake. It turns out that calendar was just broken in general. It shows the double events in google calendar too 😂 |
I hope dealing with that is out of scope for this addon 😂 |
Yeah that would be out of scope. |
Signed-off-by: Marcel Robitaille <mail@marcelrobitaille.me>
lukasdotcom
left a comment
There was a problem hiding this comment.
Thanks for the pr this looks good to merge 🚀. Just a small typo I noticed then it can be merged.
| foreach ($exceptions as $candiateException) { | ||
| if (($candiateException['recurringEventId'] == $e['id']) && ($candiateException['id'] != $e['id'])) { | ||
| $eventData .= $this->generateEventData($candiateException, $exceptions, $ncCalId, $eventColors); |
There was a problem hiding this comment.
Candidate is misspelled.
| foreach ($exceptions as $candiateException) { | |
| if (($candiateException['recurringEventId'] == $e['id']) && ($candiateException['id'] != $e['id'])) { | |
| $eventData .= $this->generateEventData($candiateException, $exceptions, $ncCalId, $eventColors); | |
| foreach ($exceptions as $candidateException) { | |
| if (($candidateException['recurringEventId'] == $e['id']) && ($candidateException['id'] != $e['id'])) { | |
| $eventData .= $this->generateEventData($candidateException, $exceptions, $ncCalId, $eventColors); |
|
Thank you for the pr. I've now merged it 🎉 |
|
Hello there, We hope that the review process is going smooth and is helpful for you. We want to ensure your pull request is reviewed to your satisfaction. If you have a moment, our community management team would very much appreciate your feedback on your experience with this PR review process. Your feedback is valuable to us as we continuously strive to improve our community developer experience. Please take a moment to complete our short survey by clicking on the following link: https://cloud.nextcloud.com/apps/forms/s/i9Ago4EQRZ7TWxjfmeEpPkf6 Thank you for contributing to Nextcloud and we hope to hear from you soon! (If you believe you should not receive this message, you can add yourself to the blocklist.) |


See MarcelRobitaille#38
The app currently does not properly support recurring events. If you create a daily event and then for a single instance add an exception like changing the time, the event will show up twice that day, instead of once with the modified time.
Some notes about recurring events:
BEGIN:VCALENDAR(same database entry)RECURRENCE-IDset to the original start time of the instance they are excepting (not the start time of the parent or the ID of the parent).