First off, let me put forward the developer’s caution. Goodreads allows only a limited number of software calls per minute. If you make too many, Goodreads might block this. If you are using this sync for the first time and you have a large library, use the CSV export/import that Goodreads offers. Don’t worry. I’ll cover doing big import.
Step 1. Set up your custom columns.
Before you do anything, you will need to create a few custom columns to match Goodreads.
- Rating -> create a rating column only if you want to override the ratings that are downloaded with the Metadata Lookup feature.*
- Date Added
- Date Read
- Review -> Need a custom column for your reviews or GR will use the “description” from the metadata
- Tags – > these are equal to your shelves. I call mine GR Shelf.
Step 2. Customize the Goodreads plugin.
Click on the down arrow on the Goodreads Sync button to access the customize plugin feature. Here you will authorize the plugin with your account.
Your shelves should download. If not, press the blue “Refresh Shelves.” You can also create shelves that will show up on your Goodreads account. The sync goes both ways. In the lower left, you will map your synchronisable custom columns:
For each shelf, you need to Edit the “Shelf Add Action” and the “Sync Action”
The sync action step is telling Calibre what to do with the data that it finds at Goodreads. If you’ve rated a book, added a review, or shelved a book, the sync action can keep your calibre database up to date. You cannot sync your shelf individually by book. Instead, it syncs by entire shelf. So you’ll sync the Read shelf or the TBR shelf.
Let’s say you added a book to your “currently-reading” shelf at Goodreads.
Now I want to add that book to my calibre account. I go to Calibre and select “Sync Shelf”. Calibre will import that title into my database per the rules I have set. Go to Customize Plugin on the GR Sync Button. Highlight the Currently Reading shelf. You want to edit the Sync actions. For the “currently-reading” shelf, you’d want to add a value to your GR Shelf to read “currently reading”. I also want to add “Date Started” that I included when I added this book to Goodreads.
Once I have this set, I can select Sync Shelf. As you can see by the screenshot, I have three books on my “currently reading” shelf at Goodreads. In Calibre, I only have one book “linked”.
I can create links between my Calibre database and Goodreads by searching my database for the book. Once I’ve made the link, I hit sync and calibre gives me a warning that it will ignore unlinked books. Great.
Now, my Calibre database and GR shelves have marked “Sweet” in the currently reading category. But let’s say I have a book in Calibre that I am going to start reading.
Shelf Add Action
This is the action that you are asking Goodreads to take when you Add a Book to the shelf. Here I am going to add Shannon McKenna’s Fatal Strike to my Currently Reading shelf. I’ve set my rules as follows. I want the date started to be set to Today and I want to add “currently-reading” to the GR Shelf.
Before I enter the command to Add to Shelf, here is my metadata for Fatal Strike by Shannon McKenna. The date started is empty as is the GR Shelf. After the add command, Calibre automatically inserts the date (today) and the “currently-reading” tag.
And when I go to my Goodreads account, you can see I now have four books on my Currently Reading shelf.
But let’s assume that I’ve read a book now and I want to move it from Currently Reading to Read. I’m going to use Sweet as my example. I wrote out a quickie review and gave the rating. I’m not filling out any other information because Calibre will do that for me based on the rules I set.
The Add Shelf actions I have set include
- Setting the date ended to today
- Setting the GR Shelf to “Read” (instead of “Currently Reading”)
- I also check the boxes next to “upload rating, date read, and review text.”
The Sync Actions include:
- Date Ended = Goodreads Date Read
- I also check the boxes next to “Sync rating from GR, sync date read, sync review text.”
Here you can see a preview of what is being added to my GR shelf. The rating is 4 and I have a shorty review along with the date read.
Automagically, Goodreads is now updated with my review, rating and date read.
Download tags from shelves/Upload tags as shelves
You can create shelves from Calibre and vice versa by using Download tags from shelves and upload tags as shelves. Make sure that you’ve a) created a custom tag column for Goodreads shelves and b) that you’ve designated that custom column as the “tags” column in the customize plugin feature. Remember that you can create custom rules for each shelf.
This way you can reduce the number of actions to take in order to keep your Calibre database in sync with your Goodreads shelf. Plus by relying on shelf and sync actions, you can automate several tasks as well. Remember to update this plugin regularly. Goodreads often changes its code which necessitates users reporting error reports to Kiwidude, the developer, who then fixes the plugin. You can read more about the Goodreads plugin here at MobileRead.
Step 3. Mass import using CSV
If you have a huge library and want to sync it to Goodreads, use the mass import feature. Here are the columns that Calibre accepts and corresponds to fields on the Goodreads site. You do not have to have all of these filled out because many of them will already exist in Goodreads such as the average rating, publishing, binding, number of pages, year published, etc.
- Author l-f
- Additional Authors
- My Rating
- Average Rating
- Number of Pages
- Year Published
- Original Publication Year
- Date Read
- Date Added
- Bookshelves with positions
- Exclusive Shelf
To create a CSV file of your calibre database, simply click on the arrow next to the Convert Books button and select Create a catalog of books in your library. Name your library and then highlight the fields you want to import into Calibre such as title, author, review, my rating, gr_shelf, and any others that would correspond with the GR fields. Open up your CSV file and make sure that the headers match the GR headers. The Calibre headers look like this:
And I need to change them to look like this:
If you find this plug in helpful, consider donating to the developer.
* Bonus step: Customize Metadata Download sources.
Go to Preferences and select Metadata Download. Here you will see a list of metadata lookup sources such as Amazon, Goodreads, Barnes & Noble, Fantastic Fiction. Each Metadata source can be separately configured by highlighting the metadata source and then clicking the green “Configure selected source”
For instance, let’s assume that you are a heavy Goodreads reader and want to see ONLY the Goodreads ratings. You would highlight each metadata source that is NOT Goodreads and UNCLICK the rating. This way only ratings from Goodreads will be downloaded. You can go through this with each of your metadata sources and customize them. I only like covers from Amazon and Barnes & Noble, for example. The Goodreads covers are too small for my liking.