nextcloud / nextcloud/contacts

Import fails for Apple (iOS) vCard format

Open
#4,182 7 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

1. to develop bug feature: contacts
Dominant language
JavaScript
Stars
642
Forks
220
Avg merge
14h 39m
Merged PRs (30d)
51

Description

Describe the bug

Apple uses additional fields to provide a more detailed contact info. Ideally these fields could be mapped to Nextcloud so all information is preserved. Alternatively these fields could be sanitized.

Here are the troublesome fields:
X-MS-IMADDRESS;OTHER:
ADR;<HOME/WORK/OTHER>:
EMAIL;<WORK/OTHER>:
TEL;<PREF/OTHER/VOICE>;<MOBILE/VOICE/HOME>:
URL;OTHER:

Steps to reproduce
  1. Connect iPhone to PC
  2. Use 3uTools to export contacts
  3. Try to import the contacts to Nextcloud Contacts
  4. See error for contacts with the aforementioned attributes
Expected behavior

Handle the import gracefully.

Actual behavior

Import fails for contacts with aforementioned attributes.

Contact version

6.1.0

Operating system

Debian 12

PHP engine version

PHP 8.3

Web server

Nginx

Database

MariaDB

Additional info

According to https://www.rfc-editor.org/rfc/rfc6350 only the X-name attributes are not official and should not be used. Attributes like "TEL;VALUE=uri;PREF=1;TYPE="voice,home":tel:+1-555-555-5555;ext=5555" and "TEL;VALUE=uri;TYPE=home:tel:+33-01-23-45-67" are explicitly mentioned in the RFC and should be supported by the Contacts app.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the failure with an iOS/3uTools-exported contact containing the listed X-name and TEL, ADR, EMAIL, and URL attributes, then review the Contacts vCard import handling against RFC 6350. Done means these contacts import without an error while preserving supported fields or sanitizing unsupported ones.

Written by the indexing model from the issue text.

Assessment

Tech stack
php
Domain
backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.