Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Recurrent Events: When the organizer changes the status of an occurrence to 'cancelled', the whole event becomes cancelled on the attendee's calendar #6655

Open
lufer22 opened this issue Jan 23, 2025 · 1 comment
Assignees
Labels
1. to develop Accepted and waiting to be taken care of bug

Comments

@lufer22
Copy link

lufer22 commented Jan 23, 2025

Steps to reproduce

  1. On UserA's calendar, create a recurrent event with more than three occurrences (I've simulated this scenario) and invite UserB to it.
  2. Select the first occurrence, change its status to 'cancelled,' and click on 'Update this occurrence.'
  3. Open UserB's calendar and locate the event.

Expected behavior

The occurrence should be updated correctly.

Image

Actual behavior

The whole event on UserB's calendar becomes 'cancelled'.

Organizer:
Image

Attendee:
Image

Calendar app version

5.0.9

CalDAV-clients used

No response

Browser

Chrome 122

Client operating system

Linux mint

Server operating system

Debian

Web server

Apache

Database engine version

MariaDB

PHP engine version

Other

Nextcloud version

30.0.5.1

Updated from an older installed version or fresh install

Updated from an older version

List of activated apps

Enabled:
  - activity: 3.0.0
  - calendar: 5.0.9
  - calendar_resource_management: 0.8.0
  - cloud_federation_api: 1.13.0
  - comments: 1.20.1
  - contacts: 6.1.3
  - contactsinteraction: 1.11.0
  - dashboard: 7.10.0
  - dav: 1.31.1
  - deck: 1.14.3
  - federatedfilesharing: 1.20.0
  - files: 2.2.0
  - files_pdfviewer: 3.0.0
  - files_reminders: 1.3.0
  - files_sharing: 1.22.0
  - files_trashbin: 1.20.1
  - logreader: 3.0.0
  - lookup_server_connector: 1.18.0
  - notifications: 3.0.0
  - oauth2: 1.18.1
  - provisioning_api: 1.20.0
  - settings: 1.13.0
  - sharebymail: 1.20.0
  - snappymail: 2.38.2
  - spreed: 20.1.3
  - 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_external: 3.4.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
Disabled:
  - admin_audit: 1.20.0
  - encryption: 2.18.0
  - federation: 1.20.0 (installed 1.20.0)
  - files_external: 1.22.0
  - files_versions: 1.23.0 (installed 1.23.0)
  - notify_push: 0.7.0
  - profile: 1.0.0
  - testing: 1.20.0
  - twofactor_totp: 12.0.0-dev
  - user_ldap: 1.21.0
  - user_migration: 7.0.1

Nextcloud configuration

{
    "system": {
        "passwordsalt": "***REMOVED SENSITIVE VALUE***",
        "secret": "***REMOVED SENSITIVE VALUE***",
        "instanceid": "***REMOVED SENSITIVE VALUE***",
        "log_type": "file",
        "logfile": "\/var\/log\/groupware\/groupware_s4.log",
        "loglevel": 0,
        "logdateformat": "F d, Y H:i:s",
        "datadirectory": "***REMOVED SENSITIVE VALUE***",
        "default_language": "pt",
        "default_locale": "pt_BR",
        "dbtype": "mysql",
        "overwrite.cli.url": "http:\/\/localhost",
        "dbname": "***REMOVED SENSITIVE VALUE***",
        "dbhost": "***REMOVED SENSITIVE VALUE***",
        "dbport": "",
        "dbtableprefix": "oc_",
        "mysql.utf8mb4": true,
        "dbuser": "***REMOVED SENSITIVE VALUE***",
        "dbpassword": "***REMOVED SENSITIVE VALUE***",
        "installed": true,
        "allow_local_remote_servers": true,
        "lost_password_link": "disabled",
        "simpleSignUpLink.shown": false,
        "updater.release.channel": "git",
        "upgrade.disable-web": true,
        "updatechecker": false,
        "has_internet_connection": false,
        "trashbin_retention_obligation": "auto,10",
        "knowledgebaseenabled": false,
        "profile.enabled": false,
        "allow_user_to_change_display_name": false,
        "auth.bruteforce.protection.enabled": false,
        "activity_expire_days": 30,
        "app.mail.verify-tls-peer": false,
        "auth.webauthn.enabled": false,
        "overwriteprotocol": "https",
        "appstoreenabled": false,
        "user_backends": [
            {
                "class": "\\OCA\\UserExternal\\IMAP",
                "arguments": [
                    "127.0.0.1",
                    143,
                    null,
                    null,
                    false,
                    false
                ]
            }
        ],
        "theme": "",
        "trusted_domains": [
            "localhost",
            "devlucas.internetcontrolada.com"
        ],
        "mail_smtpmode": "smtp",
        "mail_from_address": "***REMOVED SENSITIVE VALUE***",
        "mail_smtphost": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpport": "587",
        "mail_smtpauth": true,
        "mail_smtpauthtype": "LOGIN",
        "mail_smtpname": "***REMOVED SENSITIVE VALUE***",
        "mail_smtppassword": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpstreamoptions": {
            "ssl": {
                "allow_self_signed": true,
                "verify_peer": false,
                "verify_peer_name": false
            }
        },
        "version": "30.0.5.1",
        "maintenance": false,
        "filelocking.debug": true
    }
}

Web server error log


Log file


Browser log


Additional info

PHP: 8.3

I made a few changes to improve the event status on the frontend; that's why it has the name crossed out and opaque.

I reproduced this problem and found out that the vevent of the recurrent event has its status updated to 'Cancelled.' However, this is different from the organizer's perspective, where the vevent remains with the 'Confirmed' status, and DAV creates another vevent with the 'Cancelled' status.

From oc_calendarobjects table:
Attendee's ICS:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Sabre//Sabre VObject 4.5.4//EN
CALSCALE:GREGORIAN
BEGIN:VTIMEZONE
TZID:America/Sao_Paulo
BEGIN:STANDARD
TZOFFSETFROM:-0300
TZOFFSETTO:-0300
TZNAME:-03
DTSTART:19700101T000000
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
CREATED:20250123T165818Z
LAST-MODIFIED:20250123T165839Z
UID:d58cb252-458c-4707-80aa-e2ad6d956df0
DTSTART;TZID=America/Sao_Paulo:20250126T203000
DTEND;TZID=America/Sao_Paulo:20250126T210000
SUMMARY:JJJJJJJJJJ
ATTENDEE;CN=Hudson Hornet (DEV);CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION;ROL
 E=REQ-PARTICIPANT;RSVP=TRUE;LANGUAGE=pt_BR:mailto:teste2@internetcontrolad
 a.com
ORGANIZER;CN=Lucas Silva (DEV):mailto:lucas@internetcontrolada.com
RRULE:FREQ=DAILY;COUNT=4
DTSTAMP:20250123T165839Z
STATUS:CANCELLED
SEQUENCE:2
BEGIN:VALARM
TRIGGER;RELATED=START:-PT30M
ACTION:DISPLAY
END:VALARM
END:VEVENT
END:VCALENDAR

Organizer's ICS:

BEGIN:VCALENDAR
VERSION:2.0
CALSCALE:GREGORIAN
PRODID:-//IDN nextcloud.com//Calendar app 5.0.9//EN
BEGIN:VTIMEZONE
TZID:America/Sao_Paulo
BEGIN:STANDARD
TZOFFSETFROM:-0300
TZOFFSETTO:-0300
TZNAME:-03
DTSTART:19700101T000000
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
CREATED:20250123T165818Z
DTSTAMP:20250123T165839Z
LAST-MODIFIED:20250123T165839Z
SEQUENCE:2
UID:d58cb252-458c-4707-80aa-e2ad6d956df0
DTSTART;TZID=America/Sao_Paulo:20250126T203000
DTEND;TZID=America/Sao_Paulo:20250126T210000
STATUS:CONFIRMED
SUMMARY:JJJJJJJJJJ
ATTENDEE;CN=Hudson Hornet (DEV);CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION;ROL
 E=REQ-PARTICIPANT;RSVP=TRUE;LANGUAGE=pt_BR;SCHEDULE-STATUS=1.0:mailto:test
 e2@internetcontrolada.com
ORGANIZER;CN=Lucas Silva (DEV):mailto:lucas@internetcontrolada.com
RRULE:FREQ=DAILY;COUNT=4
BEGIN:VALARM
ACTION:DISPLAY
TRIGGER;RELATED=START:-PT30M
SUMMARY:JJJJJJJJJJ
DESCRIPTION:Este é um lembrete de evento.
ATTENDEE:mailto:teste2@internetcontrolada.com
END:VALARM
END:VEVENT
BEGIN:VEVENT
CREATED:20250123T165912Z
DTSTAMP:20250123T165912Z
LAST-MODIFIED:20250123T165912Z
SEQUENCE:1
UID:d58cb252-458c-4707-80aa-e2ad6d956df0
DTSTART;TZID=America/Sao_Paulo:20250126T203000
DTEND;TZID=America/Sao_Paulo:20250126T210000
STATUS:CANCELLED
SUMMARY:JJJJJJJJJJ
ATTENDEE;CN=Hudson Hornet (DEV);CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION;ROL
 E=REQ-PARTICIPANT;RSVP=TRUE;LANGUAGE=pt_BR;SCHEDULE-STATUS=1.1:mailto:test
 e2@internetcontrolada.com
ORGANIZER;CN=Lucas Silva (DEV):mailto:lucas@internetcontrolada.com
RECURRENCE-ID;TZID=America/Sao_Paulo:20250126T203000
BEGIN:VALARM
ACTION:DISPLAY
TRIGGER;RELATED=START:-PT30M
DESCRIPTION:Este é um lembrete de evento.
SUMMARY:JJJJJJJJJJ
ATTENDEE:mailto:teste2@internetcontrolada.com
END:VALARM
END:VEVENT
END:VCALENDAR
@lufer22 lufer22 added 0. to triage Pending approval or rejection bug labels Jan 23, 2025
@SebastianKrupinski SebastianKrupinski self-assigned this Jan 23, 2025
@SebastianKrupinski
Copy link
Contributor

Thank you for your report. I will make sure this gets addressed sooner than later.

@GretaD GretaD added 1. to develop Accepted and waiting to be taken care of and removed 0. to triage Pending approval or rejection labels Feb 4, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
1. to develop Accepted and waiting to be taken care of bug
Projects
Status: No status
Development

No branches or pull requests

3 participants