server icon indicating copy to clipboard operation
server copied to clipboard

[Bug]: Nextcloud sends notifications for deleted recurring event

Open madsmh opened this issue 7 months ago • 1 comments

⚠️ This issue respects the following points: ⚠️

Bug description

I have deleted a recurring event in my Nextcloud calendar, but I am still receiving notifications it by mail and app.

Steps to reproduce

  1. Delete recurring event

Expected behavior

Notifications should stop

Nextcloud Server version

31

Operating system

RHEL/CentOS

PHP engine version

PHP 8.3

Web server

Apache (supported)

Database engine version

MariaDB

Is this bug present after an update or on a fresh install?

Updated from a MINOR version (ex. 32.0.1 to 32.0.2)

Are you using the Nextcloud Server Encryption module?

Encryption is Disabled

What user-backends are you using?

  • [x] Default user-backend (database)
  • [ ] LDAP/ Active Directory
  • [ ] SSO - SAML
  • [ ] Other

Configuration report

{
    "system": {
        "passwordsalt": "***REMOVED SENSITIVE VALUE***",
        "secret": "***REMOVED SENSITIVE VALUE***",
        "trusted_domains": [
            "localhost",
            "cloud.eccentric.dk"
        ],
        "datadirectory": "***REMOVED SENSITIVE VALUE***",
        "dbtype": "mysql",
        "version": "31.0.6.2",
        "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,
        "instanceid": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpmode": "sendmail",
        "mail_sendmailmode": "pipe",
        "mail_from_address": "***REMOVED SENSITIVE VALUE***",
        "mail_domain": "***REMOVED SENSITIVE VALUE***",
        "maintenance": false,
        "maintenance_window_start": 1,
        "default_phone_region": "DK",
        "memcache.local": "\\OC\\Memcache\\APCu",
        "memcache.locking": "\\OC\\Memcache\\Redis",
        "redis": {
            "host": "***REMOVED SENSITIVE VALUE***",
            "port": 6379,
            "timeout": 0,
            "password": "***REMOVED SENSITIVE VALUE***"
        },
        "loglevel": 0,
        "app_install_overwrite": [],
        "twofactor_enforced": "true",
        "twofactor_enforced_groups": [],
        "twofactor_enforced_excluded_groups": []
    }
}

List of activated Apps

Enabled:
  - activity: 4.0.0
  - app_api: 5.0.2
  - bruteforcesettings: 4.0.0
  - calendar: 5.3.2
  - circles: 31.0.0
  - cloud_federation_api: 1.14.0
  - comments: 1.21.0
  - contacts: 7.1.3
  - contactsinteraction: 1.12.0
  - dashboard: 7.11.0
  - dav: 1.33.0
  - deck: 1.15.1
  - federatedfilesharing: 1.21.0
  - federation: 1.21.0
  - files: 2.3.1
  - files_downloadlimit: 4.0.0
  - files_pdfviewer: 4.0.0
  - files_reminders: 1.4.0
  - files_sharing: 1.23.1
  - files_trashbin: 1.21.0
  - files_versions: 1.24.0
  - firstrunwizard: 4.0.0
  - logreader: 4.0.0
  - lookup_server_connector: 1.19.0
  - mail: 5.1.3
  - nextcloud_announcements: 3.0.0
  - notifications: 4.0.0
  - oauth2: 1.19.1
  - password_policy: 3.0.0
  - photos: 4.0.0-dev.1
  - privacy: 3.0.0
  - profile: 1.0.0
  - provisioning_api: 1.21.0
  - recommendations: 4.0.0
  - related_resources: 2.0.0
  - serverinfo: 3.0.0
  - settings: 1.14.0
  - sharebymail: 1.21.0
  - support: 3.0.0
  - survey_client: 3.0.0
  - suspicious_login: 9.0.1
  - systemtags: 1.21.1
  - tasks: 0.16.1
  - text: 5.0.0
  - theming: 2.6.1
  - twofactor_backupcodes: 1.20.0
  - twofactor_totp: 13.0.0-dev.0
  - updatenotification: 1.21.0
  - user_status: 1.11.0
  - viewer: 4.0.0
  - weather_status: 1.11.0
  - webhook_listeners: 1.2.0
  - workflowengine: 2.13.0
Disabled:
  - admin_audit: 1.21.0
  - encryption: 2.19.0 (installed 2.19.0)
  - files_external: 1.23.0
  - twofactor_nextcloud_notification: 5.0.0
  - user_ldap: 1.22.0

Nextcloud Signing status


Nextcloud Logs


Additional info

No response

madsmh avatar Jun 14 '25 20:06 madsmh

cc @SebastianKrupinski @st3iny

kesselb avatar Jun 15 '25 13:06 kesselb

I've been testing webhooks for CalDAV events and can confirm that CalendarObjectDeletedEvent webhooks do not fire when deleting calendar events via CalDAV DELETE requests. I'm not sure if this warrants a new issue so I'm posting here.

Testing details

  • Nextcloud 31 (docker: nextcloud:31-apache)
  • webhook_listeners app (bundled)
  • Registered webhook for CalendarObjectCreatedEvent, CalendarObjectUpdatedEvent, CalendarObjectDeletedEvent

Results

✅ CalendarObjectCreatedEvent fires correctly ✅ CalendarObjectUpdatedEvent fires correctly
❌ CalendarObjectDeletedEvent never fires

Test procedure

# Created event - webhook fired
curl -X PUT http://nextcloud:password@localhost:8080/remote.php/dav/calendars/admin/personal/test-event.ics \
  -H "Content-Type: text/calendar" \
  -d 'BEGIN:VCALENDAR...'

# Updated event - webhook fired
curl -X PUT http://nextcloud:password@localhost:8080/remote.php/dav/calendars/admin/personal/test-event.ics \
  -H "Content-Type: text/calendar" \
  -d 'BEGIN:VCALENDAR...'

# Deleted event - NO webhook fired
curl -X DELETE http://nextcloud:password@localhost:8080/remote.php/dav/calendars/admin/personal/test-event.ics \
  -u admin:password

The DELETE request returns 204 No Content (success), but no CalendarObjectDeletedEvent webhook is triggered.

This makes it impossible to track calendar deletions via webhooks for real-time synchronization use cases.

cbcoutinho avatar Nov 11 '25 11:11 cbcoutinho

Hi @cbcoutinho

Your post is not related to the original issue, and should have been a new issue.

As per your post, the CalendarObjectDeletedEvent is fired on the second delete. The first delete moves the event to trash, the second delete actually deletes the event.

If you would like to see the flow, open the UI with dev tools open and watch the communication in the network tab.

SebastianKrupinski avatar Nov 11 '25 16:11 SebastianKrupinski

Hi @SebastianKrupinski, my apologies for resurfacing this old ticket and the misunderstanding of how the Trash bin works regarding webhook delivery.

Thanks for the tip about using dev tools 👍

cbcoutinho avatar Nov 11 '25 16:11 cbcoutinho