Network access is blocked in this sandbox, so I verified nothing live. The citations below use only URLs I am certain exist: the SQLite CLI manual, IETF RFC 6350 and RFC 4180, Google’s Contacts import/export help page, and the Apple Contacts User Guide index.
An .abbu file is a Contacts Archive exported by the macOS Contacts app, and nothing opens it directly as a spreadsheet. You convert it to CSV in two stages: load the archive back into Contacts, export the contacts as a vCard, then turn that vCard into CSV with Google Contacts, or query the SQLite database inside the archive with the sqlite3 tool that ships with macOS. Each route takes 10 to 20 minutes.
What is actually inside an .abbu file?
Despite the single icon, an .abbu is a package folder. Right-click it in Finder and choose Show Package Contents and you will see a Metadata folder, an Images folder and a file named AddressBook-v22.abcddb. That last file is a standard SQLite database holding every name, phone number, email and address. The images are stored separately, so no CSV route will carry photos. The format is documented by Apple only as an opaque backup in the Contacts User Guide, which is why the conversion is indirect.
Method 1: Contacts, then vCard, then CSV
This is the route for anyone who prefers not to touch Terminal.
- Protect your current contacts first. Importing an archive replaces everything in Contacts, and if iCloud Contacts is on, the replacement syncs to every device. Either export your current list as its own archive from File, Export, Contacts Archive, or create a temporary macOS user in System Settings and do the work there.
- Import the archive. In Contacts choose File, Import, select the .abbu, and confirm the replacement warning.
- Export as vCard. Select all contacts with Command-A, then File, Export, Export vCard. You get one .vcf file containing every card, structured per RFC 6350, the vCard specification.
- Convert the vCard to CSV. Sign in to Google Contacts, choose Import, upload the .vcf, then choose Export and pick Google CSV or Outlook CSV. Google documents both the import and the export formats on its Import or export contacts help page. Outlook CSV is the safer choice if the file is headed for a CRM or mail-merge tool, since the column names match what most importers expect.
Numbers and Excel cannot open a .vcf directly, which is why the Google step exists. If you would rather keep the data off a cloud account, use Method 2.
Method 2: Query the database with sqlite3
macOS includes the SQLite command-line shell at /usr/bin/sqlite3, and its .mode csv and .headers on switches write proper CSV, as described in the SQLite command-line shell documentation. Copy the database out of the package first so you never modify the archive:
cp ~/Desktop/Contacts.abbu/AddressBook-v22.abcddb ~/Desktop/ab.db sqlite3 ~/Desktop/ab.db .headers on .mode csv .output ~/Desktop/contacts.csv SELECT r.ZFIRSTNAME AS first_name, r.ZLASTNAME AS last_name, r.ZORGANIZATION AS company, GROUP_CONCAT(DISTINCT e.ZADDRESS) AS emails, GROUP_CONCAT(DISTINCT p.ZFULLNUMBER) AS phones FROM ZABCDRECORD r LEFT JOIN ZABCDEMAILADDRESS e ON e.ZOWNER = r.Z_PK LEFT JOIN ZABCDPHONENUMBER p ON p.ZOWNER = r.Z_PK WHERE r.ZFIRSTNAME IS NOT NULL OR r.ZLASTNAME IS NOT NULL OR r.ZORGANIZATION IS NOT NULL GROUP BY r.Z_PK; .quit Table and column names have been stable since OS X 10.7, but if the query errors, run .tables and .schema ZABCDRECORD to confirm them on your archive. Postal addresses live in ZABCDPOSTALADDRESS and can be joined the same way. The output follows RFC 4180, so Numbers, Excel and Google Sheets open it without a wizard.
Which method should you use?
| Situation | Use |
|---|---|
| Need photos or notes preserved alongside the data | Method 1, and keep the vCard too |
| Archive is from an old Mac you no longer have | Method 2, no risk to current contacts |
| Privacy-sensitive client or talent list | Method 2, nothing leaves the machine |
| Destination is Mailchimp, HubSpot or a casting database | Method 1 with Outlook CSV, columns already match |
What breaks in the conversion?
Three things routinely go wrong. Contacts with several phone numbers collapse into one cell unless you split them, which is why the SQL above concatenates with commas you can separate later. Non-ASCII names export correctly from sqlite3 as UTF-8, but Excel for Mac may show them garbled unless you use File, Import rather than double-clicking the CSV. Finally, group membership is not in the record table, so if you need which list each person belonged to, export each group separately in Contacts before converting.
For a production company the usual reason to do this is migrating a crew or client list from a retired Mac into a shared spreadsheet. Run Method 2 on the archive, open the CSV in Numbers to check the row count against what the old machine reported, and only then import it anywhere.