You exported your contacts — from an iPhone, Gmail, Outlook, or an old Android phone — and got
a file called contacts.vcf. Open it in a text editor and it's readable-ish: lines like
FN:Jane Doe and TEL;TYPE=CELL:555-111-2222. But keep scrolling and you'll hit lines that wrap
strangely, values full of stray = signs, and phone-specific quirks that don't match the next
contact's format at all. This article explains what a VCF file actually is, what's inside one,
and why two .vcf files from two different apps can look so different.
What a VCF file is
VCF stands for vCard File — "vCard" is the name of the format, standardized by the IETF (most recently as RFC 6350 for vCard 4.0, though most real-world files are still version 3.0 or even the older 2.1). It's the universal contact-exchange format: nearly every phone, address book, and email client can export and import it, which is exactly why it's survived since the 1990s despite competing proprietary formats coming and going.
A VCF file is plain text. Structurally, each contact is one block:
BEGIN:VCARD
VERSION:3.0
FN:Jane Doe
N:Doe;Jane;;;
ORG:Acme Corp
TEL;TYPE=CELL:555-111-2222
TEL;TYPE=WORK,VOICE:555-333-4444
EMAIL;TYPE=WORK:jane@acme.example
ADR;TYPE=WORK:;;123 Main St;Springfield;IL;62704;USA
BDAY:19850613
END:VCARD
A single .vcf file can hold exactly one contact or your entire address book — apps just
concatenate BEGIN:VCARD…END:VCARD blocks one after another with no separator needed.
Reading the properties
Each line inside a card is one property: a name, optional parameters, and a value, in the
form PROPERTY;PARAM=VALUE:the value itself. A few matter for almost every contact:
- FN — the formatted (display) name, exactly as it should be shown.
- N — the structured name: family;given;middle;prefix;suffix, semicolon-separated. This is what lets an app sort "Doe, Jane" while displaying "Jane Doe".
- ORG / TITLE — company and job title.
- TEL / EMAIL — these can repeat. A contact with three phone numbers has three separate
TELlines, each tagged with aTYPEparameter likeCELL,HOME,WORK, orFAXso the receiving app knows which is which. - ADR — a structured address: post office box, extended address, street, city, region, postal code, country — seven semicolon-separated components, most of which are usually blank.
- BDAY / NOTE — birthday and free-text notes.
Why VCF files from different apps look inconsistent
Two things account for most of the weirdness:
Line folding. The spec caps how long a physical line can be, so a long value — a detailed NOTE, for instance — wraps onto the next physical line, which starts with a single space or tab as a "this continues the previous line" marker. A parser has to strip that marker and rejoin the lines before reading the value; a plain text viewer just shows you the wrapped mess.
Old-school character encoding. vCard 2.1 (still exported by some older phones and by
Outlook) predates reliable Unicode support, so any name with accented or non-Latin characters
gets encoded as QUOTED-PRINTABLE — you'll see FN;ENCODING=QUOTED-PRINTABLE;CHARSET=UTF-8: Jos=C3=A9 Garc=C3=ADa instead of FN:José García. Each =XX is a hex-encoded byte, and
QUOTED-PRINTABLE values use yet another line-continuation rule — a trailing = right before
the line break, unrelated to the folding marker above. Newer vCard 3.0/4.0 exports skip this
entirely and just write UTF-8 directly.
vCard 2.1 also allows a shorthand for TYPE that 3.0/4.0 dropped: TEL;HOME;CELL:... instead of
TEL;TYPE=HOME,CELL:... — bare parameter tokens with no TYPE= prefix at all. Both forms mean
the same thing; a parser just has to recognize both.
Getting contacts out of a VCF file
None of this is something you want to untangle by hand, and a raw .vcf renamed to .csv doesn't
help — Excel has no idea how to split BEGIN/END blocks, folded lines, or repeated TEL/EMAIL
properties into columns. What you actually want is a flat table: one row per contact, with every
phone number and email joined into a readable cell. That's exactly what the free
VCF to CSV converter here does — it unfolds lines, decodes
QUOTED-PRINTABLE automatically, and exports a clean CSV, XLSX, or JSON, entirely in your browser.
See How to convert VCF contacts to Excel or CSV for the
step-by-step version.