Zotero is great at storing references — papers, textbook notes, my ever-growing "wrong-answer book". What it never did was nudge me to re-read the things I'd flagged. So I wrote zotero-review-reminder, a small plugin that turns Zotero into a spaced-repetition study partner.
The problem
I read a paper, flag it for review, then... never look at it again. Self-discipline is a terrible reminder system. I wanted something that would:
- Pop a reminder on a schedule (every 7 days by default, at 09:00 — all configurable).
- Surface items whose
Next Review Datehas already passed. - Let me update review-related dates in one click.
- Work in batches across many selected items.
How it works
-
Dates live in the item's
Extrafield as plainkey: valuelines —Next Review Date: 2026-08-28. No hidden database, no separate state. The data stays readable, editable, syncable, and survives export/migration. -
The timer belongs to the plugin, not to whichever window happened to load first. This was a real bug: in multi-window Zotero, a timer bound to a window gets silently killed when that window closes. Owning it in
onStartupand clearing it inonShutdownfixed it. -
Day math is DST-safe: I compare dates as UTC calendar days (
Date.UTC(y,m,d) / 86400000), so a 23-hour or 25-hour day doesn't shift a "due today" item by a day. -
Reproducible build:
python3 build.pyproduces a byte-identical.xpi(fixed timestamps, deterministic zip order) — nice for review and distribution.
Install
Grab the .xpi from the release page, then in Zotero: Tools → Plugins → ⚙️ → Install Plugin From File.
Works on Zotero 7/8/9. MIT licensed.
Repo: https://github.com/18126295767-cell/zotero-review-reminder
Feedback very welcome — v0.1.0.
Top comments (0)