👤CSV→VCF

Text to VCF Converter — From a Pasted List to a vCard File

Turn a contact list that lives as plain text into a .vcf (vCard) file right here in the browser. Paste lines copied from WhatsApp or Telegram, an email signature list, a Notes app, or a .txt export from an old phone or CRM no upload, no server, no copy of your address book sitting in someone's cloud. Mapping, preview and download all run on your device.

👤
Written by Casey Marlin · Last updated
This update: pasted-list parsing re-tested with comma, semicolon, tab and hyphen separators

What the text needs to look like

One contact per line. That is the only hard rule. Fields on a line can be separated by a comma, a semicolon, a tab, a pipe, or a spaced hyphen ( - ). You do not have to get the column order right up front — after parsing, Step 2 lets you map each column to a vCard field (name, phone, email, company, and so on). A header row is optional; pasted lists usually do not have one, so the converter defaults to treating every line as a contact and labels the columns Column 1, Column 2…

Per-line delimiter order for pasted contacts: Tab, then semicolon, then comma, then pipe, then a spaced hyphen; first match on that line wins so mixed separators in one paste still parse

These four lines all parse, each with a different separator:

John Doe, +1 555 0100, john@example.com
Jane Smith; +44 20 7946 0958; jane@example.co.uk
Li Wei	+86 138 0013 8000	li.wei@example.cn
Ana Costa - +55 11 98765 4321 - ana@example.com.br

Copy them from a Notes app, a WhatsApp or Telegram chat, an email thread, a CRM dump saved as .txt, or a list you typed yourself. Blank lines are skipped. If a line has only one field and contains - , that line is split as a fallback so chat-style lists still work without you cleaning them first.

SettingDefaultWhy
First line is a header rowUncheckedPasted lists usually have no headers; columns are labelled Column 1, Column 2…
OutputOne .vcf with every contactWhat Android, iPhone and Google Contacts expect for a bulk import
Zip of one .vcf per contactOptionalFor CRMs and email-signature tools, not for the phone
Phone numbersKept as typedPlain text does not strip a leading + or a leading zero

Phone numbers: keep the + and the leading zero

Plain text is kinder to phone numbers than a spreadsheet. Excel's General format quietly drops a leading plus, eats a leading zero (so a UK number 07911 123456 becomes 7911123456) and will even turn a long number into scientific notation. None of that happens when the source is a pasted line: what you type is what goes into the vCard. That is a real advantage over the Excel route if your list never lived in a workbook.

International format with a + and a country code is the safest value to put in a vCard. +44 20 7946 0958 imports cleanly on an iPhone in the US and on an Android in Germany; 020 7946 0958 is ambiguous once it leaves the UK. If your list already has the +, leave it. If it has a leading zero and you know the country, consider rewriting those numbers before you parse — but the converter will not strip them for you, which is the point.

Spaces, dashes and brackets in a number are fine; phones ignore them on import. Do not wrap a number in quotes unless the rest of the line is quoted CSV — a bare +1 555 0100 is the right thing to paste.

Names with commas inside

Western lists often write a name as Doe, John. If your separator is also a comma, that line becomes three fields (Doe / John / the phone) and the mapping will look wrong. Two ways out: switch the separator on that list to a semicolon or a tab (Doe, John; +1 555 0100), or quote the field ("Doe, John", +1 555 0100). Quoted CSV is what the parser already understands.

If every line is Last, First, phone, you can also leave the comma separator and map column 1 to Last Name and column 2 to First Name after parsing. The converter does not assume a name is a single column — that is what the mapping step is for.

Choosing the vCard version

vCard 3.0 is the default and the right choice for almost everyone. Android, iPhone, Google Contacts and iCloud all import it. vCard 2.1 exists for old feature phones, some car head units and a handful of SIM tools; non-ASCII names are quoted-printable encoded automatically. vCard 4.0 (RFC 6350) is for modern apps and CRMs that specifically ask for it — some older Outlook builds and phones reject it.

If you are unsure, leave 3.0. The vCard format reference on this site covers the differences, escaping, and which property names each version uses.

Getting the .vcf onto your phone

Once you have the file, the import steps are the same as for a CSV conversion: the phone does not care how the vCard was built. On iPhone, the reliable path is iCloud.com → Contacts → the gear menu → Import vCard, then wait for iCloud to push the contacts to the device. AirDrop of a large .vcf is flaky. Step-by-step: CSV to vCard on iPhone.

On Android, open the .vcf from Files or Drive, or import it in Google Contacts (the web app, under Import). Details: CSV to vCard on Android.

A single .vcf with every contact is what both platforms expect. The zip-of-individual-cards option is for CRMs and signature tools, not for the phone. The same client-side converter also sits on the CSV to VCF page if your list is already a spreadsheet export.

Text to VCF — FAQ

  • Is my pasted contact list uploaded to a server?

    No. The list is parsed in your browser with JavaScript; there is no upload endpoint at all. You can paste the lines, disconnect from the internet, and still download the .vcf. Most “text to VCF” converters instead POST the whole list — names, numbers, emails — to a server and email you a file.

  • Which separators does the converter understand?

    Comma, semicolon, tab and pipe are auto-detected. If a line comes out as a single field and contains “ - ” (the way chat logs and Notes lists often look), that line is split on that marker as a fallback. You do not have to normalise the whole list to one delimiter first.

  • My list has no header row. What do I do?

    Leave “First line is a header row” unchecked — that is the default, because a pasted list usually has no headers. After parsing you will see Column 1, Column 2… and you map each one to a vCard field (name, phone, email, company) yourself. Tick the box only when the first line really is First Name, Phone, Email or similar.

  • How should I format phone numbers in the pasted text?

    Leave the + and any leading zero in place. Plain text does not strip them the way Excel’s General format does, which is the main reason to convert from a pasted list rather than via a spreadsheet. International form with a country code (+44…, +1…) is the safest value to put in a vCard that will be imported on a phone.

  • Do I get one .vcf for everyone, or one file per contact?

    The default is one .vcf file with every contact inside — that is what Android, iPhone and Google Contacts expect for a bulk import. Choose “Zip of one .vcf per contact” under Output if a CRM or an email-signature tool wants individual cards.

  • How many lines can I paste?

    Up to 50,000 contact rows, the same cap as a CSV or Excel drop. That limit keeps a huge paste from freezing the tab; split a bigger address book into batches.

  • Can I convert a .txt file instead of pasting?

    Yes. Switch to “Upload a file” and drop the .txt (or .csv / .tsv). Upload parses the whole file as a CSV: one separator throughout, and a header row is expected — tick “My file has no header row” if the first line is already a contact. For mixed separators, spaced hyphens, or chat-style lists, paste is the path that handles them.

Tested with pasted lists and .txt files using comma, semicolon, tab, pipe and hyphen separators. Last checked: August 26, 2026. About this site