Operations

Schedules

Schedules enable time-triggered, autonomous agent execution. Define cron-based or interval-based schedules to run agents and workflows automatically — for recurring reports, data synchronization, monitoring sweeps, maintenance tasks, and any other periodic operation that doesn't require a human to initiate.

Overview

Schedules remove the human from repetitive, time-sensitive workflows. Instead of manually triggering an agent every morning to generate a status report or every hour to check for anomalies, you define the schedule once and Procurator handles execution reliably.

Each scheduled run creates a full Session record — identical to a manually triggered session. The complete execution trace, token counts, costs, and any approval requests are all captured exactly as if a human had triggered the run.

Schedules vs Workflows

A Schedule is a trigger mechanism — it defines when to run. A Workflow defines how to run (the execution graph). Schedules can trigger either a direct agent invocation (with a fixed prompt) or a full Workflow execution.

Control Panel

The screenshot below shows the live Procurator administration interface for this feature.

app.operativus.ai/procurator/schedules
Procurator schedules administration interface

Schedules — cron and interval triggers for automated agent and workflow execution.

Key Capabilities

Cron & Interval Triggers

Use standard cron expressions for complex schedules (every weekday at 9am) or simple interval expressions (every 15 minutes).

🌍

Timezone Support

Configure schedules in any IANA timezone. Procurator handles DST transitions automatically — no offset math required.

📨

Parameterized Prompts

Inject dynamic values into the schedule's input prompt using template variables — dates, identifiers, or environment-specific values resolved at execution time.

🔁

Retry on Failure

Configure automatic retries on execution failure with configurable backoff. Receive alerts when a schedule exhausts its retry budget.

📊

Execution History

View the complete run history for any schedule — success/failure rates, duration trends, and links to each run's full Session record.

🔔

Failure Alerts

Configure notifications for failed schedule runs via email, Slack, or webhook — catch broken schedules before they go unnoticed.

Administration

Creating a Schedule

  1. 1
    Navigate to Operations → Schedules

    The Schedules page lists all active and paused schedules with their next run time and last run status.

  2. 2
    Click "Create Schedule"

    The schedule creation form opens.

  3. 3
    Name and describe the schedule

    Give the schedule a descriptive name (e.g., "Daily Cost Report — Engineering") and an optional description.

  4. 4
    Select the target

    Choose whether this schedule runs an Agent directly (with a fixed prompt) or triggers a Workflow execution. Select the agent or workflow from the dropdown.

  5. 5
    Configure the trigger

    Enter a cron expression or select a simple interval. Use the cron preview to verify the next 5 run times are as expected.

  6. 6
    Set timezone

    Select the IANA timezone for the schedule. Defaults to the organization's configured timezone.

  7. 7
    Configure the input

    For agent targets: write the prompt template. For workflow targets: provide the workflow input JSON. Use {{date}}, {{datetime}}, and custom variables in templates.

  8. 8
    Configure failure behavior

    Set retry count, retry delay, and failure notification channel.

  9. 9
    Save and activate

    The schedule is created and immediately activated. The next run is scheduled according to the cron expression.

Configuration Reference

FieldTypeRequiredDescription
namestringrequiredDisplay name for this schedule.
targetTypeenumrequiredAGENT or WORKFLOW.
targetIdstringrequiredThe agentId or workflowId to execute on trigger.
cronExpressionstringrequiredStandard 5-field cron expression or interval shorthand (e.g., @hourly, @daily).
timezonestringoptionalIANA timezone name (e.g., America/New_York). default: UTC
inputTemplatestring / objectoptionalPrompt string (for agent targets) or JSON object (for workflow targets). Supports {{date}}, {{datetime}}, {{iso_date}} template variables.
maxRetriesintegeroptionalNumber of retry attempts on failure. default: 0
retryDelaySecondsintegeroptionalDelay between retries in seconds. default: 60
failureWebhookUrlstringoptionalURL to POST on schedule run failure after all retries are exhausted.
enabledbooleanoptionalWhether the schedule is active. default: true

Cron Expression Syntax

Procurator uses standard 5-field cron syntax: minute hour day-of-month month day-of-week

# Field ranges # ┌───────── minute (0-59) # │ ┌─────── hour (0-23) # │ │ ┌───── day of month (1-31) # │ │ │ ┌─── month (1-12 or JAN-DEC) # │ │ │ │ ┌─ day of week (0-7 or SUN-SAT, 0 and 7 = Sunday) # │ │ │ │ │ # * * * * * # Examples 0 9 * * 1-5 Every weekday at 9:00 AM 0 */4 * * * Every 4 hours 0 8 1 * * First of every month at 8:00 AM */15 * * * * Every 15 minutes 0 18 * * 5 Every Friday at 6:00 PM # Shorthand aliases @hourly → 0 * * * * @daily → 0 0 * * * @weekly → 0 0 * * 0 @monthly → 0 0 1 * *

Schedule History

Navigate to Operations → Schedule History (or click "View History" on any schedule) to see the run log. Each row shows:

  • Run ID: Unique identifier for this execution. Links to the full Session record.
  • Triggered At: The scheduled time the run was due and the actual fire time (should differ by <1 second).
  • Status: COMPLETED, FAILED, RETRYING, or SKIPPED (if the previous run was still active when the next fire time arrived — configurable).
  • Duration: Time from run start to completion.
  • Tokens / Cost: Token consumption and cost for this run.
  • Retry Attempt: Which attempt this was (1, 2, 3...) if the run was retried.

Managing Schedules

  • Pause a schedule: Click the toggle on the schedule row to disable it. Future runs will not fire until re-enabled. In-flight runs complete normally.
  • Run now: Trigger an immediate one-off execution of the schedule's target without affecting the recurring schedule. Useful for testing.
  • Edit: Modify any field of the schedule. Changes take effect on the next scheduled fire time.
  • Delete: Remove the schedule permanently. Historical run records are retained in Schedule History.
Concurrent Run Behavior

By default, if a scheduled run is still executing when the next fire time arrives, the new run is SKIPPED to prevent overlapping executions. Configure allowConcurrent: true on the schedule to allow parallel runs (use with caution for stateful operations).

Execution Context

Scheduled runs execute under a system identity, not a specific user account. This has several implications:

  • No user context: The agent does not have access to user-specific memory unless the schedule explicitly provides a userId context parameter.
  • Budget attribution: Costs from scheduled runs are attributed to the agent's configured FinOps budget, tagged as scheduled-origin runs.
  • Approval gates: If a scheduled workflow hits an Approval Gate, the session pauses and enters the approvals queue — it does not auto-approve. Design scheduled workflows to avoid approval gates for fully automated pipelines, or configure auto-approve for trusted scheduled sources.

Error Handling & Retries

When a scheduled run fails, Procurator applies the configured retry policy:

  1. The run is marked FAILED and a retry is scheduled after retryDelaySeconds.
  2. The retry fires and creates a new Session record (linked to the original run via scheduleRunId).
  3. If all retries are exhausted and the run is still failing, the schedule run is marked FAILED_FINAL and the failure webhook is called.
  4. The schedule itself remains active — the next scheduled fire time proceeds normally.
Idempotency for Retried Operations

If your agent performs external writes (database updates, API mutations), ensure those operations are idempotent — a retried run will re-execute the full agent prompt, potentially re-applying the same operation. Use idempotency keys where supported by the target system.

Permissions

  • schedules:read— View schedules and run history
  • schedules:create— Create new schedules
  • schedules:modify— Edit, pause, resume, and trigger schedules
  • schedules:delete— Delete schedules