Blog / Convert

How to convert a .vcf file to CSV

April 27, 2026·5 min read·By Kodefoundry

vCard (.vcf) and CSV are both contact-data formats, but they have a fundamental shape mismatch. vCard is hierarchical: one contact can have any number of phones, emails, addresses. CSV is flat: every row has the same columns. Converting between them is one of those things that looks trivial and isn't, which is why most online converters lose data.

The mismatch in plain English

Take this contact in vCard:

BEGIN:VCARD
VERSION:3.0
FN:Ada Lovelace
TEL;TYPE=CELL:+44 7700 900123
TEL;TYPE=WORK:+44 20 7946 0958
EMAIL:ada@example.com
EMAIL;TYPE=WORK:ada.lovelace@analytical-engine.co.uk
END:VCARD

One contact, two phone numbers, two emails. To represent this in a CSV, you have three reasonable options, each with trade-offs.

Option 1: One row per contact, multiple columns

Name,Mobile,Work Phone,Personal Email,Work Email
Ada Lovelace,+44 7700 900123,+44 20 7946 0958,ada@example.com,ada@analytical-engine.co.uk

Easy to read in Excel. Bad if you have contacts with three or four phones — you end up with mostly-empty columns. Worse, the column meaning becomes order-dependent ("which is Mobile vs Work?"), which different sources disagree on.

Option 2: One row per contact, one phone number

Name,Phone,Email
Ada Lovelace,+44 7700 900123,ada@example.com

The work number and the work email are dropped. Simple but lossy. This is what most online converters do silently, which is why people get to the destination CRM and realize a chunk of contact info disappeared.

Option 3: Multiple rows per contact

Name,Phone,Email
Ada Lovelace,+44 7700 900123,ada@example.com
Ada Lovelace,+44 20 7946 0958,ada@analytical-engine.co.uk

Lossless, but it inflates row count and creates "duplicate" contacts in any CRM that doesn't merge by name. Best for SMS campaigns where you want to message every number.

Which option is right depends on what you're doing

  • Importing into a CRM (HubSpot, Salesforce, Pipedrive): Option 1, with the CRM's preferred column names. Each CRM has its own schema. See how to format phone numbers for a CRM import.
  • SMS / cold-outreach list: Option 3. You want one row per number you're going to message.
  • Spreadsheet review or backup: Option 1.

How to actually do the conversion

Method 1: Pluck

If the source is your iPhone contacts, skip the vCard step entirely. Pluck exports straight to CSV with format options for all three layouts above (in Pluck terminology: "Phone only", "Name + phone", "Full contact data"), country-code handling, and multi-file output. No round-trip through vCard.

If you already have the .vcf from somewhere else, Pluck can import it (Import VCF File on the home screen) and then export it as CSV. The path is .vcf → in-memory contact list → .csv, with parsing that handles vCard 2.1, 3.0, and 4.0, and explicit RFC 6350 escape decoding.

Method 2: Google Contacts

Open contacts.google.com, import the .vcf, then export as Google CSV or Outlook CSV from the same export menu. The Google export is Option 1 with a fixed schema. Free, works for any size, and handles UTF-8 correctly.

Method 3: macOS Contacts → Numbers

Drag the .vcf into Contacts on a Mac. Select all, copy, paste into Numbers. The result is rough but workable, and Numbers exports CSV cleanly.

Online converters: a warning

If you do search "vcf to csv online", you'll find dozens of free tools. Be aware:

  • You're uploading a file with every contact you have to a stranger's server.
  • Many of them silently apply Option 2 (one phone per contact, lossy).
  • UTF-8 handling is hit-or-miss — non-Latin names often come out garbled.
  • None of them are obligated to delete the file after conversion.

If the file contains real contact data, do the conversion locally.

Format gotchas after conversion

Once you have the CSV, the same rules apply as if you'd exported from iPhone directly. Open via the Excel import wizard, set phone columns to Text type, and pick UTF-8 encoding. Full list in how to export iPhone contacts to Excel.

Get Pluck

VCF in, CSV out. Lossless, on your phone. $4.99 once.

See Pluck

Related