{{ total }} job{{ 's' if total != 1 else '' }} · {{ active_count }} active {% if paused_count %}· {{ paused_count }} paused{% endif %}
| Job | Schedule | Status | Last Run | Result | Next | Actions |
|---|---|---|---|---|---|---|
|
{{ job.name }}
{% if job.description %}
{{ job.description }} {% endif %} |
{{ job.schedule_human }}
{{ job.schedule }} |
{% if job.status == 'active' %} active {% else %} paused {% endif %} | {% if job.has_output %} {{ job.last_run }} {% else %} no data {% endif %} | {% if job.has_output %} {{ job.last_pass }} pass {% if job.last_warn %} · {{ job.last_warn }} warn {% endif %} {% if job.last_fail %} · {{ job.last_fail }} fail {% endif %} {% else %} — {% endif %} | {% if job.status == 'active' and job.next_run %} {{ job.next_run }} {% elif job.status == 'paused' %} paused {% else %} — {% endif %} | {% if job.status == 'active' %} {% else %} {% endif %} |
No jobs in cron registry. Create .context/cron-registry.yaml or run fw cron generate.
This page reads from .context/cron-registry.yaml — the structured source of truth for scheduled jobs.
Pause comments out the job in the crontab. Resume re-enables it.
Run Now triggers the job immediately. Changes are written to the registry and synced to /etc/cron.d/.
CLI: fw cron generate regenerates crontab from registry.
fw audit schedule install copies the crontab to /etc/cron.d/.