👤CSV→VCF

What Is a VCF File? The vCard Contact Format, Explained

A .vcf file is a vCard: the electronic business-card format phones, iCloud and Google Contacts use to import and export people. It is plain text (MIME type text/vcard), not a binary database. This page is the format note — what the property lines mean, which of the three versions you will actually meet, and when you want a vCard versus a spreadsheet.

👤
Written by Casey Marlin · Last updated
This update: format notes follow RFC 2426 and RFC 6350; parser coverage is synthetic fixtures plus the iCloud X-ABLabel unit test in scripts/test-convert.mjs

The short answer

A VCF file is a vCard. The two names are the same format: VCF is the usual filename extension (.vcf, sometimes .vcard); vCard is what the spec calls it. The internet media type is text/vcard. The file is not a database, not an Outlook PST, and not a binary dump from a phone. It is a text file. You can open it in any editor and read the property lines with your eyes.

Phones, iCloud, Google Contacts, Outlook and almost every address-book app speak this format when they import or export people. That is why a colleague can email you a .vcf, why an old feature-phone backup is a .vcf, and why the converters on this site write .vcf files when you need something a phone will swallow. A CSV of the same people is a spreadsheet; a vCard of the same people is what the address book actually eats.

One file is not limited to one person. A vCard file is a sequence of cards. A salesperson's “here is my number” attachment is usually a single BEGIN:VCARD END:VCARD block. An iCloud “Export vCard” of a selected group, an Android “Share contacts” dump, or a full phone backup is the same format with hundreds of those blocks back to back. There is no extra wrapper, no index, no catalog at the top of the file — just cards, one after another. The importer reads until it runs out of blocks.

Because it is text, a .vcf is easy to copy, email and keep in version control. Because it is structured text, Excel will not split it into columns on its own, and a phone will not import a CSV without going through a vCard first. That split — phones eat VCF, tables eat CSV — is the whole reason this site exists. If you already have a .vcf and just want to see who is in it without importing anyone, that is a different page: open a VCF file (view only).

Anatomy of a vCard

Every card is a block that starts with BEGIN:VCARD and ends with END:VCARD. The first property inside is almost always VERSION, which tells you whether you are looking at 2.1, 3.0 or 4.0. Everything between those two lines is a property: a name, a colon, a value. Long lines may be folded — continued on the next line with a leading space — which is a serialization detail, not a second property. Parsers unfold first, then read.

Two name fields exist, and they are not duplicates. N is the structured name: Family;Given;Middle;Prefix;Suffix. Empty slots stay empty; the semicolons still have to be there so the parts line up. FN is the formatted display name — the string the phone actually shows in the list. A card that only has FN still displays; a card that only has N can be reconstructed into a display name by joining the parts. Well-behaved exporters write both. If they disagree, FN wins on the screen and N wins when you sort by last name.

The rest of the properties you will actually meet:

  • TEL — a phone number, often with a TYPE of CELL, WORK or HOME.
  • EMAIL — an email address, sometimes typed INTERNET or WORK.
  • ORG — the organization, i.e. the company. TITLE is the job title, not the honorific (that lives in the prefix slot of N).
  • ADR — a structured address: pobox;extended;street;city;region;postal;country. Same semicolon rule as N.
  • URL — a website. NOTE is free text; anything the exporter did not have a field for tends to land here. BDAY is a birthday, as a date.
  • PHOTO — a photo, as a URL or as base64. See the FAQ for what this site does and does not do with it.

Here is a complete, legal vCard 3.0 — ten lines, one person. This is the same dialect Google Contacts and iCloud export:

BEGIN:VCARD
VERSION:3.0
N:Chen;Maya;;;
FN:Maya Chen
ORG:Northwind Labs
TITLE:Product Manager
TEL;TYPE=CELL:+14155550123
EMAIL;TYPE=INTERNET:maya@northwind.example
URL:https://northwind.example
END:VCARD

That card would import as Maya Chen, with a mobile number, an email, a company and a title. Nothing in it is optional in the sense of “the parser will explode”: BEGIN, VERSION and END are required, FN is required in 3.0 and 4.0, and the rest is present if the contact has it. A file with two hundred contacts is this block, then another, then another. No extra syntax.

The three versions you'll actually meet

Three versions circulate in the wild. You do not need to memorize the RFCs to pick one, but you do need to know which world each version belongs to. The picture below is the same comparison used elsewhere on this site; the short version is the mnemonic at the end of this section.

vCard versions 2.1, 3.0 and 4.0 compared: 2.1 for old phones and SIM tools, 3.0 as the Google and iCloud default, 4.0 for RFC 6350 CRMs

vCard 2.1 is the old one. Feature phones, SIM-management tools, some car head units and a long tail of “export to phone” utilities still emit it. TYPE is written without the TYPE= keyword (TEL;CELL: rather than TEL;TYPE=CELL:). Non-ASCII text is not UTF-8 in the way you expect: 2.1 uses CHARSET and ENCODING=QUOTED-PRINTABLE, so María becomes a run of =XX escapes. A text editor shows the escapes; a parser that understands 2.1 decodes them back.

vCard 3.0 (RFC 2426) is the one you should assume. Google Contacts and iCloud both export 3.0 by default — it is their native dialect. Commas and semicolons inside values are escaped with a backslash, lines fold at 75 octets (bytes), TYPE= is written as a parameter, and UTF-8 is native: no quoted-printable theatre. Android imports it. iPhone imports it. Outlook imports it. If you are making a file and you do not have a specific reason to pick otherwise, pick 3.0. iCloud.com in particular is known to reject or mis-read some 2.1 and 4.0 files, so 3.0 is the safe choice there.

vCard 4.0 (RFC 6350) is the current spec. Phone numbers may be written as tel: URIs — TEL;TYPE=cell:tel:+14155551234 — and TYPE values are lowercase. Some modern CRMs ask for 4.0. Android support varies by manufacturer, and iCloud's web importer is happier with 3.0, so treat 4.0 as “when the receiving software says it wants it,” not as a new default.

The mnemonic used everywhere on this site: default 3.0, old devices 2.1, new CRMs 4.0. Files that mix versions — a phone that merged several sources — are legal; each card carries its own VERSION line and is parsed on its own terms.

VCF vs CSV for contacts

Phones and address-book apps eat VCF. Spreadsheets, CRMs and email-marketing tools eat CSV. That is the whole comparison. A CSV is a rectangle: one contact per row, one field per column. A vCard is nested: one contact can have three TEL lines, two EMAIL lines, an ADR with seven slots, and a PHOTO. Flattening one into the other always throws something away or invents columns. Neither format is “better”; they are for different jobs.

When you need the contacts on a phone, in iCloud, or in Outlook's People, you want a .vcf. Convert a spreadsheet with the CSV to VCF converter on the homepage, or drop an Excel workbook on Excel to VCF. When you need to sort, filter, de-duplicate or feed a CRM, you want a CSV: VCF to CSV. Round-tripping is the usual cleanup path — vCard to spreadsheet, edit, spreadsheet back to vCard — and it is lossy in both directions if you are not careful.

The honest flattening trade-off, said in one sentence: a nested vCard does not have a one-to-one column for every TEL and EMAIL, so this site's spreadsheet export keeps the first two phone numbers and the first two emails as their own columns and drops a third. No converter avoids that without producing a sheet with a variable number of columns. Keep the original .vcf as the archive if you need every field; treat the CSV as a working copy.

Working with VCF files

This page is the definition. The rest of the site is the jobs you actually came here to do. Pick the lane; do not mix them up.

  • Open it and look, without importing. Open a VCF file — a read-only viewer. Drop the file, read the cards, close the tab. Nothing is added to Outlook, Google Contacts, iCloud or your phone.
  • Several files into one. Merge VCF files concatenates the original card blocks. It does not regenerate FN, TEL or PHOTO, so a photo that went in is still there on the way out.
  • Clean the list in a spreadsheet. VCF to CSV flattens every card into rows you can sort and de-duplicate in Excel or Google Sheets.
  • Make a vCard from Excel. Excel to VCF reads the first worksheet in the browser. From a CSV, use the homepage converter. Pick vCard 3.0 unless you have a reason not to.
  • Write or debug a vCard by hand. The vCard format reference goes a level deeper than this page: property-line grammar, escaping, 75-octet folding and the version differences that break imports.
  • Get the file onto a phone. A .vcf is already what iPhone and Android import. The iPhone guide (including the iCloud detour a CSV still needs) and the Android guide cover the tap-by-tap import. If the file came from iCloud or needs to go back there, the iCloud contacts guide walks both directions.

If you only needed to know what the format is — a plain-text electronic business card, one file or many, three versions, phones on one side and spreadsheets on the other — you can stop here.

What is a VCF file — FAQ

  • What opens a VCF file?

    A .vcf is plain text, so any editor will show the raw card — but a tap on a phone or a double-click in Outlook is an import, not a preview. To look without adding anyone, use the Open VCF file viewer on this site.

  • Are VCF and vCard the same thing?

    Yes. VCF is the usual file extension; vCard is the format name. A file named contacts.vcf is a vCard file. You will also see .vcard as an extension, and the MIME type text/vcard. They all mean the same electronic business-card format.

  • How do I make a VCF file from Excel?

    Drop the .xlsx or .xls onto the Excel to VCF converter, check the column mapping, pick vCard 3.0 unless you have a reason not to, and download. The homepage converter does the same job from a CSV. Both run in your browser; nothing is uploaded.

  • How do I convert a VCF file to Excel?

    Excel cannot split a vCard into columns on its own. Use the VCF to CSV converter on this site, then open the CSV in Excel, Google Sheets or Numbers. The export is UTF-8 with a BOM so accented names display correctly.

  • How many contacts can one VCF file hold?

    There is no format-level cap. A .vcf is just BEGIN:VCARD…END:VCARD blocks back to back, so one file can be a single business card or an entire phone backup of hundreds or thousands of contacts. iCloud Export vCard and Android Share contacts both write one combined file.

  • Can a VCF file contain a photo?

    Yes. The PHOTO property can hold a URL or, more commonly, a base64-encoded JPEG or PNG. The tools on this site that parse a card into fields — the viewer and VCF to CSV — skip PHOTO, and the converters that generate a new vCard from a spreadsheet do not write it. Only the merge tool keeps photos, because it concatenates the original card text instead of regenerating it.

  • Which vCard version should I use?

    Default to 3.0 — it is what Google Contacts and iCloud export, and the version that fails least often. Use 2.1 only for old feature phones, SIM tools and some car head units. Use 4.0 (RFC 6350) when a modern CRM specifically asks for it.

  • Is it safe to open a VCF file?

    A vCard is plain text. Opening one in an editor or in this site's viewer does not execute anything in the file. The risk is social, not technical: a stranger's card is not a verified identity, and double-clicking it on a phone or in Outlook will import the contacts. Looking at the text is as safe as opening a .txt file.

Format notes follow RFC 2426 (vCard 3.0), RFC 6350 (vCard 4.0) and the vCard 2.1 spec. Parser coverage is synthetic fixtures plus the iCloud X-ABLabel unit test in scripts/test-convert.mjs, not live iCloud or Android exports. Last checked: August 26, 2026. About this site