👤CSV→VCF

VCF Editor — Fix Names, Numbers and Emails, Then Download

Open a .vcf in the box below. Each contact lands in the same form the VCF creator uses — names, phones, emails, address, notes — so you can fix a swapped last name or a missing plus on a number and download the file again. The whole pass runs in this tab: nothing is uploaded and there is no signup. Photos, custom X- fields, birthdays, and a third or later phone or email per contact are not carried over; the page tells you when that happens.

👤
Written by Casey Marlin · Last updated
This update: vCard → form mapping covered by scripts/test-editor.mjs; the shared generator's 2.1, 3.0 and 4.0 output is covered by scripts/test-convert.mjs
VCF editor workflow: drop a .vcf, edit full name, first, last, phones, emails, company, job title, address, website and notes in a form, download an updated vCard; PHOTO, LOGO, BDAY and extra phones are dropped

Open a .vcf to edit

Fields load into the form below. Photos, custom X- fields and BDAY are not carried over.

Contact 1

3.0 — Android, iPhone, Google Contacts, iCloud. 2.1 old phones/SIM tools · 3.0 Android/iPhone/Google/iCloud · 4.0 modern apps.

0 contacts · 1 skipped (no name, phone or email)

100% in your browser — your contacts never leave your device

What you can edit

When you open a .vcf, each BEGIN:VCARD block becomes one form card. The fields you can edit are exactly these: full name, first name, last name, mobile phone (the first TEL; its type is read from the file as cell, home, work or other and kept), phone 2 (with a type select: cell, home, work, fax, main, other), email, email 2, company, job title, street, city, state/region, ZIP, country, website and notes.

Middle name is read from the N property (the third semicolon-separated part) and written back on re-save, but it is not shown on the form. If the original card had a middle name, it is still in the downloaded file.

You can add a row with "+ Add another contact" or remove one with Remove (the last remaining card cannot be removed). The live preview under the form is the output of the same generator the creator uses — the exact bytes that Download .vcf will save. A row is kept if it has a name, a phone (mobile or phone 2) or an email (first or second); empty cards are skipped, not written as blank vCards.

What is lost when you re-save

Re-save runs the same generator the VCF creator uses. It writes BEGIN:VCARD, VERSION, N, FN, ORG, TITLE, every phone as TEL with its type, every email as EMAIL, ADR, URL, NOTE and END:VCARD. It does not write PHOTO, LOGO, BDAY or any X- property.

That means: embedded photos and logos are dropped. Custom X- properties are dropped, including Apple Address Book item1.X-ABLabellines that tag a number as "iPhone" or "home". Birthdays are parsed so the page can warn you, then omitted on write. A third or later phone number or email address per contact is dropped; when that happens the page shows a count. A TEL parameter the parser does not map — FAX or PREF on its own — is read as other and written back as VOICE. The one address is always written as a home address (ADR;TYPE=HOME), whatever type it had. Properties the parser does not read — NICKNAME, GEO, CATEGORIES, IMPP — never enter the form, so they never come back out.

If the file has photos you want to keep, this is the wrong tool. Split the file on Split VCF or read it on Open a VCF; those pages do not rewrite the cards.

vCard versions

The version select defaults to the VERSION on the first contact if that value is 2.1, 3.0 or 4.0. A missing VERSION, or a number this site does not generate, falls back to 3.0. Switching the select rewrites every card: the VERSION line and the TEL/EMAIL parameter style. vCard 2.1 writes TEL;CELL; 3.0 writes TEL;TYPE=CELL; 4.0 writes TEL;TYPE=cell. EMAIL follows the same split (2.1 uses EMAIL;INTERNET;PREF on the first address; 3.0 uses TYPE=INTERNET;TYPE=PREF; 4.0 uses PREF=1). Non-ASCII text in 2.1 is written with CHARSET=UTF-8 and quoted-printable; 3.0 and 4.0 write UTF-8 directly.

3.0 is the version to pick for Android, iPhone, Google Contacts and iCloud. Use 2.1 when an old phone or SIM tool demands it. Use 4.0 when a modern app specifically asks for it.

Typical fixes

The phone fields are free text. If an export stripped a leading plus or a leading zero, type the number the way you want it stored — +44 7700 900123 or 07700 900123. Spaces, dashes and parentheses are copied into the TEL line as-is.

If first and last names came in swapped, edit both N parts (First name and Last name) and the Full name field. FN is written separately from N, so fixing only first/last leaves the display name wrong.

If a number was stored as home and should be cell: the first phone keeps the type read from the file (cell, home, work or other) and has no select, so move that number to Phone 2, whose dropdown lets you set cell, home, work, fax, main or other. An email in the wrong slot is two independent fields — Email and Email 2. A company name typo is the Company field, written as ORG.

Re-importing the edited file

Download the .vcf, then import it the same way you would any other vCard. On iPhone or iCloud, follow the iPhone guide; on Android or Google Contacts, follow the Android guide. The steps do not change once you have the file.

Importing the same person twice creates a duplicate on most phones. Delete the old card first, or run the file through the duplicate remover before you import. Nothing on this page talks to iCloud or Google for you — the file is rebuilt in the tab; getting it onto a device is a local import. The download is one .vcf with every contact concatenated, the same shape phones already import.

VCF Editor — FAQ

  • Is my VCF file uploaded when I edit it here?

    No. The file is read with the browser File API and parsed in this tab. There is no upload endpoint and no account. You can load the page, disconnect from the network, and still open a .vcf, edit the form and download the result.

  • Does the editor keep contact photos?

    No. PHOTO and LOGO lines are detected so the page can warn you, then omitted on re-save. The generator does not write image properties. If you need the photos, use Split VCF or Open a VCF — those pages do not rewrite the cards.

  • What happens to a contact with three phone numbers?

    The first two land in Mobile phone and Phone 2. The third and any later numbers are dropped. The page shows a count, for example “1 phone number beyond the second was dropped”. Emails follow the same rule: two kept, the rest counted and dropped.

  • Can I change the vCard version while editing?

    Yes. The version select defaults to the VERSION on the first contact if it is 2.1, 3.0 or 4.0; anything else falls back to 3.0. Changing the select rewrites VERSION and the TEL/EMAIL parameter style for every card in the download.

  • Why does the first phone keep its original type but Phone 2 has a dropdown?

    The first phone’s type is read from the file and mapped to cell, home, work or other — a TEL marked only FAX or PREF comes through as other and is written back as a plain VOICE line — and there is no type select on that field. An Apple X-ABLabel such as iPhone is not one of those four, so that number falls back to cell. Phone 2 is read the same way (its fallback is work), and its select lets you set cell, home, work, fax, main or other before you download. To retype the first number, move it to Phone 2.

  • Can I edit a large address book with hundreds of contacts?

    Each contact becomes a form card. Hundreds of cards is slow to scroll and awkward to edit one field at a time. Convert VCF to CSV, edit the rows in a spreadsheet, then convert back.

  • Will re-importing create duplicates?

    On most phones, yes — importing a card for someone who is already in Contacts adds a second copy. Delete the old card first, or run the edited file through the duplicate remover at /vcf-duplicate-remover before you import.

vCard → form mapping is covered by scripts/test-editor.mjs; the generator's 2.1, 3.0 and 4.0 output by scripts/test-convert.mjs. Last checked: August 26, 2026. About this site