Skip to content

Conversation

@kesselb
Copy link
Contributor

@kesselb kesselb commented May 22, 2025

Summary

handleIMipCancel assumes that there is only one attendee, but calendarData is the original event and may contain a list of attendees. Instead of forwarding the original event, a new cancel reply is now generated for the recipient.

createCancelEvent

RFC: https://www.rfc-editor.org/rfc/rfc2446#section-3.2.5

The approach is to create a cancellation message from a cancellation message. I therefore assume that requirements, such as incrementing the sequence, were handled by the sending party.

One thing that is unclear to me after reading the RFC is whether we need to include DTSTART and DTEND. I assume that for canceling only a recurrence, it should be enough to include the RECURRENCE-ID, but I would appreciate your feedback on how you interpret the RFC.

Loop over attendees
If possible filter attendees for the current principal for the cancel op

I left a note in the code after discussing the issue with Sebastian to double-check if it's a problem that we do not handle multiple attendees in CalendarImpl.handleIMipMessage as well. Yes, it seems wrong to assume that there is only one attendee, and we should consider adjusting the implementation. However, I tend to ignore that for now because a new cancellation message is created with only one attendee, and thus it's not a problem anymore in this code path. Looking at the code in CalendarImpl.handleIMipMessage, I'm also not sure if we are even able to handle multiple attendees properly because we no longer know who the actual recipient of the message was.

TODO

  • Check "Loop over attendees"
  • Check "If possible filter attendees for the current principal for the cancel op"

Checklist

1. make it possible to process imip cancellation messages with more than one attendee
2. create a specialized version of the original event containing only the relevant data to cancel the actual copy of the event for the given attendee

Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
@kesselb kesselb force-pushed the bug/noid/handle-n-attendees-in-imip-cancel branch from 84b1202 to b86d600 Compare May 22, 2025 16:19
@kesselb kesselb self-assigned this May 22, 2025
@kesselb kesselb added bug 2. developing Work in progress feature: caldav Related to CalDAV internals labels May 22, 2025
@kesselb kesselb changed the title Handle n attendeeds when cancelling an calendar event handle cancellation message with more than one attendee May 22, 2025
@kesselb kesselb added this to the Nextcloud 32 milestone May 22, 2025
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
@kesselb
Copy link
Contributor Author

kesselb commented May 22, 2025

Withdrawing in favor of #52622

@kesselb kesselb closed this May 22, 2025
@skjnldsv skjnldsv modified the milestones: Nextcloud 32, Nextcloud 33 Sep 28, 2025
@susnux susnux deleted the bug/noid/handle-n-attendees-in-imip-cancel branch November 1, 2025 11:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

2. developing Work in progress bug feature: caldav Related to CalDAV internals

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: iMIP cancellation messages are not propagated to the personal calendar

3 participants