Skip to content

Align with vCard v4.0 spec to avoid data loss (don't allow multiple Birthday and Anniversary entries) #51

Description

@wutr

The vCard v4.0 spec allows only 1 entry for "Birthday" and "Anniversary". Other event dates should be created using a custom event field.

6.2.5. BDAY

Purpose: To specify the birth date of the object the vCard
represents.

Value type: The default is a single date-and-or-time value. It can
also be reset to a single text value.

Cardinality: *1

'Cardinality: *1' means none or one may be present.

For example, adding two birthdays in a test contact:
'25 April 2025' and '24 April 2024'

When directly exported (shared) from the overflow menu in the app yields:

BEGIN:VCARD
VERSION:4.0
PRODID:ez-vcard 0.12.1
X-PRODID://com.goodwy.contacts//8.2.3
FN:Test Contact (Right Contacts)
N:Radicale (Right Contacts);Test;;;
TEL;TYPE=CELL:1234567890
BDAY:20250425
BDAY:20240424
END:VCARD

However, when stored on a vCard v4.0 supporting CardDAV server through DAVx5 it yields:

BEGIN:VCARD
VERSION:4.0
PRODID:+//IDN bitfire.at//DAVx5/4.5.10-ose ez-vcard/0.12.2 (ez-vcard/0.12.2
 )
UID:128afe74-90f8-4133-a82a-b6194ceb0c0f
BDAY:20240424
FN:Test Contact (Right Contacts)
N:Radicale (Right Contacts);Test;;;
REV:20260425T171411Z
TEL;TYPE=cell:1234567890
END:VCARD

Note how only one 'BDAY' field is stored, the other is silently dropped.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions