What contactsd does
A process is a program running in the background. contactsd is the one macOS uses for contacts. Apple's manual page says it manages your contacts database, serves apps that use contacts, and does background upkeep.
It lives in macOS's own system folder, and nobody installs it. Mail, Messages and FaceTime all look up names through it, so it runs even when the Contacts app is closed.
Syncing with online accounts such as iCloud, Google or Exchange shows up in the Mac's logs under a separate helper, AddressBookSourceSync. A sync that keeps restarting gives contactsd more work.
First, measure it
The percentage in Activity Monitor is recent use, and it jumps around. The steadier number is the total processor time contactsd has used since it started. Terminal shows both.
% ps -axo pid,pcpu,time,etime,comm | grep -E 'PID|contactsd$' PID %CPU TIME ELAPSED COMM
80539 0.0 2:33.24 03-16:40:22 /System/Library/Frameworks/Contacts.framework/Support/contactsdTIME is the processor time used, in minutes and seconds. ELAPSED is how long it has run, in days-hours:minutes:seconds. This one used two and a half minutes over three and a half days, which is quiet. The path shows it is the system's own copy.
When contactsd CPU is normal
You just added an account, imported contacts, set up a new Mac, or updated macOS, and the load settles within the hour.
Each of those gives it real work: new cards to store and to index for search. A burst that ends is that work finishing. The processor time grows for a while, then stops growing.
Fixleave the Mac awake and let the burst finish. Measure again later rather than acting on one reading.
Signs one account is stuck in a loop
The fans spin up every few hours with Contacts closed, the battery drains in the background, or contactsd shows 100% or more for long stretches.
Over 100% means it is using more than one processor core. In one Apple Community report, it had used four and a half hours of processor time in eighteen hours of uptime.
Apple Community threads about this run from 2022 into 2026. The account reported is Google most often; iCloud and Exchange also appear. That tells you where to start looking, not that your Google account is the cause.
Find the account without losing it
Switching off one account in Contacts is a test, not a deletion. Apple says that account's contacts are removed from your Mac until you switch it back on.
- Back up first. In Contacts, choose File > Export > Contacts Archive, as Apple describes, and save the file somewhere safe.
- Check that recent edits reached the account. Open the account's website, such as Google Contacts, and find a contact you changed lately. An edit that never left this Mac could be lost during the test.
- In Contacts, choose Contacts > Settings, then click Accounts. Select one account and deselect Enable this account. Start with Google if you have it.
- Use the Mac normally for a few hours, then measure
contactsdagain. - Select Enable this account again, whatever you found. Then test the next account the same way.
Fixthe account whose test keeps contactsd quiet is the one to work on. Remove that one account and add it again, then check the load. Apple notes that removing an account removes its contacts from this Mac, so confirm they are on the provider's website first.
Check whether syncing finishes
The logs can show whether each sync run reaches the end. This command lists the recent end-of-run lines from the sync helper.
% log show --last 1h --predicate 'process == "AddressBookSourceSync"' --style compact | grep -E "Sync of source|Done running" | tail -42026-09-13 09:51:18.399 Df AddressBookSourceSync[11248:a587633] [com.apple.contacts.accounts.sync:agent] Sync of source <private> complete.
2026-09-13 09:51:37.979 Df AddressBookSourceSync[11248:a587633] [com.apple.contacts.accounts.sync:agent] Sync of source <private> complete.
2026-09-13 09:51:37.982 Df AddressBookSourceSync[11248:a587633] [com.apple.contacts.accounts.sync:activation] Done running, uptime: 30.2 sOn this healthy Mac, a sync run finished in about 30 seconds. Nothing printed means no sync ran in the last hour. macOS hides the account name as <private>, so the log shows whether syncing finishes, not which account it is.
What Noah can determine on this Mac
NoahNoah can read recent logs from contactsd and its sync helper. Sync runs that keep starting without finishing point at a loop rather than ordinary work.
Noah cannot reliably tell how much processor contactsd is using, so the measurement above, and noticing that the load comes back every few hours, stays yours. Noah cannot list your Internet Accounts or see which ones sync Contacts, and macOS hides the account name in these logs. The one-account-at-a-time test stays yours. Deleting anything needs your approval first, and this page never asks you to delete your contacts database.
Steps to leave for last
Quitting contactsd in Activity Monitor is not a fix. macOS starts it again when an app needs contacts, and a looping account starts the work over.
Some guides tell you to delete the contacts database in your Library folder. Do not start there. Contacts kept only on this Mac have no other copy, and it does nothing about the account causing the loop.
Fixif one account still loops after you removed and added it again, save a Contacts Archive and contact Apple Support before deleting anything.