---
title: "Merge VCF"
description: "Combine several .vcf vCard contact files into one to import. Cards are copied as written, photos included, with optional skip of exact duplicates. Files are not uploaded."
url: https://findutils.com/convert/merge-vcf/
category: convert
---

# Merge VCF

Combine several .vcf vCard contact files into one to import. Cards are copied as written, photos included, with optional skip of exact duplicates. Files are not uploaded.

**Use this tool:** [Merge VCF](https://findutils.com/convert/merge-vcf/)

## Programmatic access

- REST id `merge-vcf`: POST https://api.findutils.com/api/tools/merge-vcf/execute (reference: https://findutils.com/api/merge-vcf/)
- MCP tool `merge_vcf` on https://mcp.findutils.com (reference: https://findutils.com/mcp/merge-vcf/)

## Why Use Merge VCF?

Contacts pile up as separate .vcf files: an export from an old phone, a backup from a newer one, a Google Contacts export, cards someone mailed you. Importing them one by one works, but every import is another round of taps, and copies of the same person arrive once per file. Merge VCF puts all of those files into one merged-contacts.vcf in the order you drop them, copying each card exactly as it was written so photos and custom fields survive, and can skip the exact duplicates on the way.

## Frequently Asked Questions

### How do I merge multiple VCF files into one?

Drop all the .vcf files on this page and download merged-contacts.vcf. Every complete card from every file is copied into it, in the order of the list. Import that one file instead of importing each file separately.

### Will contact photos survive the merge?

Yes. Each card is copied line by line as it was written, so PHOTO data, custom X- fields and the vCard version stay inside their card. The line endings are kept as well: the merged file uses the line ending of the first file you add.

### How does Skip duplicates decide two cards are the same?

A later card is skipped only when its name, its phone numbers and its email addresses all match an earlier card. Names ignore letter case and extra spaces, phones compare digits only, so +1 (555) 010-2030 and +1 555 010 2030 match, and emails ignore letter case. The first copy is kept.

### Does it merge "J. Smith" and "John Smith"?

No. There is no fuzzy matching, and cards are never combined field by field. For that kind of cleanup, convert the merged file with [VCF to CSV](https://findutils.com/convert/vcf-to-csv/), fix the rows in a spreadsheet, and rebuild it with [CSV to VCF](https://findutils.com/convert/csv-to-vcf/). Photos may not survive that round trip.

### What happens to a broken or cut-off card?

A card that has BEGIN:VCARD but never reaches END:VCARD is left out of the download and counted under Incomplete refused. The cards before and after it still merge. A file with no complete card at all is marked with the reason in the list.

### Will importing the merged file replace my contacts?

No. Phones and contacts apps add imported cards to the contacts already there. If the merged file overlaps contacts you already have, use your contacts app's own duplicate or merge feature after importing.

### In what order are the contacts written?

In the order of the file list, then the order inside each file. Files you drop later join the end of the list, and removing a file takes its cards out of the merge.

### How many files can I merge?

Up to 500 files at once. Very large exports with many photos take longer to read, since everything happens in your browser tab.

### Are my contacts uploaded?

No. The .vcf files are read and merged in your browser tab and no contacts service or API is called. An address book holds other people's details, which is why it stays in the tab.

## Related Tools

- [VCF to CSV](https://findutils.com/convert/vcf-to-csv/)
- [CSV to VCF](https://findutils.com/convert/csv-to-vcf/)
- [Merge Bookmarks](https://findutils.com/convert/merge-bookmarks/)
- [Merge ICS](https://findutils.com/convert/merge-ics/)
- [Internet Shortcuts to CSV](https://findutils.com/convert/internet-shortcuts-to-csv/)
