I did that almost a soon as I started using Calibre, I had a spreadsheet with all the books in it but it was never up to date.
I added columns, for location, loaned, haveepub, condition & format (Hardcover, Paperback etc.)
I had a small program I wrote so I could drag/drop a link from fantasticfiction or goodreads, and it created a cover and an opf file with the relevant info, prompted me for my custom fields and added it to my "Physical" library. Then on exit waited for Calbre to close and ran an sql query to autoupdate the haveepub column.
I'm pretty sure it wouldn't work since version 3 and as it's been a few years since I bought a "real" book I haven't needed it.
One of these days I need to go through the boxes and boxes of books that haven't been opened since I moved over a decade ago, select ones got unpacked, and the rest sit there.