vCard (VCF) to CSV Converter

Batch convert contacts from VCF to CSV for spreadsheet or CRM import

Ad placeholder (leaderboard)

A vCard stores each contact as a set of labelled properties, which is great for phones but awkward for spreadsheets and CRM import wizards that expect rows and columns. This converter flattens one or many vCards into a clean CSV: one row per contact, with consistent columns for names, organisations, the different kinds of email and phone, addresses, birthdays and notes.

How it works

The converter parses every BEGIN:VCARD … END:VCARD block and, for each property, reads its name, its TYPE parameters and its value. Several details matter for getting clean output:

  • Structured values. N is split into Last and First name; ADR is split into its seven components and the meaningful parts (street, city, region, postal code, country) are joined into one readable address.
  • Type routing. EMAIL and TEL carry TYPE parameters such as HOME, WORK and CELL. The converter routes each value into the matching column — Email (Work), Phone (Mobile), and so on — falling back to an “Other” column when no type is given.
  • Quoted-printable decoding. Older exports encode accented characters with ENCODING=QUOTED-PRINTABLE (for example =C3=A9 for é). When that label is present, the bytes are decoded back to UTF-8 so names display correctly.
  • Text unescaping. vCard escapes commas, semicolons and newlines inside values with a backslash; these are unescaped so the CSV reads naturally.

The result is serialised as standard CSV: any cell containing a comma, double quote or newline is wrapped in double quotes with internal quotes doubled, exactly as spreadsheet apps expect.

The columns

Each contact row includes: Full Name, First Name, Last Name, Organization, Title, three Email columns (Home/Work/Other), four Phone columns (Mobile/Home/Work/Other), two Address columns (Home/Work), Birthday, URL and Note. Empty cells are left blank so the layout stays aligned.

Tips

  • Import into Google Sheets with File → Import → Upload, or into Excel via Data → From Text/CSV. Both detect the header row automatically.
  • If a column looks empty for a contact that clearly has the data, check the source vCard’s TYPE labels — an email with no type lands in Email (Other) rather than Home or Work.
  • Everything runs locally; nothing about your contacts is uploaded.
Ad placeholder (rectangle)