CSV to VCF
BetaTurn a contacts spreadsheet into one .vcf that iPhone, Android and Google Contacts import. Columns are matched by name and you can fix the mapping. vCard 3.0 or 4.0, made in your browser on this page.
- Free, no sign-up
- REST + MCP
- Updated
- Reviewed by Olgun Ozoktas
3.0 imports into iPhone, Android and Google Contacts. Choose 4.0 only when the destination asks for it.
One card per contact will appear here..
How to Convert CSV to VCF
-
Save the contacts sheet as CSV
In Google Sheets use File, Download, Comma-separated values. In Excel use Save As and choose CSV UTF-8 so accented names survive. -
Upload the .csv file or paste its text
The separator is detected from the header row, so comma, semicolon and tab files all work. -
Check the detected columns under the output
Choose Adjust columns to point a contact field at a different header or to map a column the page did not recognise. -
Keep vCard 3.0 for the widest import support, or choose 4.0 if the destination asks for it, then download contacts.vcf
-
Import the file
On an iPhone, tap the .vcf attachment in Mail or Messages and follow the prompt to add the contacts. In Google Contacts on the web, choose Import, select the file and confirm.
Common Use Cases
Loading a customer, event or team list into a phone before a trip or a conference
Moving contacts cleaned in a spreadsheet back into iPhone, Android or Google Contacts
Sharing a team directory as one file anyone can import
Round-tripping an address book
Turning a CRM or mailing-list export that only offers CSV into contacts a phone accepts
Why Use Our CSV to VCF Converter?
vCard is the contact format behind every address book. RFC 2426 defines vCard 3.0 and RFC 6350 defines vCard 4.0, and a .vcf file can hold any number of cards one after another, which is what lets one file carry a whole list. CSV to VCF writes one BEGIN:VCARD to END:VCARD block per spreadsheet row, with the structured name (N), the display name (FN), company, job title, emails, phones, a home address, website, note, birthday and UID whenever the sheet has those columns.
Columns are matched by name after ignoring case, spaces and punctuation, so Full Name, full_name and FullName are one column. The name table covers common spreadsheet headers, the headers Google Contacts and Outlook exports use, and the headers FindUtils VCF to CSV writes, which is why a round trip through both pages brings names, emails, phones and addresses back to where they started. Anything the matcher gets wrong can be corrected in the column map.
Values are escaped as the standard requires, so a comma or a semicolon inside a company name does not split the field, and long lines are folded at 75 octets with the continuation indented by one space. A multi-line note keeps its line breaks. vCard 3.0 is the default because phones and Google Contacts import it most reliably; vCard 4.0 writes phone numbers as tel: URIs.
How it compares
Many CSV-to-vCard converters ask you to upload the contact list, which is a lot to hand over for a file of names, numbers and addresses. This page converts in the browser, recognises the column names Google Contacts, Outlook and FindUtils VCF to CSV use without any setup, and lists every row it skipped and why.
CSV to VCF Tips
- Every card needs a name, an email or a phone. A row with none of them is skipped and listed by row number, so a stray totals row does not become an empty contact.
- Separate First Name and Last Name columns are better than one Name column. They fill the structured N property that phones sort by, and the display name is built from them.
- Phone, Mobile and Cell columns are written as a mobile number, Work Phone as work and Home Phone as home. Numbers are kept exactly as typed, so use international format such as +44 20 7946 0000 for contacts you call from abroad.
- The file is written as UTF-8, so accented and non-Latin names come through. If Excel already mangled them, re-save the sheet as CSV UTF-8 before converting.
- Photos are not written. A CSV has no reliable way to carry an image, and a card without a photo imports everywhere.