Concept · Operations · 3 min read
Schedules and run memory
A scheduled agent has nobody sitting at the keyboard — so its two most important settings are when it truly runs, and what it remembers. Kaptain's defaults are opinionated about both.
Schedules that read like speech
daily@10:00. every 6h@08:00 — an interval anchored to a wall-clock time, so the slots are deterministic. Plain 30m works too. Every schedule carries an IANA timezone, so "10am" means 10am where you are, not where a server thinks it is.
Each occurrence runs once, ever
Occurrences are recomputed from absolute instants — never accumulated from "last run + interval" — so a machine that slept through a slot doesn't fire a burst of make-up runs, and a restart can't double-fire. Results are persisted, not just broadcast: a run that finished at 3am is waiting for you, with its trace.
Fresh by default
Run memory is off by default: a scheduled job starts from its standing task the way you'd brief a person, rather than dragging its own previous transcript into every run. Replayed history compounds — one bad run poisons the next, stale evidence gets treated as current, and the context budget quietly fills with yesterday. Fresh starts are the conservative default because they make each run independently reviewable.
When to turn memory on
Turn Remember previous runs on for the narrow case where the job genuinely builds on its own last answer — a tracker that must know what it already reported, a digest that dedupes against yesterday's. Reset run memory sits right below the toggle for the day a bad run poisons the thread. Both live on the kapsule: How-To ▸ Kapsules.
Agent-readable version: index.md