Blog / Convert
How to convert a .vcf file to CSV
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.
VCF in, CSV out. Lossless, on your phone. $4.99 once.