Convert xml to vcard

Free online XML to VCARD converter

Convert structured XML contact exports into importable UTF-8 vCard files.

Convert XML to VCARD online - free

Uploading…
Selected files exceed the 9 MB total limit. Please select fewer or smaller files.

Your file is processed instantly and deleted as soon as you download it.

How it works

  1. 1/3

    Upload your .xml file

    Click to browse to select your file you want to convert or simply drag & drop your file into selected area.

  2. 2/3

    Perform .xml to .vcard conversion

    After successful file upload, click to convert when you are ready.

  3. 3/3

    Download converted .vcard file

    Conversion result is ready to download.

How to convert xml to vcard file

A phone, email client, or address-book application may require contacts in vCard (.vcf) format instead of an application-specific XML export. Converting the file makes contacts easier to import, share, edit, and transfer between supported devices and programs.

What XML is

XML is a tag-based text format for storing and exchanging hierarchical data. Contact XML files can be produced by CRM systems, email clients, address books, web services, device backups, and custom databases.

XML has no universal contact schema. One file may use <contact>, <firstName>, and <phone>; another may use <person>, <given>, and <telephoneNumber>. Before conversion, identify the repeating contact element and the fields containing names, email addresses, phone numbers, organizations, postal addresses, notes, and identifiers. Namespaces and nested elements can also affect field detection.

What the vCard format is

vCard is a standardized plain-text format for contact records, normally saved with the .vcf extension. A file may contain one contact or multiple contacts and can be imported by phones, email clients, address books, CRM systems, and desktop contact managers.

Each record starts with BEGIN:VCARD and ends with END:VCARD. Common properties include FN for the display name, N for structured name components, TEL, EMAIL, ORG, ADR, NOTE, and UID. vCard 3.0 is usually the safest compatibility choice; vCard 4.0 supports newer features but may not import correctly in older phones and applications.

How to convert XML to vCard

For a conventional contact export, use the converter on 101convert.com: upload the XML file, choose VCARD as the output format, start the conversion, and download the resulting .vcf file. No software installation is required. Inspect the output before importing it when the XML came from a proprietary application.

If automatic field detection fails, use an XML editor, a data-transformation program, or a custom script:

  1. Open the XML and locate the element repeated once for each contact.
  2. Map the source fields to vCard properties: the display name to FN, given and family names to N, telephone numbers to TEL, email addresses to EMAIL, the company to ORG, and postal components to ADR.
  3. Choose vCard 3.0 unless the receiving application explicitly supports vCard 4.0.
  4. Generate one complete vCard block per contact and save all blocks as a UTF-8 file such as contacts.vcf.
  5. Import the file through the destination application's contact menu, commonly Contacts → Import or File → Import.

A minimal vCard 3.0 record is:

BEGIN:VCARD
VERSION:3.0
N:Doe;Jane;;;
FN:Jane Doe
TEL;TYPE=CELL:+1-202-555-0147
EMAIL:jane.doe@example.com
ORG:Example Ltd
END:VCARD

For repeatable conversions, Python's standard library can parse a simple XML structure and generate vCards. Change the element names and paths to match the source:

import xml.etree.ElementTree as ET

def esc(value):
    return (value or "").replace("\\", "\\\\").replace(";", "\\;") \
        .replace(",", "\\,").replace("\r", "").replace("\n", "\\n")

root = ET.parse("contacts.xml").getroot()
blocks = []
for contact in root.findall(".//contact"):
    first = contact.findtext("firstName", "")
    last = contact.findtext("lastName", "")
    full = (first + " " + last).strip()
    name = ";".join((esc(last), esc(first), "", "", ""))
    lines = [
        "BEGIN:VCARD", "VERSION:3.0", f"N:{name}",
        f"FN:{esc(full)}"
    ]
    phone = contact.findtext("phone", "")
    email = contact.findtext("email", "")
    if phone:
        lines.append(f"TEL:{esc(phone)}")
    if email:
        lines.append(f"EMAIL:{esc(email)}")
    lines.append("END:VCARD")
    blocks.append("\r\n".join(lines))

with open("contacts.vcf", "w", encoding="utf-8", newline="") as output:
    output.write("\r\n".join(blocks) + "\r\n")

Run it with python convert_contacts.py. A production script must handle XML namespaces, missing values, multiple telephone and email elements, vCard line folding for long lines, and property-specific escaping. It should also assign suitable TYPE parameters only when the XML identifies a number as mobile, work, home, or fax.

Quality and compatibility limits

Conversion quality depends on the XML schema, not its file extension. A converter cannot reliably infer the meaning of an unlabeled number, and proprietary fields may have no vCard equivalent. Photos, groups, custom fields, permissions, linked records, multiple addresses, and relationship data may be discarded or transformed.

Keep the original XML as a backup. Test a small sample before converting a large address book, then check names, character encoding, phone labels, duplicate records, non-Latin text, and line breaks after import. Reimporting the same .vcf file can create duplicates, and some applications support only a subset of vCard 3.0 or 4.0 properties.

XML vs VCARD: format comparison

How the XML and VCARD formats compare on the properties that matter most for this conversion.

Comparison of the XML and VCARD file formats
Property .XML Extensible Markup Language .VCARD vCard
Plain-text readable Yes Yes
Data types Typed Partial
Nested structures Yes Yes
Formulas No No
Multiple tables or sheets — No
Typical file size Small Very small
Open standard Yes Yes
Best used for Data exchange Sharing and distribution
Introduced 1998 1996
Developer W3C IETF
MIME type application/xml text/vcard

The database currently does not contain any direct xml file converter links.

Frequently asked questions

Is the XML to VCARD converter free?

Yes, converting XML to VCARD on 101convert.com is completely free. No registration, email address or installation is required. If you need a higher file size limit or want to convert more files at once, see our plans.

How large can my XML file be?

You can upload XML files up to 15 MB and convert up to 100 files at once in a single batch.

What happens to my uploaded files?

Files are processed automatically and deleted from our servers within a few minutes after conversion. We never view or share your files.

Do I need to install any software to convert XML to VCARD?

No. The XML to VCARD conversion runs entirely online in your browser and works on Windows, Mac, Linux, Android and iPhone.

Did the conversion fail?

In most cases, the cause is an incorrect file format. Please upload a valid XML file for this XML to VCARD conversion. Occasionally, the issue may be on our side. We analyze recurring conversion failures and disable or fix the converter if we detect a defect.