Make an encrypted backup of the iPhone on your PC, open it in OpenExtract, a free Windows app, and save every call as a spreadsheet: who, when, how long, and whether it was incoming, outgoing or missed. The encrypted part matters, because Apple leaves call history out of backups that aren't encrypted.
The iPhone's Recents list has no export button, and Windows can't read the phone's call log on its own. Most of the tools that come up when you search for this are paid apps. OpenExtract does the same job for free, with no trial, no limit on how much you save and no account, and it reads everything on your own PC.
Since iOS 13, Apple treats the call log as private data and only puts it in a backup when Encrypt local backup is turned on. An ordinary backup has your texts and photos but no calls, so no app, free or paid, can get them out of it. If you open one in OpenExtract, the Calls tile says Only in encrypted backups.
Turning encryption on means choosing a backup password. Write it down. The backup can't be opened without it, by OpenExtract or anyone else, and that's also what keeps it safe if the PC is lost. An encrypted backup also holds more than an ordinary one, such as Health data and web history; here's why encrypted backups are better.
Download it from the Windows download page and run the installer. The installer is signed by Charles West, the developer. If SmartScreen shows a notice for a new app, choose More info, then Run anyway.
On OpenExtract's start screen, click Back up my iPhone and connect the iPhone with a cable. Tap Trust on the phone and enter its passcode if it asks. Tick Encrypt backup, set a password, choose a folder for the backup, and start. Windows needs Apple's free Apple Devices app to talk to an iPhone; if it isn't installed, OpenExtract offers to install it from the Microsoft Store for you. A backup often takes about half an hour.
You can also make the backup in the Apple Devices app or iTunes: select the iPhone, choose to back up to this computer, tick Encrypt local backup, set the password, and click Back Up Now.
A backup made in OpenExtract opens when it finishes; type the password you just set. For one made in Apple Devices or iTunes, choose Open a backup folder and pick the Backup folder, usually %USERPROFILE%\Apple\MobileSync\Backup (the Apple Devices app, or iTunes from the Microsoft Store) or %APPDATA%\Apple Computer\MobileSync\Backup (iTunes downloaded from Apple's website), then type the password.
Click Calls on the backup's home page. Each call shows who it was with (the name from the iPhone's address book, or the number), when, how long, whether it was incoming, outgoing or missed, and the app it came from, such as Phone or FaceTime. To narrow the list, type a name, part of a number, or missed in the search box at the top.
Click Save at the top right and pick a folder. OpenExtract writes call_history.csv, one row per call, with the date, contact name, phone number or email, direction, status (answered or missed), duration in seconds and app. It opens in Excel or Google Sheets, where you can sort, filter and print it. Save always writes every call in the backup, even when the search box narrows the list.
Why does OpenExtract show no calls? Most likely the backup isn't encrypted. Since iOS 13, Apple leaves call history out of unencrypted backups, so there's nothing for any app to read. Make a new backup with encryption turned on, then open that one.
I've forgotten my backup password. What now? Backups made with that password can't be opened by OpenExtract or anyone else. Apple's support pages explain how to set a new one: on the iPhone, Reset All Settings clears the backup password without erasing your data, though it does reset things like screen brightness, the Home Screen layout and the wallpaper. Then make a new encrypted backup.
Does it get FaceTime calls? Yes. FaceTime calls are listed along with ordinary phone calls, and calls from other apps that show in the iPhone's Recents list appear too. The App column says which one each call came from.
Can I save the calls with one person? Open People, pick the person, and you'll see your calls, messages and voicemails with them on one page, with a button to save everything. The Calls screen's Save button always saves the whole call log.
Does anything get uploaded? No. OpenExtract reads the backup on your own computer and doesn't send it anywhere. It goes online only when you let it: to check for a new version, if you allow it (you can turn that off in Settings); to send a problem report or a thank-you, when you click Send; and on Windows, to install Apple's free Apple Devices app from Microsoft, if you ask it to, for backing up an iPhone. Nothing from inside your backup goes with any of them.
Is it really free? Yes. OpenExtract is open source under the MIT license, with no paid tier, no account and no strings attached. The code is on GitHub.
Free, open source, and the backup never leaves your computer.