Install
openclaw skills install @daniel-refahi-ikara/dr-schedule-managerDesign and implement reliable scheduled or event-triggered automations for OpenClaw agents so changes to model, prompt, delivery, and policy take effect immediately on the next run. Use when cron jobs, daily briefings, reminders, digests, or background agents keep using stale models, stale prompts, stale session state, or detached execution contexts. Also use when standardizing automation architecture across multiple agents or converting brittle time-triggered workflows into reusable config-driven jobs.
openclaw skills install @daniel-refahi-ikara/dr-schedule-managerBuild scheduled automations so each run reflects current configuration immediately.
This skill is a scheduling architecture and migration playbook, not a one-command scheduler installer.
After installation or migration, scheduled jobs should:
If a design does not guarantee those properties, do not recommend it as the default.
Treat current OpenClaw cron as snapshot-based unless proven otherwise.
In practice, cron jobs may embed:
That means editing local files alone may not change the behavior of the already-registered job.
Because of this, the preferred practical pattern is not "fat job config in cron". It is:
The scheduler reference may point to an agent runner or a non-agent runner. Choose that substrate deliberately.
Prefer a thin-reference, fresh-run, config-driven job architecture.
The scheduler should only:
Do not embed business logic, formatting rules, prompt text, delivery rules, or model decisions in the scheduler unless you intentionally accept snapshot behavior.
Each scheduled job should have a manifest file that defines:
On every run, load current files before generating output or executing deterministic work.
Always assemble from:
Do not trust previous session state for these.
Store delivery in a clear adapter contract.
Do not assume session metadata is valid for outbound sends if the provider requires a different target format.
If you keep a persistent automation agent, use it only as a dispatcher or coordinator.
Do not let a persistent scheduled session be the authoritative source for:
Before choosing an approved pattern, decide whether the scheduled task needs an agent/LLM at run time.
Thin trigger means thin stable reference, not automatically OpenClaw agentTurn.
If the scheduled task is a deterministic script, CLI, ETL, monitor, report generator, reconciliation job, artifact builder, or health check that does not need natural-language reasoning at run time, default to a non-agent runner.
Appropriate non-agent substrates include:
Rules:
Use OpenClaw agentTurn or another LLM-backed agent path only when the scheduled run genuinely needs one or more of:
Even then, the payload must stay thin:
For frequent jobs, especially every 5-15 minutes or less, require an explicit written justification before using an LLM-backed scheduler path.
The justification should explain why deterministic execution is insufficient.
If no justification exists, choose a non-agent execution substrate.
Ask:
Default answer:
Use when you want the latest main assistant behavior to apply automatically and the job genuinely needs an agent/LLM.
Best for:
Strengths:
Weaknesses:
Use as the default for deterministic scheduled jobs.
Best for:
How it works:
Strengths:
Weaknesses:
Use as the default only for jobs that actually need an agent/LLM.
Best for:
How it works:
Strengths:
Weaknesses:
Use for more advanced orchestration.
Best for:
Strengths:
Weaknesses:
For most current scheduled jobs, use Pattern B1 when the job is deterministic and Pattern B2 only when the job genuinely needs an agent/LLM.
Reason:
When implementing or changing real scheduled behavior, use dr-checkpoint-implementation.
This applies to:
Work in checkpoints:
Self-approve routine checkpoints only when validation passes and no new live side effect is introduced.
Stop for user approval before:
Model behavior must be explicit when an LLM-backed path is used.
Use inherit-default when upgrades should propagate automatically.
Example:
{
"modelPolicy": {
"mode": "inherit-default"
}
}
{
"modelPolicy": {
"mode": "pin",
"model": "replace-with-intentional-model"
}
}
If pinning is used, document why.
{
"modelPolicy": {
"mode": "policy-file",
"path": "automation/policies/default-runtime.json"
}
}
Use when many jobs should share the same rule.
For deterministic non-LLM jobs, model policy should be absent or explicitly marked not applicable.
Verification should catch broken assembly and wrong execution substrates, not freeze intended upgrades.
Good checks:
agentTurn or another agent/LLM session unless explicitly justifiedFor systemd timers, verify:
Keep separate validation for:
Avoid exact verification for settings that are supposed to inherit current defaults.
If the job should follow current default model changes, do not require an exact old model string.
Do not claim OpenClaw cron can directly execute shell commands unless the runtime actually supports that. If shell execution is required, choose an OS/platform scheduler or another direct command runner.
Reject these by default.
A cron job stores the full prompt, model, and delivery configuration even though the automation is expected to evolve via local files.
A design says "thin trigger" but always starts OpenClaw agentTurn, even when the job is deterministic and could run as a script or CLI.
A deterministic monitor, health check, ETL, or report generator runs through Codex/OpenClaw every few minutes even though no run-time reasoning is needed.
A manifest or cron payload hardcodes an old model and exact verification preserves it forever.
A user requests a format change in chat, but the job still reads an older prompt source.
Outbound delivery copies stale or misleading session metadata rather than a provider-valid target.
A long-lived automation session accumulates outdated assumptions and keeps using them.
A job can resolve current local files correctly and still fail because the scheduler's announce/delivery adapter is broken.
A health monitor runs every 5 minutes and executes a Python CLI that checks deterministic API and platform status.
Correct design:
Incorrect design:
agentTurn every 5 minutesEscalation design:
When fixing an existing job:
Provide:
Before declaring the architecture good, confirm:
Read references/architecture-patterns.md when designing the execution model.
Read references/migration-checklist.md when converting an existing stale scheduled job.
Read references/reliability-review.md before finalizing a job architecture or publishing this pattern for wider reuse.
Read references/job-manifest-template.json for the recommended manifest shape.
Read references/example-migration-daily-briefing.md for a concrete migration from a stale scheduled digest to a fresh-runtime job.