To remove duplicate iPhone, iCloud, or Mac contacts, start with Apple’s built-in duplicate review. If you need to keep the contact with the newest source modification date, export the contacts on a Mac and compare that date in Datablist before importing the cleaned file.

I recommend choosing the method before exporting anything. Apple’s native merge is enough for many contact lists. The CSV workflow below gives you an explicit date rule and a preview, but it is a file-based cleanup, not an ongoing synchronization between apps.

Plan distinction: basic deduplication with Datablist’s default Most Complete rule is available on the Free plan. Choosing Highest value on a property for a source date requires a paid plan.

Try Native Duplicate Removal First

On iPhone, open Contacts and use View Duplicates below My Card when it appears. Review the suggested cards before using Merge All. Apple describes the steps in its iPhone duplicate-contacts guide.

On Mac, use Card > Look for Duplicates, or select known duplicates and use Merge Selected Cards. The Mac Contacts guide explains merging and the distinction from linking cards across accounts.

Use the following workflow when those suggestions do not give you enough control over which source record survives.

Export Apple Contacts With Source Dates

Back Up Before Exporting

In Contacts on Mac, choose File > Export > Contacts Archive and save the backup outside your working CSV folder. A CSV export is not a complete Contacts archive: photos, account relationships, and unsupported fields may not survive the round trip. See Apple’s export and archive instructions.

If you want the cleanup to affect iCloud contacts, first check which account holds the cards. Contacts can display cards from several accounts together. Do not assume every card in All Contacts belongs to iCloud.

Export the Source Dates With Script Editor

Download contacts-deduplication-script-v2.scpt and open it in Script Editor on your Mac.

This exporter reads the Mac Contacts list and writes a timestamped contacts_detailed_XXXX.csv file to the Desktop. Its columns include First Name, Last Name, Creation Date, Modification Date, and labeled phone and email fields, plus fields such as address and note where available. It does not export contact photos or preserve every Contacts feature.

Script in the finder
Script in the finder

Review the script, then click Run. Allow Script Editor to access Contacts when macOS asks. The exporter does not delete or merge contact cards.

Opening the script to export metadata from the contacts app
Opening the script to export metadata from the contacts app

The script can display progress notifications if you allow them. Runtime depends on the number of contacts and your Mac.

Export progress
Export progress

When export completes, check the notification and locate the CSV on the Desktop.

Success notification for contacts export
Success notification for contacts export

Open a copy of the file and inspect several source dates, phone numbers, and email fields. A missing date should be reviewed before it becomes part of a “keep newest” decision.

The file with duplicated contacts
The file with duplicated contacts

Import and Check the Contact Fields

Open Datablist and create a collection for the exported contacts.

Datablist home page
Datablist home page

Choose Import CSV/Excel and select the working CSV, keeping your archive separate.

Datablist start page
Datablist start page

Map the name fields to Text, email fields to Email, phone fields to Phone, and Creation Date and Modification Date to Date. The date type matters: comparing date values is different from comparing strings that merely look like dates.

Contacts import and property configuration in Datablist
Contacts import and property configuration in Datablist

Use Save Property after configuring each field. Check that dates parse correctly and that the phone values have not lost meaningful digits.

How to edit property type in Datablist
How to edit property type in Datablist

Keep every field you need to compare or return to Contacts. You can skip irrelevant fields, but skipping them removes them from this cleanup’s output.

Configured properties for contacts import
Configured properties for contacts import

Inspect the imported rows. Include two known duplicate contacts in your first check so you can verify the identifier and date rule before processing the full list.

Datablist collection with duplicated Apple contacts
Datablist collection with duplicated Apple contacts

Find Matches and Select the Source Record

Choose the Matching Identifier

Open Clean > Merge duplicates. The screenshots below show an earlier interface; the current workflow separates matching, the record to keep, and field rules.

Datablist collection view and start of the deduplication process
Datablist collection view and start of the deduplication process

Start with a reliable person-level identifier, such as an email address or phone number that you know is not shared. Name alone can group unrelated people. A family phone number can also create a false match.

Duplicate identifier configuration in Datablist
Duplicate identifier configuration in Datablist

Select an appropriate comparison algorithm and processor. If an exported cell contains several identifiers, enable multiple-value matching only with the delimiter actually present in your file. Separate labeled phone columns are not automatically one combined identifier.

Duplicates processing settings for Apple contacts in Datablist
Duplicates processing settings for Apple contacts in Datablist

Run the check and inspect the groups. Exclude false matches before setting merge rules.

Datablist detected 28 duplicated Apple contacts
Datablist detected 28 duplicated Apple contacts

Keep the Newest Source Record

In Record to keep, choose Highest value on a property and select the imported Modification Date property. This selects the contact edited most recently in the source export. Do not use Datablist’s built-in Last updated rule for this purpose: it uses the item’s Datablist modification timestamp.

Master item settings for deduplicating Apple contacts
Master item settings for deduplicating Apple contacts

For example, if matching contacts have modification dates of 2026-08-12 and 2026-09-24, the September row should be selected. Check that outcome in the preview.

Use Highest value on a property with Creation Date to keep the most recently created source card. To keep the oldest source card, choose Lowest value on a property instead. Creation date alone does not tell you which phone number is correct.

Resolve Conflicting Fields

Review fields that disagree. If the newer source card is authoritative for a particular field, choose the rule that keeps that retained record’s value. Keep unique useful information from the other card when it belongs to the same person.

Conflicting properties settings for deduplicating Apple contacts
Conflicting properties settings for deduplicating Apple contacts

Do not apply one blanket rule to every conflict without checking the output. In particular, a semicolon-separated list of phones in one cell may not import as separate labeled numbers in Contacts. Preserve the separate phone and email columns you need, or resolve those fields manually.

Configured deduplication settings for Apple contacts in Datablist
Configured deduplication settings for Apple contacts in Datablist

Inspect the refreshed preview. Apply only the groups marked Ready; resolve Needs review groups separately. The master-record reference explains how selecting a surviving row differs from selecting its field values.

Auto Merge preview for Apple contacts in Datablist’s deduplication suite
Auto Merge preview for Apple contacts in Datablist’s deduplication suite

After processing, check the cleaned rows against your original CSV. Confirm that the chosen date, retained numbers, and email fields are the ones you intended to keep.

Datablist success notification for deduplicating Apple contacts
Datablist success notification for deduplicating Apple contacts

Reimport the Reviewed Contacts

Export a Cleaned CSV and Test the Import

Give the collection a recognizable name so you can distinguish the cleaned file from your original export.

In Datablist you can rename your collection (spreadsheet) and folder
In Datablist you can rename your collection (spreadsheet) and folder

Hide the source date columns if you do not want them in the Contacts import. In the export settings, select the intended columns explicitly; keep a separate full export if you want the date evidence for later review.

Hiding the date properties allows you get a custom export
Hiding the date properties allows you get a custom export

Open Export and export the cleaned items as CSV. If another address book requires VCF, the CSV-to-vCard guide explains the field mapping; keep your Contacts archive as the separate backup.

Datablist allows you to export to a CSV or send to other tools
Datablist allows you to export to a CSV or send to other tools

Check the downloaded file before importing it. Apple’s CSV import instructions specify consistent fields and no line breaks within a contact’s information. Notes and addresses deserve particular attention.

The last click to export your contacts from Datablist
The last click to export your contacts from Datablist

In Contacts on Mac, choose File > Import. Start with a small sample of known cards so you can check the mapping.

Opening the contacts downloaded from Datablist is easy
Opening the contacts downloaded from Datablist is easy

Select the sample CSV and open it.

Select the cleaned CSV in Contacts on Mac
Select the cleaned CSV in Contacts on Mac

Review the field labels. Mark unwanted columns Do not import and use Ignore first card when the first row is the CSV header.

Mapping the contacts with the right fields is crucial
Mapping the contacts with the right fields is crucial

Do not delete all existing contacts before validating the import. When Contacts finds duplicates during import, you can review them and choose whether to keep the old card, keep the new card, keep both, or update it with information from both. Follow Apple’s import duplicate-review instructions.

Check the sample cards, then repeat the reviewed import with the remaining cleaned contacts. If the cards belong to iCloud and Contacts synchronization is enabled on your devices, changes can appear on the other devices too. Check the account and a sample card on iPhone after synchronization.

Apple Contacts app without duplicates (thanks to Datablist)
Apple Contacts app without duplicates (thanks to Datablist)

Check the Result

Your expected result is one reviewed card per person, with the contact details you chose to retain. Compare a few previously duplicated cards with the backup, especially contacts with several phone numbers or conflicting emails. Keep the archive until you are satisfied with the import.

Contacts cleanup illustration
Contacts cleanup illustration

Frequently Asked Questions About Contacts Deduplication

Can I Remove Duplicate iPhone Contacts Without a Mac?

Yes. Start with View Duplicates in the iPhone Contacts app. The source-date CSV workflow in this guide requires a Mac because it uses macOS Contacts and Script Editor.

Can I Keep the Most Recently Updated Contact for Free?

Apple’s built-in duplicate review is available on the device. Datablist’s basic deduplication is available on the Free plan, but configuring a source-date selection rule requires a paid plan. Free deduplication does not automatically select the largest imported date.

Does This Automatically Deduplicate Contacts Across Apps?

No. This workflow cleans an export and imports the reviewed result. It does not continuously synchronize Apple Contacts, Google Contacts, and a CRM. For several exported lists, see deduplication across multiple files and retain the source identifiers.

Does a Newer Contact Always Have Better Data?

No. A later modification can be a changed note rather than a corrected email. Use the date rule to choose a candidate, then review important conflicting fields before merging.