Convert vcf to xml

Free online VCF to XML converter

Convert contact vCard files to XML for structured import, editing, or archiving.

Convert VCF to XML 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 .vcf 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 .vcf to .xml conversion

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

  3. 3/3

    Download converted .xml file

    Conversion result is ready to download.

How to convert vcf to xml file

A contact-management system, migration utility, or archive may require XML when contacts are supplied as a .vcf file. Converting the file exposes names, numbers, email addresses, and other fields to XML-based software for import or editing.

What the VCF format is

For contact data, VCF means vCard, a text-based format specified by standards including vCard 3.0 (RFC 2426) and vCard 4.0 (RFC 6350). One file can contain one or many contact records with fields such as FN, N, TEL, EMAIL, ADR, ORG, NOTE, and PHOTO.

Apple Contacts, Google Contacts, Microsoft Outlook, Android address books, and email clients create VCF files for export, sharing, or backup. VCF supports line folding, escaped characters, field parameters such as TYPE=CELL, and application-specific X- properties. Its line-based syntax is portable, but many systems that process hierarchical data need XML instead.

What XML is

XML represents data with nested elements, attributes, and text. Standard XML parsers can read it, and an XML Schema Definition (XSD) can validate its structure, required fields, data types, and namespaces. XML has no universal contact schema, so the converter must produce the element names and hierarchy required by the receiving application.

A basic result could use <contacts>, <contact>, <fullName>, <phone>, and <email>. Proper XML escaping preserves characters such as & and <; attributes can retain VCF parameters such as CELL and WORK. The resulting XML is useful only if its structure matches the target software's documentation or schema.

Using the built-in converter

  1. Open 101convert.com and choose the VCF-to-XML conversion.
  2. Select the contact file with the .vcf extension and start the conversion.
  3. Download the generated .xml file.
  4. Open the XML in a browser or XML editor and check the number of contacts, names, phone numbers, email addresses, and special fields before importing it.

This method requires no installation and is suitable when the destination accepts the converter's generic XML structure. Contact files can contain personal information, so use a local method instead when upload restrictions or confidentiality requirements apply.

Using Python for a defined structure

Use a script when the destination requires exact element names, namespaces, attributes, or an XSD. Install the vCard parser with python -m pip install vobject, then save the following as vcf_to_xml.py:

import base64
import xml.etree.ElementTree as ET
import vobject

root = ET.Element("contacts")
with open("contacts.vcf", encoding="utf-8-sig") as source:
    for card in vobject.readComponents(source):
        contact = ET.SubElement(root, "contact")
        for name, properties in card.contents.items():
            for prop in properties:
                element = ET.SubElement(contact, name.lower())
                for parameter, values in prop.params.items():
                    if not isinstance(values, (list, tuple)):
                        values = [values]
                    element.set(parameter.lower(), ",".join(str(v) for v in values))
                value = prop.value
                if isinstance(value, bytes):
                    element.set("encoding", "base64")
                    element.text = base64.b64encode(value).decode("ascii")
                else:
                    element.text = str(value)

ET.ElementTree(root).write("contacts.xml", encoding="utf-8", xml_declaration=True)

Run it with python vcf_to_xml.py. The script creates a generic structure and preserves repeated properties and parameters, but it does not automatically conform to a vendor's contact schema. Replace the generated names, add namespaces, or map structured values such as N and ADR according to the recipient's XSD or import specification.

Quality and compatibility limits

Check the source version and encoding before conversion. A parser should handle folded lines and escaped punctuation, but custom fields, contact groups, time zones, embedded photographs, and vendor-specific properties may be omitted, flattened, or represented differently. Structured vCard fields can also become plain text unless the converter explicitly maps their components.

Well-formed XML is not automatically importable XML. Validate the output against the recipient's XSD when one exists, or compare it with a sample file from the target application. Do not use a spreadsheet as a general conversion method: importing VCF into Excel or another spreadsheet can lose repeated fields, parameters, photos, and multiline values, and an XML export may use a spreadsheet-specific schema rather than the contact schema required by the destination.

Confirm that the input is a contact VCF. The same extension is used by the scientific Variant Call Format, which begins with metadata such as ##fileformat=VCF and stores genomic variants, not contacts; it requires a genomics-specific XML schema and converter.

VCF vs XML: format comparison

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

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

Frequently asked questions

Is the VCF to XML converter free?

Yes, converting VCF to XML 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 VCF file be?

You can upload VCF 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 VCF to XML?

No. The VCF to XML 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 VCF file for this VCF to XML 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.

Will converting VCF to XML preserve all my contact fields?

It preserves fields that have a corresponding element in the chosen XML structure, but unsupported or uncommon vCard properties may be omitted or flattened. Custom fields, contact categories, embedded photos, and formatting can be especially affected.

Can I edit the converted VCF data in XML?

Yes, XML is text-based and can be edited, but the result is only useful to another system if it follows that system's expected XML structure. XML itself does not define one universal contact schema.

Why does my XML importer reject a converted VCF file?

The XML may be well-formed but use elements or nesting that the importer does not expect. Differences in the required schema, vCard version mapping, date formats, phone-number fields, or character encoding commonly cause rejection.

Will multiple contacts in one VCF become multiple contacts in XML?

Usually, each vCard record becomes a separate contact element, but the exact nesting depends on the XML structure used for the conversion. A file containing several vCards may therefore need adjustment before a particular address-book program can import it.