Romance, Historical, Contemporary, Paranormal, Young Adult, Book reviews, industry news, and commentary from a reader's point of view

Dear Jane

Managing your TBR pile with Calibre

Managing your TBR pile with Calibre

For long time readers of this blog, Calibre is an indispensable tool for tracking my reading library. I shop primarily at Amazon but if I have coupons or see deals at other sites, I’ll buy there as well.  Plus, I have over a 1,000 books I bought before Amazon really got up and running. I need an organizational tool for my digital books.

But if all you did was buy at Amazon and you have a small book hoarding problem like me, then you also need an organizational tool to manage your To Be Read (TBR) pile.

Calibre offers you a couple of ways to organize your TBR pile.  First, you can create collections for Kindle and Kobo that sync with your digital reader. Second, you can sync your Goodreads account.  Finally, you can use plugboards to organize your content automatically (this is what I use).

Step 1.   Determining how you want to sort your content.

The first thing you want to do is create columns that will be used to sort your information.  There are a couple of ways to do this. First, you can use the default columns.  Calibre comes with columns for Title, Title Sort, Author, Author Sort, Date of Publication, Date (that you add the book to Calibre), Size of the file, Rating, Tags, Series, Publisher, Description.

Much of this information can be obtained automatically by authorizing Calibre to pull information from various sites like Amazon, Goodreads, Fantastic Fiction and many others.

Add a book either automatically or manually. Once the book is imported, depending on the publisher or author’s metadata capabilities, the book information can be sketchy:

Screenshot of self published ebook metadata screen

Screenshot of self published ebook metadata screen

By pressing the “Download Metadata” button at the bottom center, Calibre is ordered to go out onto the internet and look for information using the keywords already in the metadata columns such as title, name, identifier. If you aren’t getting the search results you want, go back and remove things like the Identifier and just search title and author.

Screenshot of metadata search results

Screenshot of metadata search results

After the metadata is downloaded, I have a full detailed description (blurb) as well as who the publisher is, the date of publication, and the “tags” (default categories).

Screenshot post metadata search

Screenshot post metadata search

If the information here is sufficient for you to create sortable TBR list, then move to Step 3. If not, then go to Step 2.

Step 2.  Create User Defined Columns

If the default metadata information is not enough for you, then you’ll want to create your own columns.  For instance, maybe you want to be able to search/sort information based on where you purchased the book or perhaps why you bought the book.  If so, then you’ll want to create your own metadata fields.  These are called “columns” in calibre.  To create a column, CTRL/CMD + P (This opens Preferences).  From the first row of icons, click on the button: Add your own columns.

add your own columns

Or simply position your mouse on the header bar of the database page and right click:

Right click add your own columns

Use the green and red buttons to add and delete user create columns.   For the purposes of this, I’m going to add “self-published” and “impulse buy” and “recommended”.  Self published and impulse buy are Yes/No columns where as Recommended By is “comma separated text” which allows for more than one choice. 

Delete / Add custom columns

Delete / Add custom columns


Whenever you add columns or delete them, you have to restart Calibre. Now when I look at the metadata window of a book, I have “custom metadata” tab and this will include all my user columns.

Screen Shot of custom metadata

Screen Shot of custom metadata

Now I’ll be able to set up lists for books that are “impulse buys” recommended by “friends”.  As you can see, your choices are limitless.

Step 3: Using Calibre Template Language

Let’s say you are a reviewer and have advanced reader copies.  Want to sort your books by month of release?  Are you a book hoarder and would like to keep track of when you make your purchases?  You can set up user created columns that automatically populate based on metadata already in your database.

Then you need to learn to use calibre template language to create  “virtual” columns that contain data from other columns. I’m going to reuse the example I’ve shown you in the past.

{series}{series_index:0>2s| – | – }{title}:  Turner Brothers – 01 – Unveiled

Let’s unpack this.  The field name inside the brackets {} correspond to the field lookup name.  In the above example, we have the following metadata:

metadata example of author title series

By using a calibre template langage, we are asking Calibre to change the title when it it sent to the device from “Unveiled” to  “Turner Brothers – 01 – Unveiled” which is the {series} + {series_index:0>2s| – | – } + {title}.

  • series=Turner Brothers
  • series_index:0>2s| – | -
    • 0>2s – two digits with leading zeros so 01, 02, 03.  If you did 0>3s it would be three digits with leading zeros or 001, 002, 003.
    • “| – | – ” places the dashes around the series. field:|prefix_text|suffix_text is the formula.  Here we have space pipe space as the prefix (or the text before the digit) and space pipe space as the suffix (the text after the digit).  If I changed it {series_index:0>2s|*|*} the result would be Turner Brothers*01*Unveiled.  Notice the lack of spaces.
  • title=Unveiled

Let’s do this with dates.  We are going to create another user column, only this time in the dropdown box we select “column built from other columns.”


Screen Shot of column based on other columns

Screen Shot of column based on other columns


Using the template language, I created a column that includes just the month the book was published.

{pubdate:format_date(yy-MM (MMMM))} = 13-11 (November)

The field name inside the brackets {} correspond to the field lookup name.  We are asking calibre to lookup “pubdate” {pubdate} and then reformat it.  The variable is the what is contained inside the parentheses after format_date.

  • yy = last two digits of the year
  • MM=two digit month
  • MMM = abbreviated text of the month
  • MMMM = full length text of the month

Let’s say you just want it to read Aug or Sept, your formula would be {pubdate:format_date(MMM)}. This can be changed at any time.  Now you can sort your books just by the month published.

Step 4: Set up Search features

The last step after you’ve created your custom columns and tweaked your metadata is to set up saved searches so you can easily find books you want to read.  Assume you want to search for all books you’ve purchased in the last 30 days.  Into the text input area next to the binoculars, type date:<30daysago.  

Perhaps you want to find all the books that were published more than 30 days ago and that you haven’t read.  Type in #tbr:”no” and pubdate:<=30daysago

The user columns you have created are denoted with the pound sign #.  Another search you can implement is ratings.  The ratings are based on Amazon or Goodreads or wherever you are seeking out metadata.  You could search for #tbr:”no” and pubdate:<=30daysago and rating:>=3

This command will look up books that are marked “no” in your TBR custom column, that were published less than or equal to 30 days ago with a rating of greater or equal to 3.

And finally, because you don’t want to keep remembering all these things, save your searches!  At the end of the search input line is the “Saved Searches” tools area.  You can save your searches and delete them as you see fit.

Screen shot of saved searches

Screen shot of saved searches toolbar area


I hope that helps just a little. If you have questions or tips on what people might use in their user columns, help us out in the comments.