nextcloud / nextcloud/calendar

Implement SCHEDULE-FORCE-SEND support (RFC 6638 §3.2.7)

Open
#8,490 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

0. to triage enhancement
Dominant language
JavaScript
Stars
1.2k
Forks
332
Avg merge
16h 13m
Merged PRs (30d)
137

Description

Is your feature request related to a problem? Please describe.

There is currently no way to resend a calendar invitation to an attendee who has not responded. The only workaround is to remove the attendee and re-add them, which sends an unwanted cancellation email first. This is tracked as a user-facing issue in nextcloud/calendar#4019 (https://github.com/nextcloud/calendar/issues/4019).

The root blocker is missing support for SCHEDULE-FORCE-SEND in calendar-js.

Describe the solution you'd like

Implement support for the SCHEDULE-FORCE-SEND iCalendar property parameter as defined in RFC 6638 §3.2.7 (https://datatracker.ietf.org/doc/html/rfc6638#section-3.2.7). This parameter instructs the CalDAV server to send a scheduling message to an attendee or organizer even in cases where it would not normally do so, enabling a "resend invitation" flow without modifying the event itself.

RFC 6638 is a finalized Proposed Standard published in June 2012, so the specification is stable and unambiguous.

Describe alternatives you've considered

The remove-and-re-add workaround (referenced in nextcloud/calendar#4019) is the only current option. It is disruptive as it sends a spurious cancellation email to the attendee before the new invitation arrives.

Additional context

This is a prerequisite for implementing the "resend invitation" button requested in nextcloud/calendar#4019 (https://github.com/nextcloud/calendar/issues/4019). Once SCHEDULE-FORCE-SEND is available in calendar-js, the calendar app can expose a per-attendee resend action in the UI.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating calendar-js's handling of iCalendar property parameters, then read RFC 6638 §3.2.7 alongside the existing scheduling implementation. Done means calendar-js supports SCHEDULE-FORCE-SEND so a CalDAV server can be instructed to resend a scheduling message without modifying the event.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
api
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.