b2KIT

vCard Viewer & Editor

View and edit vCard (.vcf) contact files with photo display and field editing.

Tested tool guide Tested browser tools Checked August 16, 2026

What vCard Viewer & Editor does, with a checked example

This page parses a vCard (.vcf) file - the interchange format for phone and email address books - and shows every stored field as an editable form: name, phones, emails, addresses, org, notes, and the contact photo. Paste the text or load the file; each BEGIN:VCARD block becomes a card you can edit and re-export. The usual surprise: one .vcf is rarely one contact - address-book exports routinely pack hundreds of cards into a single file, and long lines are folded at 75 octets with a leading space, so raw text looks mangled but parses cleanly.

Worked example

A concrete input and expected output from the current implementation.

Input

BEGIN:VCARD
VERSION:3.0
FN:Ada Lovelace
N:Lovelace;Ada;;;
TEL;TYPE=CELL:+44 20 7946 0958
EMAIL:[email protected]
END:VCARD

Expected output

One card renders: name Ada Lovelace (from FN), structured name Lovelace / Ada (from N), phone +44 20 7946 0958 with type CELL, email [email protected], format VERSION 3.0, and an empty photo area.

The card has five properties and the display is a direct transcription of them: FN supplies the display name, N the split surname and given name, TEL and EMAIL their values with the TYPE parameter kept as the phone label, and no PHOTO line means no photo. VERSION tells the parser which dialect to apply.

How the result is produced

1

Parsing the file

This tool reads pasted or loaded text as a sequence of BEGIN:VCARD...END:VCARD blocks, one card each - an address-book export of 1,000 contacts becomes 1,000 cards. It unfolds folded lines (content split at 75 octets and continued with a leading space), separates each property's parameters from its value, and decodes payloads such as base64 photos and vCard 3.0 quoted-printable text.

2

Editing and export

Edits map onto the card's properties, not free text: changing the formatted name updates the FN property, a new phone number adds a TEL line with its own TYPE parameter, and removing a field deletes its line. Export re-serializes each card with its VERSION property intact, so the file keeps the dialect the address book it came from expects.

Good uses

  • Inspect a .vcf received by email or exported from one account before importing it into another: see every field the card actually carries - typed phones, emails, addresses, birthday, notes, photo - instead of what the importer's preview chose to show.
  • Repair a contact: correct a mistyped phone digit, add a missing email, or delete an outdated address, then export the corrected card and reimport it where the original came from.
  • Diagnose a bad import: when a name arrives mangled or blank, open the source card and check whether the display name exists only in FN, whether the name field is quoted-printable encoded, and whether the card is truncated.

Limits and checks

  • One file, many cards: a .vcf holds a sequence of cards, and exports from Outlook, iCloud, and backup tools routinely bundle the whole address book. The file is not the contact - edit with that in mind.
  • FN vs N: the displayed name comes from FN, while N carries the structured surname and given parts. A card can have FN but an empty N, and your phone book builds its list from whichever of the two its importer prefers - so the name shown here may not be the name that lands there.
  • Encoding and photos: vCard 3.0 stores non-ASCII text as quoted-printable or a declared charset, so mojibake present in the source shows up here identically - the fix belongs in the file that generated it. And a PHOTO may be an external URI rather than inline data, which cannot render offline.

Common questions

Can I edit a contact that came in a file with hundreds of cards?

Yes - each BEGIN:VCARD block is a separate card, and you edit cards one at a time while the rest of the file is left untouched. All parsing happens locally in the browser, so nothing is uploaded. The tool hands back a file in the same multi-card form, ready to reimport where the original export came from.

Why is the photo area empty even though my file has a PHOTO line?

Most often the file has no PHOTO property at all - the picture you remember lives in the address book, not in the card. When PHOTO exists, it is either inline base64 (which this page decodes) or a URI such as PHOTO;VALUE=URI:https://..., which needs a network fetch. Truncated base64 also fails to decode; in those cases the image simply does not render.

References and verification

The example and behavioral notes were checked against the browser implementation. Standards and primary references below define the relevant format, formula, or platform behavior.

Related Tools