👤CSV→VCF

About this site

CSV to VCF Converter turns a spreadsheet of contacts into a vCard file in the browser. Casey Marlin maintains the site alone. A contact list names you and other people, so the conversion stays on the device instead of uploading a file the task does not need to send anywhere.

Why the converter is local

The usual failure is not the idea of a vCard. A column may be headed Phone 1 - Value rather than Mobile. A number may include a country code and spaces. A name may contain letters outside basic ASCII. One phone may expect vCard 2.1 while another expects 3.0 or 4.0. Those differences can drop a field, split one person into several cards, or make an importer stop. This site is a local converter for that gap. It does not describe a company mailroom, and it does not describe anyone's client work.

What the conversion does

You bring a CSV or Excel file, map columns to name, telephone, and email fields, preview the rows, and generate a VCF in the version you select. Other pages convert VCF back to a spreadsheet, split a file, or edit rows. None of them sync a cloud address book, restore deleted contacts, or sign you into a phone account. The published tools are:

  • CSV to VCF converter — the main tool, with column mapping, preview and version choice.
  • Excel to VCF — same engine, .xlsx/.xls input, with Excel-specific preparation advice.
  • VCF to CSV — the reverse direction, for spreadsheets and CRMs.
  • Import walkthroughs for Android and iPhone.

What the scripts check

The conversion checks use synthetic fixtures built in memory. They are not a customer's export and not a file taken from a phone. In scripts/test-convert.mjs the fixture named MESSY_CSV has three contacts and one empty row. The check expects three vCards and expects that empty row to be skipped. The same script checks field mapping, N, FN, TEL, and EMAIL lines, an accented character in the formatted name, comma and semicolon escaping, a vCard 2.1 quoted-printable round trip, folded long lines, empty or hostile input, and a merge of overlapping cards. A second fixture is an .xlsx workbook generated in memory from an array of rows.

A recorded run of scripts/test-convert.mjs on 16 October 2026 reported 36 passing checks. These other scripts are in the same folder and were not re-run for this page, so their presence is not a claim that each one passed that day: test-dedupe.mjs, test-editor.mjs, test-json.mjs, test-ldif.mjs, test-ldifwrite.mjs, test-split.mjs, test-vcfjson.mjs, and test-vcfversion.mjs. They cover duplicate grouping, row editing, JSON, LDIF read and write, splitting a file, VCF to JSON, and conversion among vCard 2.1, 3.0, and 4.0. None of those files is an acceptance test inside Google Contacts, iCloud, or Android.

Other pages still show a shared last-checked stamp of August 26, 2026. This About page does not move that stamp. The stamp is not a full retest of those apps, and it is not a test that runs on every change. This page's own text was revised on 17 October 2026.

Privacy boundary

Contact rows are converted in the browser. That is not a claim that the website never uses the network. Opening a page requests the page and its scripts. Analytics, described in the privacy policy, are a different kind of data from the address book being converted. Watching the browser network panel during a conversion is a check you can do. This page does not file a packet log of that check. Do not read "processed locally" as "no information of any kind leaves the device."

Scope, independence, and contact

No Pro plan was found for this site. This page does not quote another product's prices or trial caps, and it does not lock in a future price. The tools linked above are the ones published now.

Casey Marlin is the person named on the site. The project is independent of Google, Apple, Microsoft, and the phone makers. Their names appear only to identify column headings and vCard versions those products document. Corrections are welcome through the contact page. Describe the page, the column headers, and the vCard version you selected. Do not send someone else's private address book.