{% extends "dashboard/base.html" %} {% block title %}Schedule {{ schedule.name }} — {{ dashboard_title }}{% endblock %} {% block page_title %}Schedule Detail{% endblock %} {% block content %}
arrow_back Back to Schedules
schedule

{{ schedule.name }}

Agent: {{ agent_name }}

{% if schedule.source == 'admin' %} Admin {% else %} Workspace {% endif %} {% if schedule.enabled %} Enabled {% else %} Disabled {% endif %}
Last Run: {{ format_datetime(schedule.last_run_at) if schedule.last_run_at else 'Never' }}
Next Run: {{ format_datetime(schedule.next_run_at) if schedule.next_run_at else '—' }}

Recent Runs

{% if recent_runs %}
{% for run in recent_runs %} {% endfor %}
Status Started Duration Cost Error Details
{% if run.status == 'completed' %} Completed {% elif run.status == 'failed' %} Failed {% elif run.status == 'running' %} Running {% elif run.status == 'timeout' %} Timeout {% else %} {{ run.status | capitalize }} {% endif %}
{{ format_datetime(run.started_at) if run.started_at else '—' }} {{ relative_time(run.started_at) if run.started_at else '' }}
{% if run.usage and run.usage.duration_ms is not none %} {% set dur_ms = run.usage.duration_ms %} {% if dur_ms < 1000 %} {{ dur_ms }}ms {% elif dur_ms < 60000 %} {{ "%.1f"|format(dur_ms / 1000) }}s {% else %} {{ "%.0f"|format(dur_ms / 60000) }}m {{ "%.0f"|format((dur_ms % 60000) / 1000) }}s {% endif %} {% else %} {% endif %} {% if run.usage and run.usage.cost_usd is not none %} ${{ "%.4f"|format(run.usage.cost_usd) }} {% else %} {% endif %} {% if run.error %} {{ run.error[:60] }}{% if run.error | length > 60 %}…{% endif %} {% else %} {% endif %} open_in_new
{% else %}
history

No runs yet

Execution history will appear here once the schedule fires.

{% endif %}
{% if error %}
error {{ error }}
{% endif %}

Edit Schedule

Cron: {{ schedule.cron_expr }}

Custom instructions for this schedule. Injected into the agent's system prompt when the schedule fires. Max 4000 characters.

Enabled
{% if schedule.source == 'admin' %}

Danger Zone

Deleting this schedule is permanent. The schedule will be soft-deleted from the database and removed from APScheduler.

{% endif %}

info {% if schedule.source == 'admin' %} Admin schedules are persisted in the database and survive gateway restarts. They can be edited and deleted from this page. {% else %} Runtime schedule edits update APScheduler and persistence but do NOT update AGENT.md. On gateway restart, AGENT.md values take precedence. {% endif %}

{% endblock %}