Quick answer
Online: drop your .vcf at formatdrop.com/document-converter, choose CSV, download. For round-trip via Google: import VCF to Google Contacts → Export → CSV (Google Format). For programmatic: `pip install vobject` then a 10-line Python script that iterates contacts and writes CSV rows. Photos don't transfer to CSV (binary data) but everything else does.
Method 1: Convert VCF to CSV online (free, in your browser)
- 1
Open the FormatDrop document converter
Open formatdrop.com/document-converter in your browser. Conversion runs locally — your contact data stays on your device. Critical for sensitive contact lists.
Go to converter - 2
Drop your VCF file
Drag your .vcf file. The converter parses each contact (delimited by BEGIN:VCARD … END:VCARD blocks) and identifies all standard vCard fields: FN (full name), N (structured name), EMAIL, TEL, ADR, ORG, TITLE, BDAY, NOTE, plus types (work/home/cell/other).
- 3
Choose CSV format and field mapping
Select CSV. Choose 'Google CSV format' (compatible with Google Contacts import) or 'Outlook CSV' (compatible with Outlook/Exchange import) — these are different column conventions. Custom mode lets you choose which vCard fields to include.
- 4
Download and open in Excel/Sheets
Open the CSV in Excel or Google Sheets. Each contact is one row; standard fields are individual columns. Edit/dedupe/filter, then re-export to CSV (or back to VCF via the inverse converter) for re-import.
Method 2: Convert via Google Contacts (free, official, polished UI)
Google Contacts handles VCF↔CSV cleanly with great UI. Best when you don't mind the contacts living briefly in your Google account during the conversion.
- Go to contacts.google.com → sign in.
- Left sidebar → Import → choose your .vcf file. Google imports all contacts.
- Once imported (a few seconds), Left sidebar → Export.
- Choose 'Google CSV' format (works with Google Contacts re-import) or 'Outlook CSV' (works with Outlook). Click Export.
- Download the CSV. Open in Excel or Sheets to edit, dedupe, or analyze.
- After editing, you can re-import the modified CSV via Import → CSV → upload.
- If you don't want to keep the contacts in Google, you can delete them after exporting (Select all → Delete).
Note: Google's converter is the highest-fidelity free option. Photos are preserved (linked to Google, not embedded in CSV). Multi-value fields (multiple phones, emails) are flattened into separate columns: 'Phone 1 - Type', 'Phone 1 - Value', 'Phone 2 - Type', 'Phone 2 - Value', etc.
Method 3: Convert with Python vobject (best for programmatic and batch)
Python is the right tool for scripted contact migration, custom field mapping, or processing very large VCF files (10,000+ contacts).
- Install: `pip install vobject`.
- Basic conversion script: `import vobject, csv; with open('contacts.vcf') as f: vcards = list(vobject.readComponents(f.read())); fields = ['fn','email','tel','org']; with open('out.csv','w', newline='') as out: writer = csv.writer(out); writer.writerow(fields); [writer.writerow([getattr(v, k, '') and getattr(v, k).value for k in fields]) for v in vcards]`.
- For multi-value fields (multiple phones per contact), iterate `v.tel_list` instead of `v.tel`.
- For custom field mapping (e.g., split work and home phones into separate columns), check `tel.params.get('TYPE')` for each tel entry.
- For very large VCF files, parse incrementally with `vobject.readComponents()` (a generator) instead of loading the whole file.
Note: vobject is the most flexible Python option for VCF parsing. The simpler `vcard` library exists but is less actively maintained. For Pandas-friendly output, write directly to a DataFrame and use `df.to_csv()`.
Method 4: Convert VCF to CSV via Outlook (paid, but polished)
If you have Microsoft Outlook, importing VCF and re-exporting as CSV is straightforward.
- Open Outlook → File → Open & Export → Import/Export.
- Choose 'Import a vCard file (.vcf)' → next → select your .vcf → contact(s) appear in Outlook Contacts.
- If multiple contacts: Outlook may import only the first (depending on version) — check after import. For multi-contact VCF, you may need to split first.
- After import, File → Open & Export → Import/Export → 'Export to a file' → CSV → choose Contacts folder → save.
- The CSV opens in Excel with Outlook's column conventions ('First Name', 'Last Name', 'Email Address 1', etc.).
Note: Outlook's VCF import is sometimes unreliable for multi-contact VCFs (it imports only the first). For better fidelity with multi-contact VCFs, use Google Contacts or Python.
Method 5: Convert VCF to CSV using Mac Contacts (free, no install)
macOS's Contacts app handles VCF natively but doesn't directly export to CSV — you go through a roundabout path.
- Open Contacts app → File → Import → select your .vcf. Contacts imports all entries.
- Contacts doesn't have direct CSV export. Workaround: select all contacts (Cmd+A) → drag-drop into a new TextEdit document. TextEdit gets formatted text.
- Better: install AddressBook to CSV (free utility) or use vCard to CSV converter apps.
- Or: re-export from Contacts as VCF (File → Export → vCards), then use Python or Google to convert that VCF to CSV.
- Easiest free path on Mac: Method 2 (Google Contacts in browser) — no install required.
Note: Contacts.app is fine for VCF management but lacks CSV export. For Mac-native CSV export, use Google Contacts via Safari instead.
When you need to convert VCF to CSV
- 1
Bulk-importing contacts to a CRM (Salesforce, HubSpot, Pipedrive)
Every CRM accepts CSV import. Export your phone contacts as VCF, convert to CSV, map columns to your CRM's fields, import. Saves hours vs entering each contact manually.
- 2
Deduplicating a contact list with thousands of entries
Open the CSV in Excel/Sheets → sort by email → highlight duplicates with conditional formatting → manually merge or delete. Faster than dedup tools that work on VCF directly.
- 3
Migrating contacts between phones or accounts
Export from old phone as VCF → convert to CSV → import to new phone via Google Contacts or iCloud. The CSV step lets you clean/normalize before importing to the new system.
- 4
Building a mailing list from your contacts
Export to CSV → filter by criteria (e.g., 'all contacts in NYC' or 'all customers tagged VIP') → import to Mailchimp, ConvertKit, or any email marketing tool that accepts CSV.
- 5
Analyzing your contact graph
Pivot tables, frequency counts, network graphs — once contacts are in CSV/Pandas, you can answer questions like 'how many of my contacts work at FAANG companies' or 'what % of my emails go to Gmail vs Outlook'.
Troubleshooting common VCF to CSV problems
Multi-value fields (work and home phones) end up in one column with bad delimiter
Standard CSV exporters separate multi-value vCard fields into numbered columns: 'Phone 1', 'Phone 2', etc. If your converter put them in one column with a weird delimiter, use Google Contacts (Method 2) which handles this correctly. Or use Python (Method 3) and iterate `v.tel_list` to control output structure.
Special characters (accents, Unicode) appear as ?? or boxes in Excel
Encoding issue. Save the CSV with UTF-8 BOM (so Excel auto-detects encoding): in Python, use `encoding='utf-8-sig'`. Or in Excel: Data → Get External Data → From Text → set 'File origin' to 65001 (UTF-8). Google Contacts exports in UTF-8 by default — Excel may interpret as ANSI; explicit import with UTF-8 setting fixes it.
Photos are missing or showing as Base64 strings
Expected. CSV doesn't support binary data, so converters strip embedded photos or include them as unwieldy Base64 strings. To preserve photos: use Google Contacts (which keeps photo URLs/references in the user's Google account, not embedded in the CSV). For local archival, keep the original VCF as the canonical photo storage.
Outlook only imports the first contact from a multi-contact VCF
Older Outlook versions only handle single-contact VCFs. Two solutions: (1) Split your VCF into individual files (one contact per .vcf) using a Python script, then bulk-import in Outlook. (2) Use Google Contacts as an intermediate: import VCF to Google → re-export as CSV → import CSV to Outlook (which handles multi-row CSV fine).
Custom fields (X-CUSTOM-* in vCard) are dropped
Most converters only handle standard vCard fields and ignore X-prefixed custom fields. To preserve: use Python with vobject and explicitly check `for child in v.contents.items(): if child[0].startswith('x-')`. Custom fields go into a 'Custom Fields' column or separate columns named after the field.
Birthday format is inconsistent across contacts
vCard allows multiple BDAY formats: '1985-03-15', '19850315', '--03-15' (no year, just month/day). Excel may interpret these inconsistently. Normalize during conversion — Python: parse BDAY, output as ISO format YYYY-MM-DD. For analysis, this is essential to enable date arithmetic.
Converted CSV shows scientific notation for phone numbers
Excel's auto-detection treats long numeric strings as numbers and converts to scientific notation (1.23E+10). Open as Text instead: in Excel, Data → Get External Data → From Text → set the phone column to 'Text' format. Or import to Google Sheets which handles long numbers as strings by default.
Why convert VCF to CSV?
VCF and CSV are the two essential contact formats — VCF for phones and email clients, CSV for spreadsheets and data tools. Converting between them unlocks bulk operations that would be tedious one contact at a time: dedup, normalization, CRM import, mailing list building, contact graph analysis.
The conversion is mostly mechanical for standard fields (name, phone, email) but the details matter. Multi-value fields (multiple phones per contact) need flattening. Encoding has to be UTF-8 for international names. Photos can't transfer (CSV is text-only). Custom vCard fields often get dropped.
Google Contacts is the highest-fidelity free option for occasional conversion. Python with vobject is the right tool for scripted, repeatable, custom-mapped conversion. The browser tool is the right tool for one-off conversion of sensitive contact lists you don't want to upload anywhere.
Your files never leave your device
FormatDrop runs the conversion engine entirely inside your browser using WebAssembly. No file upload. No server. Nothing stored. You can verify this by opening DevTools → Network tab and watching: zero upload requests.
Frequently asked questions
Is converting VCF to CSV free?
Will my photos transfer from VCF to CSV?
Best free tool for VCF to CSV?
How do I split a multi-contact VCF into individual files?
Can I convert VCF to CSV on iPhone?
How do I import the CSV back to my phone?
Why does my CSV have so many columns?
Will VCF to CSV preserve groups/labels?
No account. No upload. Works in any browser.