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

Birthdays continue to be shown in calendar after death #24742

Open
pwaring opened this issue Dec 17, 2020 · 11 comments · May be fixed by #36327
Open

Birthdays continue to be shown in calendar after death #24742

pwaring opened this issue Dec 17, 2020 · 11 comments · May be fixed by #36327
Labels
1. to develop Accepted and waiting to be taken care of enhancement feature: caldav Related to CalDAV internals feature: dav

Comments

@pwaring
Copy link

pwaring commented Dec 17, 2020

Describe the bug

One of my contacts recently died, so I went and set the date of death field in their entry. However, there are still ongoing calendar entries for this contact's birthday after their date of death, and I get notifications for them.

I'm not sure if this is a contacts bug or a calendar bug, but I think it is an issue with contacts because the calendar is, as far as I'm aware, simply displaying entries populated by the contacts app.

To Reproduce

Steps to reproduce the behavior:

  1. Add a contact.
  2. Set date of birth.
  3. Set date of death.
  4. View calendar and jump to what would be the next birthday after the date of death - entry is still there.

Expected behavior

No more birthday entries in the calendar after the date of death.

Actual behavior

Birthday entries continue indefinitely.

Server configuration

Operating system: Linux 5.4.0-58-generic nextcloud/contacts#64-Ubuntu SMP Wed Dec 9 08:16:25 UTC 2020 x86_64

Web server: nginx/1.18.0 (fpm-fcgi)

Database: mysql 10.3.25 (reported as mysql in Nextcloud but it is actually MariaDB).

PHP version: 7.4.3
Modules loaded: Core, date, libxml, openssl, pcre, zlib, filter, hash, Reflection, SPL, session, standard, sodium, cgi-fcgi, mysqlnd, PDO, xml, bcmath, bz2, calendar, ctype, curl, dom, mbstring, FFI, fileinfo, ftp, gd, gettext, gmp, iconv, imagick, intl, json, exif, mysqli, pdo_mysql, Phar, posix, readline, shmop, SimpleXML, sockets, sysvmsg, sysvsem, sysvshm, tokenizer, xmlreader, xmlwriter, xsl, zip, Zend OPcache

Nextcloud version: 20.0.4 - 20.0.4.0

Contacts version: 3.4.2

Updated from an older Nextcloud or fresh install: Updated

Signing status:

No errors have been found.

List of activated apps:

Enabled:
  - accessibility: 1.6.0
  - activity: 2.13.4
  - admin_audit: 1.10.0
  - calendar: 2.1.2
  - cloud_federation_api: 1.3.0
  - comments: 1.10.0
  - contacts: 3.4.2
  - contactsinteraction: 1.1.0
  - dashboard: 7.0.0
  - dav: 1.16.2
  - federatedfilesharing: 1.10.2
  - federation: 1.10.1
  - files: 1.15.0
  - files_pdfviewer: 2.0.1
  - files_rightclick: 0.17.0
  - files_sharing: 1.12.1
  - files_trashbin: 1.10.1
  - files_versions: 1.13.0
  - files_videoplayer: 1.9.0
  - firstrunwizard: 2.9.0
  - issuetemplate: 0.7.0
  - logreader: 2.5.0
  - lookup_server_connector: 1.8.0
  - nextcloud_announcements: 1.9.0
  - notifications: 2.8.0
  - oauth2: 1.8.0
  - password_policy: 1.10.1
  - photos: 1.2.1
  - privacy: 1.4.0
  - provisioning_api: 1.10.0
  - recommendations: 0.8.0
  - serverinfo: 1.10.0
  - settings: 1.2.0
  - sharebymail: 1.10.0
  - support: 1.3.0
  - survey_client: 1.8.0
  - systemtags: 1.10.0
  - text: 3.1.0
  - theming: 1.11.0
  - twofactor_backupcodes: 1.9.0
  - updatenotification: 1.10.0
  - user_status: 1.0.1
  - viewer: 1.4.0
  - weather_status: 1.0.0
  - workflowengine: 2.2.0
Disabled:
  - encryption
  - files_external
  - user_ldap

Nextcloud configuration:

{
    "system": {
        "instanceid": "***REMOVED SENSITIVE VALUE***",
        "passwordsalt": "***REMOVED SENSITIVE VALUE***",
        "secret": "***REMOVED SENSITIVE VALUE***",
        "trusted_domains": [
            "***REMOVED SENSITIVE VALUE***"
        ],
        "datadirectory": "***REMOVED SENSITIVE VALUE***",
        "dbtype": "mysql",
        "version": "20.0.4.0",
        "overwrite.cli.url": "***REMOVED SENSITIVE VALUE***",
        "dbname": "***REMOVED SENSITIVE VALUE***",
        "dbhost": "***REMOVED SENSITIVE VALUE***",
        "dbport": "",
        "dbtableprefix": "oc_",
        "dbuser": "***REMOVED SENSITIVE VALUE***",
        "dbpassword": "***REMOVED SENSITIVE VALUE***",
        "installed": true,
        "maintenance": false,
        "theme": "",
        "loglevel": 2,
        "trashbin_retention_obligation": "auto, 30",
        "mysql.utf8mb4": true,
        "updater.secret": "***REMOVED SENSITIVE VALUE***"
    },
    "apps": {
        "accessibility": {
            "enabled": "yes",
            "installed_version": "1.6.0",
            "types": ""
        },
        "activity": {
            "enabled": "yes",
            "installed_version": "2.13.4",
            "types": "filesystem"
        },
        "admin_audit": {
            "enabled": "yes",
            "installed_version": "1.10.0",
            "types": "logging"
        },
        "backgroundjob": {
            "lastjob": "976"
        },
        "calendar": {
            "enabled": "yes",
            "installed_version": "2.1.2",
            "types": ""
        },
        "cloud_federation_api": {
            "enabled": "yes",
            "installed_version": "1.3.0",
            "types": "filesystem"
        },
        "comments": {
            "enabled": "yes",
            "installed_version": "1.10.0",
            "types": "logging"
        },
        "contacts": {
            "enabled": "yes",
            "installed_version": "3.4.2",
            "types": "dav"
        },
        "contactsinteraction": {
            "enabled": "yes",
            "installed_version": "1.1.0",
            "types": "dav"
        },
        "core": {
            "backgroundjobs_mode": "cron",
            "enterpriseLogoChecked": "yes",
            "installedat": "1538569858.8053",
            "lastcron": "1608197103",
            "lastupdateResult": "{\"version\":\"20.0.4.0\",\"versionstring\":\"Nextcloud 20.0.4\",\"url\":\"https:\\\/\\\/download.nextcloud.com\\\/server\\\/releases\\\/nextcloud-20.0.4.zip\",\"web\":\"https:\\\/\\\/docs.nextcloud.com\\\/server\\\/20\\\/admin_manual\\\/maintenance\\\/upgrade.html\",\"changes\":\"https:\\\/\\\/updates.nextcloud.com\\\/changelog_server\\\/?version=20.0.4\",\"autoupdater\":\"1\",\"eol\":\"0\"}",
            "lastupdatedat": "0",
            "moveavatarsdone": "yes",
            "oc.integritycheck.checker": "[]",
            "previewsCleanedUp": "1",
            "public_files": "files_sharing\/public.php",
            "public_webdav": "dav\/appinfo\/v1\/publicwebdav.php",
            "scss.variables": "db81cddf52fdb3c8ca1e4c859e214124",
            "shareapi_allow_group_sharing": "no",
            "shareapi_allow_public_upload": "no",
            "shareapi_allow_share_dialog_user_enumeration": "no",
            "shareapi_default_permission_cancreate": "no",
            "shareapi_default_permission_candelete": "no",
            "shareapi_default_permission_canshare": "no",
            "shareapi_default_permission_canupdate": "no",
            "shareapi_default_permissions": "1",
            "shareapi_enabled": "no",
            "theming.variables": "b92d206521717ac032f8aa58d3c7ff2f",
            "updater.secret.created": "1608143427",
            "vendor": "nextcloud"
        },
        "dashboard": {
            "enabled": "yes",
            "installed_version": "7.0.0",
            "types": ""
        },
        "dav": {
            "buildCalendarReminderIndex": "yes",
            "buildCalendarSearchIndex": "yes",
            "chunks_migrated": "1",
            "enabled": "yes",
            "installed_version": "1.16.2",
            "regeneratedBirthdayCalendarsForYearFix": "yes",
            "sendEventRemindersPush": "yes",
            "sendInvitations": "no",
            "types": "filesystem"
        },
        "federatedfilesharing": {
            "enabled": "yes",
            "installed_version": "1.10.2",
            "types": ""
        },
        "federation": {
            "enabled": "yes",
            "installed_version": "1.10.1",
            "types": "authentication"
        },
        "files": {
            "cronjob_scan_files": "500",
            "enabled": "yes",
            "installed_version": "1.15.0",
            "types": "filesystem"
        },
        "files_pdfviewer": {
            "enabled": "yes",
            "installed_version": "2.0.1",
            "types": ""
        },
        "files_rightclick": {
            "enabled": "yes",
            "installed_version": "0.17.0",
            "types": ""
        },
        "files_sharing": {
            "enabled": "yes",
            "incoming_server2server_share_enabled": "no",
            "installed_version": "1.12.1",
            "lookupServerUploadEnabled": "no",
            "outgoing_server2server_share_enabled": "no",
            "types": "filesystem"
        },
        "files_texteditor": {
            "enabled": "no",
            "installed_version": "2.8.0",
            "types": ""
        },
        "files_trashbin": {
            "enabled": "yes",
            "installed_version": "1.10.1",
            "types": "filesystem,dav"
        },
        "files_versions": {
            "enabled": "yes",
            "installed_version": "1.13.0",
            "types": "filesystem,dav"
        },
        "files_videoplayer": {
            "enabled": "yes",
            "installed_version": "1.9.0",
            "types": ""
        },
        "firstrunwizard": {
            "enabled": "yes",
            "installed_version": "2.9.0",
            "types": "logging"
        },
        "gallery": {
            "enabled": "no",
            "installed_version": "18.4.0",
            "types": ""
        },
        "issuetemplate": {
            "enabled": "yes",
            "installed_version": "0.7.0",
            "types": ""
        },
        "logreader": {
            "enabled": "yes",
            "installed_version": "2.5.0",
            "relativedates": "1",
            "types": ""
        },
        "lookup_server_connector": {
            "enabled": "yes",
            "installed_version": "1.8.0",
            "types": "authentication"
        },
        "nextcloud_announcements": {
            "enabled": "yes",
            "installed_version": "1.9.0",
            "pub_date": "Thu, 24 Oct 2019 00:00:00 +0200",
            "types": "logging"
        },
        "notifications": {
            "enabled": "yes",
            "installed_version": "2.8.0",
            "types": "logging"
        },
        "oauth2": {
            "enabled": "yes",
            "installed_version": "1.8.0",
            "types": "authentication"
        },
        "password_policy": {
            "enabled": "yes",
            "installed_version": "1.10.1",
            "types": "authentication"
        },
        "photos": {
            "enabled": "yes",
            "installed_version": "1.2.1",
            "types": ""
        },
        "privacy": {
            "enabled": "yes",
            "installed_version": "1.4.0",
            "types": ""
        },
        "provisioning_api": {
            "enabled": "yes",
            "installed_version": "1.10.0",
            "types": "prevent_group_restriction"
        },
        "recommendations": {
            "enabled": "yes",
            "installed_version": "0.8.0",
            "types": ""
        },
        "serverinfo": {
            "enabled": "yes",
            "installed_version": "1.10.0",
            "types": ""
        },
        "settings": {
            "enabled": "yes",
            "installed_version": "1.2.0",
            "types": ""
        },
        "sharebymail": {
            "enabled": "yes",
            "installed_version": "1.10.0",
            "sendpasswordmail": "no",
            "types": "filesystem"
        },
        "support": {
            "SwitchUpdaterServerHasRun": "yes",
            "enabled": "yes",
            "installed_version": "1.3.0",
            "types": "session"
        },
        "survey_client": {
            "enabled": "yes",
            "installed_version": "1.8.0",
            "types": ""
        },
        "systemtags": {
            "enabled": "yes",
            "installed_version": "1.10.0",
            "types": "logging"
        },
        "text": {
            "enabled": "yes",
            "installed_version": "3.1.0",
            "types": "dav"
        },
        "theming": {
            "enabled": "yes",
            "installed_version": "1.11.0",
            "types": "logging"
        },
        "twofactor_backupcodes": {
            "enabled": "yes",
            "installed_version": "1.9.0",
            "types": ""
        },
        "updatenotification": {
            "calendar": "2.0.3",
            "contacts": "3.4.2",
            "core": "20.0.4.0",
            "enabled": "yes",
            "files_rightclick": "0.15.1",
            "installed_version": "1.10.0",
            "types": "",
            "update_check_errors": "0"
        },
        "user_status": {
            "enabled": "yes",
            "installed_version": "1.0.1",
            "types": ""
        },
        "viewer": {
            "enabled": "yes",
            "installed_version": "1.4.0",
            "types": ""
        },
        "weather_status": {
            "enabled": "yes",
            "installed_version": "1.0.0",
            "types": ""
        },
        "workflowengine": {
            "enabled": "yes",
            "installed_version": "2.2.0",
            "types": "filesystem"
        }
    }
}

Client configuration

I don't think the problem is with my client configuration, as the issue is the calendar being populated on the server. I have tried multiple browsers and the same problem occurs in all of them.

Browser: Firefox 84.0

Operating system: Ubuntu 20.04

CardDAV-clients: n/a

@pwaring pwaring changed the title Birthdays continue to be shown in calendar Birthdays continue to be shown in calendar after death Dec 17, 2020
@skjnldsv
Copy link
Member

Hi, sorry for your loss.
That is an very good point, I'll move this issue to the server repository as this is where we generate the events.

@skjnldsv skjnldsv transferred this issue from nextcloud/contacts Dec 17, 2020
@skjnldsv skjnldsv added 1. to develop Accepted and waiting to be taken care of bug feature: dav labels Dec 17, 2020
@mburnicki
Copy link

mburnicki commented Dec 21, 2020

The basic question here is what a user expects. IMO it is totally OK to be reminded in memoriam of some folks.

On the other hand, I have birthday saved for some contacts where I wouldn't need to be reminded, so IMO a cool feature would be to have a way to configure which birthdays should show up in the birthdays calendar at all, and also if those birthdays should show up after a person's death.

@skjnldsv
Copy link
Member

@mburnicki I understand. Such settings can be very complicated. It's easier to have a all-in or all-out config here. So you enable birthday sync or not. But picking specific contacts would be far too complicated.

cc @tcitworld :)

@tcitworld
Copy link
Member

It would be interesting to have a look at how Google/Apple/… handle their birthday calendars for deceased people.

Also see #1505 for generic birthday calendar reminder settings.

@ilippert
Copy link

ilippert commented Jan 6, 2021

The basic question here is what a user expects.

I would underline this and without hesitation claim that crosscultural norms for when and /or how to remember specific dates relating to contacts are highly diverse. Using Google/Apple as examples might not be the best orientation.

@mburnicki
Copy link

Maybe a good workaround could be if each address book had a property to determine if dates of birth should be added to the "contacts birthday" calendar, or not.

With such an approach, contacts that are expected to show up in the birthday list could be moved to one address book, and contacts that are not expected to appear in the birthday calendar even though a date-of-birth field is available could be moved to a different address book, and the routine that creates/updates the birthday calendar can evaluate that property.

If a person has died and you don't want to have a birthday reminder anymore, you could simply move that contact to the other address book, or leave it where it is if you do want the reminders.

Of course, if you sync your address books to Android or e.g. Thunderbird/Cardbook, these apps will still create their own reminders because they don't know the property that has been configured on the server, but at least the generated "birthday calendar" should behave as expected.

@szaimen

This comment was marked as off-topic.

@szaimen szaimen added needs info 0. Needs triage Pending check for reproducibility or if it fits our roadmap and removed 1. to develop Accepted and waiting to be taken care of labels Jan 23, 2023
@tcitworld
Copy link
Member

With #34388 and nextcloud/contacts#3009 you can exclude specific contacts from the birthday calendar.

@pwaring
Copy link
Author

pwaring commented Jan 23, 2023

I've tested on:

  • Nextcloud 25.0.3
  • Calender 4.2.1
  • Contacts 5.0.2

The issue is still present - if I set a Date of Death on a contact their birthday continues to show in the calendar.

@tcitworld tcitworld added enhancement and removed bug 0. Needs triage Pending check for reproducibility or if it fits our roadmap 25-feedback labels Jan 23, 2023
@tcitworld
Copy link
Member

tcitworld commented Jan 23, 2023

I've set the labels as enhancement, since the aim is to find a way which would match everyone's expectations.

Would a global user "Hide birthdays from deceased persons" setting + the exclusion of specific contacts feature I've linked above work and is enough? Is a "disable birthday" setting per address book needed as @mburnicki suggested?

@skjnldsv skjnldsv added the 1. to develop Accepted and waiting to be taken care of label Jan 23, 2023
@mschilli87
Copy link

@tcitworld: My 2 cents: A global setting would be a big improvement and sufficient to resolve this issue AFAIC. But I see why some users might want even more control so @mburnicki suggestion remains valid (but could be tracked in a separate, lower priority, issue, IMHO).

tcitworld added a commit that referenced this issue Jan 24, 2023
Closes #24742

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
@tcitworld tcitworld linked a pull request Jan 24, 2023 that will close this issue
5 tasks
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 enhancement feature: caldav Related to CalDAV internals feature: dav
Projects
None yet
Development

Successfully merging a pull request may close this issue.

7 participants