contacts icon indicating copy to clipboard operation
contacts copied to clipboard

Anniversary not displayed if entered on iOS

Open davidpkj opened this issue 6 months ago • 1 comments

Describe the bug

When entering an anniversary using the nextcloud web interface, it is being saved as:

ANNIVERSARY;VALUE=DATE:19960415

While Apple Contacts seems to save it as:

ANNIVERSARY:19960415

As per RFC (https://datatracker.ietf.org/doc/html/rfc6350#section-6.2.6) both should be fine. However the Apple-style format is not displayed in the contact info or on the birthday calendar. While the former is properly handled.

Steps to reproduce

  1. On an iOS device open contacts, tap edit, add anniversary.
  2. Open the Contact in Nextcloud
  3. Note that the anniversary is not displayed
  4. Download the contact file
  5. Note that the anniversary is there

Expected behavior

Apple-style anniversary entries are respected and displayed on contact info page and birthday calendar.

Actual behavior

Apple-style anniversary entries are being saved, but not displayed.

Contact version

7.0.4

Operating system

NixOS 25.05

PHP engine version

PHP 8.3

Web server

Nginx

Database

SQLite

Additional info

Since I use NixOS here is also my Nextcloud module for reproducibility. server.nextcloud.addr is simply the domain at which Nextcloud is hosted.

{
  config,
  lib,
  options,
  pkgs,
  ...
}:
let
  nextcloudVersion = pkgs.nextcloud31;
in
{
  options.server.nextcloud.addr = lib.mkOption {
    type = lib.types.str;
  };

  config = {
    environment.etc."nextcloud-admin-pass".text = "temp_passwd";

    services = {
      nextcloud = {
        enable = true;

        https = true;
        configureRedis = true;
        package = nextcloudVersion;
        home = "/srv/nextcloud";
        maxUploadSize = "1G";
        hostName = config.server.nextcloud.addr;

        extraAppsEnable = true;
        extraApps = {
          inherit (nextcloudVersion.packages.apps)
            contacts
            calendar
            tasks
            ;
        };

        config = {
          dbtype = "sqlite";
          # adminuser = "davidpkj"; # root
          adminpassFile = "/etc/nextcloud-admin-pass";
        };
      };

      nginx.virtualHosts.${config.server.nextcloud.addr} = {
        forceSSL = true;
        enableACME = true;
      };
    };
  };
}

davidpkj avatar Jun 12 '25 10:06 davidpkj

Thank you for bringing this to our attention, I can reproduce. I just wanted to note that birthday calendar uses BDAY not ANNIVERSARY AFAIK.

hamza221 avatar Jun 18 '25 10:06 hamza221