mipo

Schedules

Schedules automate recurring scans on a configurable cadence. Each schedule runs one or more scan templates (or template groups) at a specified time — or continuously, with no clock at all: each run starts as soon as the previous one has finished. Every schedule gets a fixed random offset when it is created, so schedules sharing a time do not all start at once. Schedules can be enabled, disabled, or triggered manually with "Run Now".

Inputs

NameDescriptionAllowed valuesDefault
Name Unique label for this schedule Non-empty string —
Description Optional free-text note about this schedule Any text, max 10,000 characters Empty
Schedule Type How often the schedule fires. Continuous has no clock: the next run starts as soon as the previous one finishes. hourly, daily, weekly, monthly, cron, or continuous daily
Timezone Timezone for interpreting schedule times Valid IANA timezone UTC

Fields & columns

NameDescription
NameSchedule label, links to the edit form
DescriptionOptional note about the schedule
ScheduleHuman-readable description of the cadence (e.g., "Daily at 02:00 UTC")
TemplatesCount of scan templates and template groups assigned to this schedule
Next RunRelative time until the next scheduled execution (hidden when disabled)
Last RunRelative time since the last execution
StatusEnabled (green) or disabled (gray). Disabled schedules do not fire automatically.

How to

Create a Recurring Scan

  1. Click "Add Schedule" and fill in the name and schedule type.
  2. Select one or more scan templates or template groups to run.
  3. Save the schedule — it will be enabled by default.

Gotchas

  • Row actions live behind one "Actions" button per row. It opens a side panel that lists Enable or Disable, Run Now, Edit and Delete with a sentence on what each does; Delete is marked as destructive. Choosing one opens the same confirmation as before.
  • Each schedule gets a fixed random offset of 0–59 minutes when it is created; every run starts at the configured time plus that offset, so the actual start differs from the scheduled time. The offset is not an input and cannot be changed — the edit form shows the assigned value.
  • Disabled schedules can still be triggered manually via "Run Now".
  • "Run Now" creates scans for all configured templates immediately, regardless of the schedule.
  • Cron expressions follow standard 5-field syntax (minute hour day-of-month month day-of-week). Example: '0 2 * * 1' runs at 02:00 every Monday.
  • A Continuous schedule runs back-to-back: as soon as every scan from the previous run has finished (completed, failed or cancelled), the next run starts within one dispatcher poll. It never starts a new run sooner than one minute after the previous one started (or the schedule's jitter, if larger), so a template that fails instantly cannot hot-loop. One run is in flight per schedule at a time. Disabling the schedule stops the chain at the next boundary — the run that is already in progress is not cancelled. Next Run reads "when the current run finishes".

API calls (8)

MethodPathDescription
GET /api/scans/schedules List all schedules
POST /api/scans/schedules Create a new schedule
GET /api/scans/schedules/:id Get schedule details
PUT /api/scans/schedules/:id Update a schedule
POST /api/scans/schedules/:id/enable Enable a schedule
POST /api/scans/schedules/:id/disable Disable a schedule
POST /api/scans/schedules/:id/run-now Trigger a schedule immediately
DELETE /api/scans/schedules/:id Delete a schedule

Related

  • Run Scan — Manually trigger scans instead of waiting for a schedule
  • Recent Scans — Scheduled scans appear on the Recent Scans page when they fire
  • Scan Templates — Templates define what each scheduled scan actually does