Plugins for Calibre Integration. Finally annotations sync for epub, etc

Named logseg-calibre-metadata and logseq-calibre-annotation on Logseq Marketplace.

The first is for auto-creating page like the built-in Zotero integration.


The second is for reading ebook while having annotation syncing to logseq.


These two plugins can function independently. The calibreMetadata plugin only creates the page and inserts the renderers used by the calibreAnnotation plugin.

Calibre Content Server is very convenient. We can connect and read books with a browser from any device, and the annotations will still seamlessly sync to the page.

Amazing! Kudos!

Does editing an annotation in Logseq also update the one in Calibre or the sync is only to one direction?

Nah, it just syncs one way. It’d be handy for me when I’m chilling in bed, reading a book on my phone, and jotting down some notes. Those notes would be synced to Logseq. Since the notes in Logseq are the final version though, there’s not much point in pushing them back into the book. Technically, it could be done, but it might require tweaking the Calibre API a bit.


This is best thing I’ve heard in a while.

My previous solution was to use logseq:// links in the Book Details pane (I had first done it with obsd) to create the pages for books, authors, etc, but some data loss forced me to restore a very old backup of calibre and I haven’t felt like setting it up properly again.

This is easier to set up and more functional. It might be interesting to add a place to copy and paste links that can go in Book Details based on the template set in the settings for this plugin. Automatic page properties would be a cool addition in the future as well, especially if they can pull data from custom columns

calibre-metadata adds a link to book detail in Calibre next to the two renderers. There is a convenient URL scheme for this i.e calibre://show-book/LibraryName/9. I need to update the gif demo.
e is work for the page property, as different data formats prefer different processing. Right now it is honestly minimal and may even lead to error when some property (like atm “rating”) are specified. I am always ready for feedback to improve.

Hello! Thank you for creating this! I am trying to use the plugin but everytime I do i get an error that logseq cannot connect to calibre API and to make sure the content server is on. My content server is on, and when I change the content server link as suggested, i still get the same error or a simple fail error. What am I doing wrong?

1 Like

Sorry to hear about your problem. Please try the following methods to help me debug it:

  1. Press “Ctrl + Shift + i” in Logseq to access DevTool. Tell me the message when you fail to import a book.

  2. Try paste the following URL into browser to see if the API to the books data could be accessed. Where serverLink and calibreLibrary is the value in the calibreMetadata setting.

serverLink + “/ajax/books/” + calibreLibrary

  1. If you have installed the calibreAnnotation plugin, open a book on the browser and paste the following macro into logseq, replace the link with the link to your calibre server. Clicking on the rendered button to see if the book appear on the side.
    {{renderer calibreViewer, special,}}

This is the message I get when I fail to import a book:


Fetch error: TypeError: Failed to fetch
at index.0336bf64.js:131:122
at index.0336bf64.js:140:499
at fn (index.0336bf64.js:1:70632)
at index.0336bf64.js:3:1

I have to apologize, but I know absolutely nothing about coding or anything related to that, so the second and third point sound like a completely different language. I don’t know where to paste any of these commands.

Okay, I think changing https to http would solve your problem.

Though, what I meant in method 2 was simply pasting the following into browser when content server is on.


this error returns

how to configure?

  • Find the Connect/share option on Calibre topbar, start the content server if not yet:
    With the info in the screenshot, setting for Content Server Link is

  • Your current library name also shown in the topbar. i.e Calibre Library: Calibre

  • Probably unrelated but you could also edit the port in Preferences. Navigate to this part:

I had the same problem. The reason was, that I had not understood what is meant with “Preferred Calibre Library”. It’s simply the name of the Calibre library I am using, in my case “Calibre”. When I put it in, everything worked :slight_smile:

thank you very much, it worked