Blog
vCard files explained: what is inside a .vcf and why 3.0 still wins
The format every phone imports, line by line — escaping, folding, the version question, and how much of it fits in a QR code.
By Wasim Idrishi · Updated · 4 min read
A .vcf file is plain text with a rigid shape. Every contact you have ever received as an attachment, every "add to
contacts" button that worked, and every business-card QR code that put a name in your phone without a network
connection is this:
BEGIN:VCARD
VERSION:3.0
N:Nair;Priya;;;
FN:Priya Nair
ORG:Rana Motors
TITLE:Service Manager
TEL;TYPE=CELL,VOICE:+919876543210
EMAIL;TYPE=INTERNET,PREF:priya@example.com
URL:https://example.com
REV:2026-09-05T09:12:44Z
END:VCARD
Ten lines, CRLF endings, and a phone will import it.
The properties that matter
N is the structured name, and its five semicolon-separated fields are always in this order: family name, given
name, additional names, prefixes, suffixes. Trailing empty fields still need their semicolons — N:Nair;Priya;;; is
correct and N:Nair;Priya is not.
FN is the formatted display name, and it is the one apps show. It is required in 3.0, and skipping it is the most
common reason a card imports with a blank or mangled name.
TEL and EMAIL carry type parameters. TYPE=CELL,VOICE is the mobile; TYPE=WORK,VOICE is the desk phone;
PREF on an email marks it as the preferred one. Phones use these to label the entries, so a card with three
untyped numbers imports as three identical rows.
ADR has seven semicolon-separated fields — post office box, extended address, street, locality, region, postal
code, country — and the first two are almost always empty, which is why real address lines start with two
semicolons.
REV is a timestamp saying when the card was last changed. Some clients use it to decide whether an incoming card
is newer than the one they already have, which makes it worth writing even though nothing enforces it.
The two rules that break files
Escaping. Inside a value, a backslash, semicolon or comma must be escaped with a backslash, and a line break is
written as the two characters \n. A job title of Head of Sales, EMEA must be written as Head of Sales\, EMEA,
or the comma is read as a field separator.
Folding. A line longer than 75 octets is split, with continuation lines beginning with a single space. The counting is in bytes, not characters, so a name in Devanagari or Arabic folds much sooner than a Latin one of the same visual length. Importers that mishandle folding are the reason long addresses sometimes arrive truncated.
vCard Generator
Open the full toolvCard in a QR code, and where it stops working
A QR code can carry the vCard text directly. Scanners recognise the BEGIN:VCARD prefix and offer to save the
contact with no network involved, which is the format's superpower at a conference with no signal.
The cost is size. A minimal card of name, mobile, email and company runs to roughly 150 to 250 bytes, which at error correction level M is a version 9 to 11 symbol — 53 to 61 modules a side. Printed at 3 cm that gives you modules of about half a millimetre, which is at the edge of what an ordinary phone camera reads reliably in poor light.
Add a postal address, a note and a second phone number and the symbol grows past what belongs on a business card at all.
| What you encode | Bytes | Result |
|---|---|---|
| Name, mobile, email | about 130 | Dense but printable at 3 cm |
| Add company and job title | about 200 | Version 10 or so, print at 3.5 cm |
| Add a postal address and note | 350 and up | Too dense for a card |
| A short link to a page with the vCard | 21 | Version 2, comfortable at 2 cm |
That last row is the design decision. A link-based QR needs a network, and in return it stays scannable at a small
size and keeps working when your number changes. On gc.mw a claimed name gives you both surfaces: gc.mw/@name for
the page and gc.mw/@name.vcf for the contact file the page hands over, generated server-side from the card's own
fields so anything you have marked private never leaves.
A checklist before you print
Write both N and FN. Escape commas and semicolons in titles and company names. Type your phone numbers so they
import with labels. Include REV. Then import the file into an iPhone, an Android phone and Outlook before it goes
anywhere near a press — the three of them disagree about enough that testing on one proves nothing about the others.
Questions people ask
Should I use vCard 3.0 or 4.0?
3.0 for anything you hand to the public. Version 4.0 (RFC 6350) is the newer standard and is cleaner, but 3.0 (RFC 2426) is what iOS, Android, Outlook and Gmail all import without argument, and it is what QR scanners have been tested against for fifteen years. Use 4.0 only when you control both ends.
Why does my vCard show the name in the wrong order?
Because N and FN do different jobs. N is structured — last name, first name, middle, prefix, suffix, separated by semicolons — and FN is the display name as a single string. Apps use FN when they have it and fall back to parsing N when they do not. Always write both.
Can a whole contact fit in a QR code?
A short one, yes. Name, one phone, one email and a company is usually 150 to 250 bytes, which is a version 9 to 11 symbol — dense, but scannable at business-card size if it is printed sharply. Add an address, a note and a photo and you are past what anybody should print on a card. That is the point at which a QR code pointing at a page beats one containing the data.
Why does a semicolon in my job title break the file?
Because semicolons separate the fields inside a property. A literal semicolon, comma or backslash in a value must be escaped with a backslash, and a line break becomes the two characters backslash-n. Get it wrong and importers either truncate the value or reject the card.
Does a .vcf work offline?
Yes, and it is the format's best property. A QR code that encodes the vCard text itself needs no network at all — the phone reads the text and offers to save the contact. A QR code containing a link does not, which is the trade you make in return for being able to change your details later.
Sources
- RFC 2426 — vCard MIME Directory Profile (vCard 3.0) — checked 5 September 2026
- RFC 6350 — vCard Format Specification (vCard 4.0) — checked 5 September 2026
Keep going
Try it with your own link
Paste a long link and get a 10-character gc.mw link with a QR code. No account needed for 30 days; free forever with one.