nextcloud / nextcloud/server

Add "Tentative" button to calendar invitation emails

Open
#60,934 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

0. Needs triage enhancement feature: caldav feature: emails
Dominant language
PHP
Stars
36.9k
Forks
5.2k
Avg merge
2d 3h
Merged PRs (30d)
713

Description

[!TIP]

Help move this idea forward
  • Use the 👍 reaction to show support for this feature.
  • Avoid commenting unless you have relevant information to add; unnecessary comments create noise for subscribers.
  • Subscribe to receive notifications about status changes and new comments.

Feature Request

Currently, calendar invitation emails sent by Nextcloud only include "Accept" and "Decline" buttons. To improve flexibility for attendees, a "Tentative" button should be added, which sets the PARTSTAT to TENTATIVE in the iCalendar object (RFC 5545).

Why?
  • Many users need a "maybe" option before confirming attendance.
  • TENTATIVE is a standard value in the CalDAV/iCalendar specification.
  • Other calendar services (e.g., Google Calendar, Outlook) support this.
Proposed Changes
  1. Add a "Tentative" button to the email template (apps/dav/templates/email/invitation.html).
  2. Generate a tentativeUrl in the email notification logic (apps/dav/lib/Notification/EmailNotification.php).
  3. Add a new route and controller method (InvitationController::tentative()) to handle the tentative response.
  4. Update the attendee's PARTSTAT to TENTATIVE in the iCalendar object.
Technical Details
  • The change affects the DAV app (CalDAV backend) in the Nextcloud server.
  • The PARTSTAT property in the ATTENDEE field of the iCalendar object should be set to TENTATIVE.
  • The email template and notification logic need to be extended.
Related Issues
  • #2760 (Send email invitation to organiser)
  • #340 (Send event description in invitation emails)

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 with apps/dav/templates/email/invitation.html and apps/dav/lib/Notification/EmailNotification.php, then trace the invitation route and InvitationController response methods. Add the tentative action so the email offers the new response and the attendee's iCalendar PARTSTAT becomes TENTATIVE; done means the invitation flow supports that response alongside Accept and Decline.

Written by the indexing model from the issue text.

Assessment

Tech stack
php
Domain
backend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
72/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.