DefaultScheduler
DefaultScheduler is an async factory that returns a ready scheduler instance. It creates a model (FSRS-7 by default) with dateChrono and the standard scheduling policies, so the only thing you configure is its options. Internally it is the same definition-and-instance machinery as a custom defineScheduler — the preset is just a convenient assembly.
Options
When upgrading from FSRS-3~6 to FSRS-7, omit weights to use FSRS-7 defaults or supply weights trained for FSRS-7. Replaying history rebuilds card state; it does not convert legacy weights.
FSRS-7 cards include stabilityFast as well as stability and difficulty. Rebuild legacy FSRS-3~6 memory states by replaying review history with Reschedule; parameter migration does not migrate card state. Do not seed an evolved fast trace with 0.8 * stability. The preset enables fractional days for FSRS-7, and enableShortTerm: false only disables explicit learning steps, not the model's fast trace.
For cost-adaptive retention, create a custom definition with schedulerCostAdrMiddleware in place of schedulerDesiredRetentionMiddleware. Cost ADR is not a DefaultScheduler option.
scheduler.nextInterval(memoryState, desiredRetention, { card, grade, elapsedDays }) queries the interval for an already computed post-rating state. It runs handlers.nextInterval without advancing the card or chrono; put shared interval policies in that hook.
DefaultScheduler always uses dateChrono and applies the standard policies in the order described on the Middleware page: desired retention, fuzzing, statistics, scheduled days, learning steps, maximum interval, then monotonic interval. Choosing version changes the model and its parameters, not this policy set.
The factory is async, so await DefaultScheduler(...) before using the returned instance. The example makes the common defaults explicit: version, desiredRetention, learning and relearning steps, fuzzing, and maximumInterval. Omit weights to use the preset for the selected FSRS version.
Preset or custom definition
Reach for DefaultScheduler when the default FSRS model, dateChrono, and the standard policy set fit your product — it is the fastest correct start. Reach for defineScheduler when you need a different model or chronology, add or remove policies, or expose a configuration you validate per user. Both end in the same scheduler instance API (newCard, review, rollback, preview, and forget). See Scheduler overview for the definition-and-instance model.