Contact list formatter — clean, de-duplicate and export contacts

Paste contact rows from a spreadsheet, sign-up sheet or email, and the tool tidies names and emails, removes duplicates and gives you a clean table, a CSV file and a single .vcf you can import into your phone.

Live demo · real result from this tool
Use name, email, phone, company, title or ignore — in the order your columns appear.
Contacts3
Duplicates removed
1
Empty rows skipped
0

Clean contacts

NameEmailPhoneCompanyTitle
Priya Nairpriya@saffron.example+91 98450 12345Saffron Studio
Rahul Vermarahul@northwind.example+91 99000 11122Northwind Traders
Meera Shahmeera@lumen.example+91 80 4000 9999Lumen Health

Formatted list

Priya Nair — priya@saffron.example — +91 98450 12345 — Saffron Studio Rahul Verma — rahul@northwind.example — +91 99000 11122 — Northwind Traders Meera Shah — meera@lumen.example — +91 80 4000 9999 — Lumen Health

All contacts as one .vcf

BEGIN:VCARD
VERSION:3.0
N:Nair;Priya;;;
FN:Priya Nair
ORG:Saffron Studio
TEL;TYPE=CELL:+91 98450 12345
EMAIL;TYPE=INTERNET:priya@saffron.example
END:VCARD
BEGIN:VCARD
VERSION:3.0
N:Verma;Rahul;;;
FN:Rahul Verma
ORG:Northwind Traders
TEL;TYPE=CELL:+91 99000 11122
EMAIL;TYPE=INTERNET:rahul@northwind.example
END:VCARD
BEGIN:VCARD
VERSION:3.0
N:Shah;Meera;;;
FN:Meera Shah
ORG:Lumen Health
TEL;TYPE=CELL:+91 80 4000 9999
EMAIL;TYPE=INTERNET:meera@lumen.example
END:VCARD

Processed on your device — nothing is uploaded.

How to use the contact list formatter

  1. Paste your rows into Contact rows (comma, tab, semicolon or | separated), one contact per line.
  2. In Column order, list what each column holds, using name, email, phone, company, title or ignore. For example company, name, email.
  3. Tick First row is a header if your paste starts with column names, so that row is skipped.
  4. Leave Capitalise names on to fix names typed in all capitals or all lower case.
  5. Read the counts, then use Clean contacts (copy or CSV download), Formatted list or All contacts as one .vcf.

What it does and when to use it

Lists from forms, sign-ups and old spreadsheets are rarely tidy: the same person appears twice, names are in capitals, and some rows are empty. This tool fixes that in one pass and gives you a table for spreadsheets, a plain list for documents and a .vcf file for address books.

Use it before a mail merge, a label or badge run, or an import into your phone. Once the list is clean, the address label sheet and the name badge maker can print from it, and the email extractor helps when the addresses are buried in free text.

How it works

Each line is split on its separator the way CSV is read: a cell in double quotes, such as “Nair, Priya”, stays whole even if it contains the separator, and two quote marks inside it stand for one. Extra spaces are collapsed. Cells are matched to fields in the order you gave. If the email column is empty, the first cell that looks like an email address is used instead. Emails are lower-cased. Phone numbers keep only digits, +, brackets, spaces and dashes.

A row with no name, email or phone is counted as an empty row and skipped. For the .vcf, the first word of the name becomes the given name and the rest the family name. Every vCard needs a display name (FN), so a contact without a name uses the company, then the email address or phone number.

Worked examples

The preset list. Four contacts are pasted, one of them twice with different capitals and spacing. The tool reports Contacts: 3, Duplicates removed: 1 and Empty rows skipped: 0, and the first table row reads:

Priya Nair | priya@saffron.example | +91 98450 12345 | Saffron Studio

The matching vCard entry starts N:Nair;Priya;;; and includes TEL;TYPE=CELL:+91 98450 12345.

Semicolons, company first. With column order company, name, email, the row Lumen Health;dr anne-marie o'brien;ANNE@LUMEN.example becomes Dr Anne-Marie O'Brien | anne@lumen.example. A row holding only a company name is counted under Empty rows skipped: 1.

Limits and tips

  • A name written surname first, such as “Nair, Priya”, is kept as one cell, but the vCard still takes its first word (“Nair,”) as the given name. Write names given name first if you plan to import the .vcf.
  • Titles such as “Dr” are treated as the given name in the vCard. Check entries like that after import.
  • Only one phone number per contact is kept, saved as a mobile number. For a detailed card with address and website, use the vCard generator.

Frequently asked questions

Which separators can I paste?
Commas, tabs, semicolons or the | character. The tool decides for each line on its own, so rows copied from a spreadsheet (tabs) and rows typed by hand (commas) can be mixed in one paste.
How does it decide that two rows are duplicates?
By email address, compared in lower case, so JO@x.example and jo@x.example are the same person. Rows without an email are compared by name and phone together. The first row is kept and later copies are dropped.
Why did a name like McDonald turn into Mcdonald?
Capitalise names lower-cases each name and then capitalises the first letter of every word, including after a hyphen or apostrophe. That fixes "priya NAIR" but flattens McDonald or van der Berg. Untick Capitalise names if your list already has correct capitals.
How do I get the contacts into my phone?
Download "All contacts as one .vcf" and open it on your phone, or import it in Google Contacts, Outlook or Apple Contacts. Each person becomes a vCard 3.0 entry with name, organisation, title, mobile number and email.
Is my contact list uploaded?
No. The formatting runs entirely in your browser, and the CSV and .vcf files are created on your device.

Written by the ToolsRift team · Last updated

Pages are drafted with AI assistance and checked by automated tests. How we write and check pages.

Was this tool useful?

Report a problem

Start typing to search every tool.

↑ ↓ to moveEnter to openEsc to close