A VCF file is the universal way to move contacts between phones, email apps and computers. iPhone reads it. Android reads it. Outlook reads it. Gmail reads it. If you have a list of names and numbers somewhere and you want them on a phone, VCF is the format you want to end up with.
The problem is that most guides either push a converter tool or skip the part where things actually break. So here is what I wish someone had told me the first time. The format itself, the four ways to create a VCF file that work in 2026 and the small set of rules that decides whether your import succeeds or fails on the other end.
What a VCF file actually is
VCF stands for Virtual Contact File. The format is called vCard. It is a plain text format defined by RFC 6350, which is the IETF spec for vCard 4.0. You can open any .vcf file in Notepad and read it. There is nothing magic inside.
Here is the smallest valid vCard you can write:
BEGIN:VCARD
VERSION:3.0
FN:Maria Garcia
TEL;TYPE=CELL:+15552345678
EMAIL:maria@example.com
END:VCARD
That is it. Five lines plus the wrapper. Save it as maria.vcf, double tap it on a phone and the contact is added. A file with two contacts stacks two of those blocks back to back. Five hundred contacts, five hundred blocks. The format scales with no extra rules.
The version line matters more than people think. iPhone strictly wants 3.0 or higher. A lot of older Android exports come out as 2.1, which is why people swap a backup from an old phone and it half imports on the new one. If your file says VERSION:2.1, change it to 3.0 and most clients will read it correctly.
The four ways that actually work
I have tested all of these on real devices in the last three months. Picking the right one depends on how many contacts you have and what you are starting from.
| Method | Best when |
|---|---|
| Phone export | Contacts already on your phone, you want a backup file |
| Google Contacts export | Anything synced to a Google account, easiest for bulk |
| Excel or CSV plus a converter | List in a spreadsheet, hundreds or thousands of rows |
| Hand written in Notepad | One or two contacts, no tooling needed |
Method 1: Export from your phone
On Android, open the Contacts app, tap the menu in the top right and look for Import / Export or Manage contacts. Pick Export to .vcf file. Choose all contacts or a selection. The phone writes a single .vcf file to internal storage. Done.
On iPhone there is no built in export to file. The closest is sharing one contact at a time. For bulk you go through iCloud. Sign in at iCloud.com on a desktop, open Contacts, select the ones you want, click the gear icon and pick Export vCard.
Method 2: Google Contacts
This is what I reach for when someone hands me a phone and says move all of these to a new device. If the contacts are on a Google account, you do not need the phone. Go to contacts.google.com, sign in, tap Export on the left, pick vCard (for iOS Contacts) and download. Clean version 3.0 file, imports anywhere.
Google also auto upgrades older 2.1 files. Import a 2.1 file into Google Contacts and re export, the output is 3.0. That trick alone saves a lot of grief when migrating old Nokia or Blackberry backups.
Method 3: From Excel or CSV
This is the one most people search for. You have a list of names and numbers in a spreadsheet and you want a VCF you can send around. Three steps:
- In Excel, save the sheet as CSV (Comma delimited). Make sure your headers are clean. First Name, Last Name, Phone, Email is enough for most cases.
- Import the CSV into Google Contacts using the Import button on the left sidebar. Google will map columns to fields automatically if your headers match common names.
- Export the contacts back out as vCard. Done.
You can also do this offline using Windows Contacts at C:\Users\YourName\Contacts. It accepts CSV in and gives VCF out. Microsoft documents the Outlook variant if you live inside Office. I find Google Contacts faster for anything above ten rows.
If you want to skip a tool entirely, you can write Excel formulas that build the vCard syntax in a column and save that column as a .vcf file. Fine for a one off. More work than just using Google Contacts.
Method 4: Notepad, by hand
For one or two contacts, this is faster than any tool. Open Notepad, paste the template above, edit the values, save with a .vcf extension and pick UTF-8 encoding. Anything other than UTF-8 and accented characters land as junk on the receiving phone.
The escaping rules that break imports
This is the part nobody mentions. The vCard spec uses commas, semicolons, colons and backslashes as separators. If your contact data contains any of those characters, you have to escape them or the parser breaks halfway through the file and silently drops contacts.
\, escape semicolons as \; and escape backslashes as \\. Newlines inside a value become \n.
So a name like Smith, Jr. in the FN field is written as FN:Smith\, Jr. not FN:Smith, Jr.. An address with multiple lines becomes a single line with \n in place of the line breaks. Skip this and half your contacts look fine while the other half have truncated names or missing fields. The pattern is not random. It is whichever row had a comma in it.
Most converter tools handle escaping automatically. Hand written files do not. If you are templating vCards in code or in Excel, build the escape into the formula itself.
Common errors and what causes them
| Symptom | Cause and fix |
|---|---|
| Some contacts missing after import on iPhone | File is VERSION:2.1 with non ASCII characters. Change to VERSION:3.0 and save as UTF-8 without BOM. |
| Names show up with extra commas or partial text | Unescaped comma in the FN or N field. Replace each comma inside the value with backslash comma. |
| Phone numbers strip the plus sign or country code | TEL value has spaces or dashes. Use plus and digits only. Example: TEL;TYPE=CELL:+919876543210. |
| Photos do not appear after import | Photo was a long URL line, broken across two lines without proper line folding (a leading space on the continuation line). Either keep it on one line or fold properly per RFC 6350. |
| iPhone imports show "Unknown" for everyone | FN field is missing. FN is required in 3.0 and 4.0. N alone is not enough. |
Which version should you actually use
Stick with 3.0. It reads everywhere. 4.0 is technically better with UTF-8 by default, cleaner property syntax and useful new fields like KIND and GENDER, but adoption on phones is still inconsistent. I have seen 4.0 files where iPhone reads everything but Samsung drops the email field. 3.0 does not surprise you.
2.1 is legacy. Treat 2.1 files as inputs to convert, not outputs to keep. Open them in Google Contacts, export as 3.0 and store the 3.0 version going forward.
Sharing your VCF file
Once you have the file, getting it onto another device is the easy part. Email it as an attachment. Send it on WhatsApp or Telegram as a document, not as a contact share. Drop it in Google Drive and share the link. Tap the file on the receiving device and the OS offers to add the contacts.
For business cards, generate a QR code that links to your hosted .vcf file. The phone scanning the code downloads the vCard and offers to add it directly. That is how most modern digital business card services work under the hood.
What to do next
If you have a CSV in front of you right now, the fastest path is Google Contacts. Import, fix any mapping issues, export as vCard. Done. One or two contacts, write the file in Notepad. A phone full of contacts to back up, use the export option in your Contacts app.
The thing to remember is that VCF is plain text. You can always open the file and read it. If something is wrong, you will see it. That alone makes vCard easier to debug than any binary format ever will be.