{% extends "admin/_layout.html" %} {% from "_macros.html" import icon %} {% set section = "schedules" %} {% block title %}Scheduling - {{ brand.name }}{% endblock %} {% block heading %}Scheduling{% endblock %} {% block admin_content %}

A schedule runs a piece of work because time has passed rather than because somebody asked just now — a daily summary, a check every Monday, a reminder in an hour. Each one has its own chat and replies into it, or files a report. People make their own under Scheduled; what you decide here is whether the feature exists and what it may spend.

{{ icon("shield", "icon--sm") }} This is the one thing here that spends model time with nobody watching. A schedule pointed at a chat that can run commands would run them unattended, so a scheduled task is never an agent chat — but everything else a model can reach, it can reach on a timer. Give Schedule work under Groups & permissions to the people who should have it; it is off for everybody by default.
{% if saved %}
{{ icon("check", "icon--sm") }} Saved.
{% endif %}

Switch

Off by default. Turning this off stops everything firing and deletes nothing — schedules keep their place and resume when it is turned back on. {% if total %} There {{ "is" if total == 1 else "are" }} {{ total }} schedule{{ "" if total == 1 else "s" }} on this instance, {{ active }} of them not paused. {% endif %}

How often it looks

Seconds. This is how late a run can be, not how often anything happens: the finest a schedule can be set to is one minute, so anything under that buys nothing. One indexed query per tick.

Seconds. A floor on how often one schedule may come round. Raise it if people are setting things to run more often than the work takes.

What it may spend

Refused at the point of creation, with the reason. Existing schedules over a lowered limit keep running; only new ones are refused.

Fifty schedules due at nine o'clock must not open fifty replies against one endpoint. The rest wait their turn rather than being dropped.

A schedule that comes round faster than its chat can answer would build a backlog for ever. Past this, a run is skipped and says so on the schedule rather than joining the queue.

{% endblock %}