CSV to vCard (VCF) Converter

Turn a spreadsheet of contacts into a .vcf file your phone will import. You map the columns yourself, so nothing is guessed — and your contact list never leaves the device.

CSV to vCard converter

Convert

Output
Supports: CSVTSVTXT

Nothing is uploaded. This tool runs entirely in your browser, so the file never leaves your device. There is no server to send it to, no copy kept anywhere, and it keeps working if you lose your connection after the page has loaded.

Accepts .csv You get: A .vcf file Free, no sign-up

Getting a CSV out of your contacts

Most people arrive here with a spreadsheet already. If you do not have one, every major address book exports CSV: Google Contacts offers it under Export, Outlook under Import/Export, and iCloud exports vCard directly, so if that is your source you do not need this tool at all.

Whatever the source, open the file and look at the header row before converting. Column names vary enormously between services — one writes Given Name, another First Name, another fname — and knowing what your file actually calls things is what makes the mapping below take ten seconds rather than needing a second attempt.

Mapping is the whole tool

Nobody's export has the column names a converter would like. Google Contacts writes Given Name, Outlook writes First Name, a spreadsheet somebody made writes fname, and a CRM export writes something else entirely.

So the columns whose names are recognisable are matched for you and shown as dropdowns you can correct. Everything else stays unset. That is deliberate: a converter that guesses silently produces a phone full of contacts named after their email address, and you find out after importing four hundred of them rather than before.

Change any dropdown and the output updates immediately, so you can check a contact or two in the panel before downloading anything.

What it can carry

Name — as first and last, or as a single full name — plus organisation, job title, email, two phone numbers, a full postal address broken into street, city, region, postcode and country, a website and a note. A row with no name falls back to the organisation, then the email, then the phone, so a partial record still imports as something you can recognise rather than as a blank.

Rows with nothing identifiable at all are skipped, and the number skipped is reported under the output rather than passing silently.

A row turned into a card

Take a row with a first name, last name, company, email, phone and city, mapped to those six fields. This is the exact .vcf text it produces, verified against the converter's own code rather than typed out by hand:

BEGIN:VCARD
VERSION:3.0
N:Lovelace;Ada;;;
FN:Ada Lovelace
ORG:Analytical Engines
EMAIL;TYPE=INTERNET:ada@example.com
TEL;TYPE=CELL:+44 20 7946 0000
ADR;TYPE=HOME:;;;London;;;
END:VCARD

Notice the N line: it is family name first, then given name, then three more fields the tool leaves blank (additional names, prefix, suffix). FN is the display name shown in most contact apps. ADR has seven parts — PO box, extended address, street, city, region, postcode, country — and only city was mapped here, so the rest sit empty between the semicolons.

Escaping, and why addresses break

vCard treats commas, semicolons, backslashes and newlines as structural characters inside a value — they normally mark where one field ends and the next begins. A street address containing a comma, written out unescaped, would split the address into fields that were never meant to exist, which is the usual reason an imported .vcf arrives as garbage.

All four characters are escaped with a backslash before that can happen. A street value of Flat 2, 15 Oak Rd; Block B is written into the card as:

Flat 2\, 15 Oak Rd\; Block B

Reading it back, the reader sees the backslash and treats the comma and semicolon after it as ordinary characters, not separators. The backslash itself is escaped first — as a doubled backslash — so a value that happens to already contain one is not misread either. Long lines are also folded at 75 characters, as the vCard specification requires, by breaking the line and starting the continuation with a space. The file is UTF-8, so accents and non-Latin scripts survive intact.

The sample data above includes a name written as "Smith, John" in one column, quoted in the CSV because of its comma. Mapped to first name with no last name and no other identifying column, it becomes:

BEGIN:VCARD
VERSION:3.0
N:;Smith\, John;;;
FN:Smith\, John
EMAIL;TYPE=INTERNET:john@example.com
ADR;TYPE=HOME:;;;Leeds;;;
END:VCARD

The comma from the CSV field survives as data — escaped, not stripped — because the CSV parser and the vCard escaper are two separate steps handling two separate sets of special characters.

Getting it onto your phone

Email the file to yourself and open the attachment, or put it in a cloud drive and open it from the phone. iOS and Android both recognise the format and offer to add the contacts; Outlook, Apple Contacts, Google Contacts and Thunderbird all import it directly. There is nothing to install.

Import a small file first if you can — three or four contacts — and check one on the phone before doing the whole list. Undoing a bad contact import is far more work than checking.

Your contacts stay yours

Everything happens in your browser. The file is parsed there, the vCard is built there, and this page has no upload endpoint to send anything to. That matters more here than on most tools: a contact list is other people's personal data, not only your own, and the safest way to handle it is for it never to leave the machine.

Limits, and rows that get skipped

A dropped file is capped at ten megabytes, and the shared CSV parser stops at around two million cells — a contact export is small next to either limit. Rows with no name, no organisation, no email and no phone are skipped entirely, because a vCard with nothing to call the contact is not useful; the number skipped is reported under the output so it never happens silently.

If you only need the contact data as a spreadsheet-friendly text file rather than a phone import, the CSV to TXT and CSV to TSV converters read the same kind of CSV and use the same parser, just without the vCard step.

Frequently asked questions

Why do I have to map the columns myself?

Because nobody's contact export has the column names a converter expects. Columns whose names are recognisable are matched for you; the rest stay unset rather than being guessed. A wrong guess is what produces a phone full of contacts named after their email address, and you only find that out after importing four hundred of them.

What is a .vcf file?

The standard contact format — vCard. Every phone, mail client and address book imports it: iOS, Android, Outlook, Apple Contacts, Google Contacts and Thunderbird all take a .vcf without any conversion step.

Version 3.0 or 4.0?

Use 3.0 unless you know you need otherwise. It is the version with the broadest support, and it is what most phones and mail clients expect. Version 4.0 is newer and stricter, and some older software will not open it.

How do I get the file onto my phone?

Email the .vcf to yourself and open the attachment, or put it in a cloud drive and open it from the phone. Both iOS and Android recognise the format and offer to add the contacts. There is no app to install.

What if a row has no name?

It falls back to the organisation, then the email, then the phone number, so a contact with an address but no name still imports as something recognisable. A row with none of those is skipped, and the count of skipped rows is shown.

Will special characters and accents survive?

Yes. The file is UTF-8 and the characters vCard treats as special — commas, semicolons, backslashes and newlines — are escaped as the specification requires. An unescaped semicolon in an address is the classic way a .vcf imports as garbage.

Can I map more than one phone number?

Two: a main phone and a second one. Beyond that the mapping interface stops helping and a spreadsheet formula is a better tool.

Is my contact list uploaded anywhere?

No. Everything happens in your browser and this page has no upload endpoint. That matters more here than on most tools — a contact list is other people's personal data, not just yours.

About this converter

Check the mapping before you download, and import a handful of contacts before importing hundreds — a mis-mapped column produces a valid file full of wrong contacts, which no converter can detect for you. Contact data usually belongs to other people; handle the exported file with the same care you would want applied to your own.

CSV to TSV

CSV to TSV and back, with quoting handled properly.

Data Tools

CSV to TXT

CSV to plain text, with the delimiter under your control.

Data Tools

TXT to Excel

Delimited text into a real .xlsx workbook.

Data Tools

More in Data Tools All tools