Exam Scheduler turns "I have an exam on this date and a pile of cards" into a concrete daily plan β for any deck, in any collection. Nothing is hard-coded to a particular course: every feature runs over the list of exam targets you configure.
Add a Tools β Exam Scheduler menu:
π Study dashboard β per deck: total cards, % seen, new cards remaining, reviews due today, days to exam, and the exact new-cards/day needed to finish in time.
π― Set daily new-card limit from schedule β computes (new cards Γ· days left) for each deck and writes it straight to that deck's options preset. An optional safety buffer lets you finish N days early and/or add a % margin so you're done with slack, not cramming on exam eve. Each deck gets its own preset, so limits never clobber each other.
β© Bump reviews before exam β any review card scheduled to fall due after your exam is pulled forward to peak ~14 days before it (configurable, scattered Β±3 days so you don't get a single brutal day).
π Cram current deck / π Cram a chosen deck β one click lifts today's new + review limits for a deck and all its subdecks, so you can blitz a topic. It's today-only and self-resetting: your normal limits return at the next day rollover, with nothing to undo.
π’ Zero-pad numbered deck names β renames "1 Cell Structure" β "01 Cell Structure" across the whole collection so numbered chapters sort correctly.
π
Manage exam targets β add/remove the decks you're revising and set each one's exam date.
First run: Tools β Exam Scheduler β Manage exam targetsβ¦ β pick a deck, set its exam date, Save. Open the Study dashboard to see where you stand, then Set daily new-card limit to make Anki feed you the right number of cards each day.
Notes: "Bump reviews" and "Zero-pad" register an undo checkpoint (Edit β Undo reverts them). Cram mode needs nothing restored. Works on Anki 23.10+ (PyQt6), with a PyQt5 fallback for older builds.