How to set contacts full names / detailed names globally?

Hi all,

I’m using the contacts app on my nextcloud instance as a “single source of truth” for all my family’s contacts, mainly private. in this context, nextcloud is primarily the “data store” in the background, and contacts are synced via cardDAV to all relevant devices. And there are many, nowadays. Android, iOS, LINUX. Many different contact apps, as clients. Finally even DECT phones with synced contact lists, or via bluetooth connected builtin navigation devices in cars.
As probably to be expected, especially on Android, the way how client contact apps are dealing with contact’s names is somewhat painful.

A Nextcloud contact has a Full Name field, plus detailed fields like prefix, first/last name and suffix. If you now change Full Name or the detailed parts, are they in sync, or are they not in sync, maybe on purpose? Depends afaik on each and every client. Esp. if you enter multi part company name, things are getting overcomplicated.

Disadvantages of this are:
a) often no meaningful sort anymore
b) depending on client app pain-in-the-neck search

My question is: Any hints / ideas / suggestions how to be able to set all Full Names globally, on demand. Following a simple rule / default like my preferred way “LastName, Prefix FirstName …”

As I’ve seen, a nextcloud contact is stored in database spread over several tables, OC_CARDS, OC_CARDS_PROPERTIES, maybe more. OC_CARDS_PROPERTIES itself stores e.g. name/value pairs, with names like FN, N, ORG, meaning (probably) FullName, Name, Organization. Any tech documentation about this? To be able to decide if updating e.g. “FN” records would be a viable solution, without harming anything else, like DAVx5 cardDAV sync? If so, a simple periodically called update SQL script, e.g. daily via crontab during night, even in maintenance mode if neccesary, would be all I need to be happy :slight_smile:

Thanks,
Michael

Nextcloud is based on the CardDAV standard (VCARD 3.0), so you will find detailed information in the related RFC 6352: