nextcloud / nextcloud/calendar

Organisator can't access/change main appointment series entry after invited user declined first single entry

Open
#6,470 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

Steps to reproduce
  1. Nextcloud 30.0.1
  2. Kalender 5.0.1
  3. Problem:
    Organisator can't access/change main appointment series entry after invited user declined first single entry.
    In this case only the second and following recurrent entries may be updated by editing an untouched (not declined) entry. If for example the first 4 entries are declined by one or more users/participants, these entries have to be edited each one to be updated and not through changing the main series appointment entry.

Note: It is not relevant if an entry is confirmed/declined by web browser or CalDAV client!
Presumably it is a problem of the web frontend component as the CalDAV client of the inviter still shows the recurrent information!

  1. Steps to reproduce
  • create a weekly recurring appointment within your personal calendar of User 1 (organisator/inviter). Starting at e.g. Friday 1st November 2024, no end date.
  • invite one or more other user/participant of your Nextcloud
  • let user 2 (participant) accept the appointment series first.
  • note: user 1 (organisator) is able to access/edit every single entry as a recurrent appointment starting from the time of the single appointment as it should be.
  • let user 2 (participant) decline the first single entry of Friday 1st November 2024
  • **Bug/Failure: ** from that moment user 1 sees the entry of Friday 1st November 2024 not any more as recurrent but as a single entry with no repetition.

If more single entries are declined from invited users, in the organisators/inviters calendar all those declined entries switch to single entries and it is not possible any more to change the content of the whole series any more. Only not declined entries may edited and changed any more.

This is a main function of calendaring and makes this not usable for bigger groups!

For better understanding there are a bunch of annotated screenshots (German version of Nextcloud) demonstrating the false behaviour.
Failure Screenshot look at last one with annotation "failure"!

Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image

Expected behavior

For user 1 (inviter) all entries must remain with the recurrence information, so that if you change one of the entries you are able to update all upcoming entries with that entered information.
Editing/responding of a participant to an invitation must therefore not result in the inviter's entries being changed, apart from the status information of the invited (acceptance, rejection, maybe).

Actual behaviour

If an invited participant declines a single entry of a series the corresponding entry of the organisator/inviter changes to a single entry without the recurrence information, what makes it not possible to update the whole series any more.

Calendar app version

5.0.1

CalDAV-clients used

MacOS (15.1), iOS (18.1),

Browser

Safari 18.1, Chrome (Version 130.0.6723.92), Firefox (132.0.1)

Client operating system

MacOS 15.1

Server operating system

Managed Webhosting - Debian GNU/Linux 11 (bullseye)

Web server

None

Database engine version

MariaDB

PHP engine version

PHP 8.2

Nextcloud version

30.0.1

Updated from an older installed version or fresh install

Updated from an older version

List of activated apps

Enabled:

  • activity: 3.0.0
  • announcementcenter: 7.0.1
  • app_api: 4.0.0
  • bruteforcesettings: 3.0.0
  • calendar: 5.0.1
  • circles: 30.0.0-dev
  • cloud_federation_api: 1.13.0
  • contacts: 6.1.0
  • contactsinteraction: 1.11.0
  • dashboard: 7.10.0
  • dav: 1.31.1
  • external: 5.5.2
  • federatedfilesharing: 1.20.0
  • federation: 1.20.0
  • files: 2.2.0
  • files_accesscontrol: 1.20.1
  • files_downloadlimit: 3.0.0
  • files_pdfviewer: 3.0.0
  • files_reminders: 1.3.0
  • files_sharing: 1.22.0
  • files_versions: 1.23.0
  • forms: 4.3.2
  • groupfolders: 18.0.3
  • impersonate: 1.17.0
  • logreader: 3.0.0
  • lookup_server_connector: 1.18.0
  • nextcloud_announcements: 2.0.0
  • notes: 4.11.0
  • notifications: 3.0.0
  • oauth2: 1.18.1
  • occweb: 0.2.0
  • password_policy: 2.0.0
  • photos: 3.0.2
  • polls: 7.2.4
  • privacy: 2.0.0
  • provisioning_api: 1.20.0
  • recommendations: 3.0.0
  • related_resources: 1.5.0
  • serverinfo: 2.0.0
  • settings: 1.13.0
  • spreed: 20.0.1
  • support: 2.0.0
  • systemtags: 1.20.0
  • tasks: 0.16.1
  • theming: 2.5.0
  • theming_customcss: 1.17.0
  • twofactor_backupcodes: 1.19.0
  • updatenotification: 1.20.0
  • user_status: 1.10.0
  • viewer: 3.0.0
  • weather_status: 1.10.0
  • webhook_listeners: 1.1.0-dev
  • workflowengine: 2.12.0
Nextcloud configuration

{
"system": {
"instanceid": "REMOVED SENSITIVE VALUE",
"passwordsalt": "REMOVED SENSITIVE VALUE",
"secret": "REMOVED SENSITIVE VALUE",
"trusted_domains": [
"REMOVED SENSITIVE VALUE",
"REMOVED SENSITIVE VALUE"
],
"datadirectory": "REMOVED SENSITIVE VALUE",
"tempdirectory": "REMOVED SENSITIVE VALUE/ncdata/tmp",
"skeletondirectory": "",
"overwrite.cli.url": "REMOVED SENSITIVE VALUE",
"dbtype": "mysql",
"version": "30.0.1.2",
"dbname": "REMOVED SENSITIVE VALUE",
"dbhost": "REMOVED SENSITIVE VALUE",
"dbport": "",
"dbtableprefix": "oc_",
"mysql.utf8mb4": true,
"dbuser": "REMOVED SENSITIVE VALUE",
"dbpassword": "REMOVED SENSITIVE VALUE",
"installed": true,
"maintenance": false,
"maintenance_window_start": "1",
"auth.bruteforce.protection.enabled": true,
"theme": "",
"loglevel": 2,
"mail_from_address": "REMOVED SENSITIVE VALUE",
"mail_smtpmode": "smtp",
"mail_domain": "REMOVED SENSITIVE VALUE",
"mail_smtphost": "REMOVED SENSITIVE VALUE",
"mail_smtpport": "465",
"mail_smtpauth": 1,
"mail_smtpauthtype": "LOGIN",
"mail_smtpname": "REMOVED SENSITIVE VALUE",
"mail_smtppassword": "REMOVED SENSITIVE VALUE",
"app_install_overwrite": [
"richdocuments",
"impersonate"
],
"data-fingerprint": "REMOVED SENSITIVE VALUE",
"default_phone_region": "DE",
"mail_sendmailmode": "smtp",
"defaultapp": "dashboard,files,calendar"
}
}

Web server error log

No response

Log file

No response

Browser log

No response

Additional info

No response

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 reproducing the recurring-invitation scenario in the Calendar web frontend: accept the series, decline the first occurrence, and inspect how the inviter's entries are represented. Trace the recurrence handling from that entry point and add or run a regression test for a declined occurrence. Done means the inviter can still edit the whole series while retaining the participant's response status.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
frontend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.