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.
The vCard v4.0 spec allows only 1 entry for "Birthday" and "Anniversary". Other event dates should be created using a custom event field.
'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:
However, when stored on a vCard v4.0 supporting CardDAV server through DAVx5 it yields:
Note how only one 'BDAY' field is stored, the other is silently dropped.