User Rating 0.0
Total Usage 0 times

Drop CSV file here or browse

Supports .csv files • Max recommended: 50,000 rows

Is this tool helpful?

Your feedback helps us improve.

About

Migrating contacts between systems (CRM, phone, email client) demands format fidelity. A malformed vCard file causes silent data loss: phone numbers assigned to wrong fields, truncated names, dropped email addresses. This converter parses CSV input compliant with RFC 4180 (handling quoted fields, embedded commas, escaped double-quotes) and produces vCard 3.0 output per RFC 6350. You control the column-to-field mapping explicitly. The tool validates EMAIL fields against RFC 5322 patterns and TEL fields for plausible digit counts. It does not guess. It does not auto-correct. You verify the preview table, then export.

Limitations: this tool processes structured CSV only. It will not parse fixed-width text or nested JSON. Binary photo embedding (Base64 PHOTO field) is not supported. vCard output uses UTF-8 encoding with line folding at 75 octets per spec. For files exceeding 10,000 rows, expect a brief processing delay. Pro tip: always check that your source CSV uses consistent quoting. A single unescaped quote character will shift every subsequent column.

csv to vcf csv to vcard contact converter vcf converter vcard generator csv contacts export

Formulas

The converter maps each CSV row Ri to a vCard block. The mapping function M transforms column index j to vCard property P:

Vi = vCard(M(Ri)) = BEGIN:VCARD + nj=0 Pj:Ri,j + END:VCARD

Where Vi is the vCard output for row i, M is the user-defined column mapping, Ri,j is the cell value at row i column j, Pj is the vCard property assigned to column j, and n is the total number of mapped columns.

CSV field parsing follows RFC 4180. A field is quoted if it begins with ". Within a quoted field, a literal double-quote is escaped as "". The parser state machine uses three states: FIELD_START, QUOTED, and UNQUOTED. Transitions occur on encountering delimiter d (comma, semicolon, or tab), quote character ", or newline \n. Line folding in vCard output splits any property line exceeding 75 octets by inserting CRLF followed by a single space character.

Reference Data

vCard FieldProperty NameExample ValueRequiredCommon CSV Headers
Full NameFNJane DoeYesName, Full Name, Display Name
Structured NameNDoe;Jane;;Dr.;YesLast Name + First Name
EmailEMAIL[email protected]NoEmail, E-mail, Email Address
Phone (Work)TEL;TYPE=WORK+1-555-0100NoWork Phone, Business Phone
Phone (Cell)TEL;TYPE=CELL+1-555-0101NoMobile, Cell, Cell Phone
Phone (Home)TEL;TYPE=HOME+1-555-0102NoHome Phone
OrganizationORGAcme CorpNoCompany, Organization, Org
TitleTITLEEngineerNoTitle, Job Title, Position
Address (Work)ADR;TYPE=WORK;;123 Main St;City;ST;12345;USNoAddress, Street, City, State, Zip
Address (Home)ADR;TYPE=HOME;;456 Oak Ave;Town;CA;90210;USNoHome Address
WebsiteURLhttps://example.comNoWebsite, URL, Web
BirthdayBDAY1990-05-15NoBirthday, DOB, Birth Date
NoteNOTEMet at conference 2024NoNotes, Note, Comments
NicknameNICKNAMEJDNoNickname, Alias
RoleROLEProject ManagerNoRole, Department Role
CategoriesCATEGORIESClient,VIPNoCategory, Group, Tags
RevisionREV2024-01-15T10:30:00ZAutoGenerated automatically
UIDUIDuuid-stringAutoGenerated automatically

Frequently Asked Questions

The parser implements RFC 4180 compliant quoted-field parsing. If a cell value is wrapped in double quotes, commas and newlines within are treated as literal characters, not delimiters. A double-quote inside a quoted field must be escaped as two consecutive double-quote characters (""). If your CSV file does not follow this convention, the parser will misalign columns. Check your export settings in the source application.
The output uses vCard version 3.0 (RFC 2426), which is the most widely supported version across devices and applications including iOS Contacts, Android, Outlook, and Thunderbird. Version 4.0 (RFC 6350) introduced minor property changes but has inconsistent client support. The converter adds VERSION:3.0 to every card and generates proper N (structured name) and FN (formatted name) properties, both mandatory in v3.0.
Yes. The converter provides separate mapping slots for Street, City, State/Region, Postal Code, and Country. These are assembled into the ADR property using the vCard structured value format: PO Box;Extended;Street;City;Region;Postal Code;Country. If any component column is unmapped, that position is left empty (double semicolon). Both WORK and HOME address types are supported independently.
Unmapped columns are silently ignored during export. They remain visible in the preview table but produce no output in the VCF file. This is intentional - CSV files often contain internal IDs, timestamps, or metadata irrelevant to contact data. No data is lost from the original file; only mapped fields are written.
Auto-detection performs case-insensitive fuzzy matching against a dictionary of 80+ common header variants. For example, headers like "First Name", "fname", "first_name", "Given Name" all resolve to the vCard N (given name) component. Email columns are validated against RFC 5322 simplified pattern. Phone columns are identified by headers plus digit-density analysis (>60% digit characters). The algorithm assigns confidence scores and only maps when confidence exceeds 70%. You can override every auto-detected mapping.
There is no hard-coded limit. The tool processes files in the browser using chunked parsing. Files under 5,000 contacts convert nearly instantly. Files between 5,000 and 50,000 contacts may take several seconds, with a progress indicator displayed. Beyond 50,000 rows, memory consumption depends on the browser. Chrome handles up to ~100,000 rows comfortably. For extremely large datasets, consider splitting the CSV file beforehand.
Yes. Email fields are checked against the pattern: local-part@domain with standard character restrictions. Phone fields are checked for a minimum of 7 digits after stripping formatting characters (+, -, spaces, parentheses). Invalid values are flagged with a warning icon in the preview table but are still included in the export - the tool warns but does not censor. You can review all warnings before downloading.