Windmill · JSON Structure

Windmill Schedule Structure

Structure definition for Windmill Schedule

Type: Properties: 0
AutomationInternal ToolsOpen SourceProCode API CompositionScriptsWebhooksWorkflow EngineWorkflows

Windmill Schedule Structure is a JSON Structure definition published by Windmill. It conforms to the https://json-schema.org/draft/2020-12/schema meta-schema.

Meta-schema: https://json-schema.org/draft/2020-12/schema

JSON Structure

Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/windmill/refs/heads/main/json-structure/windmill-schedule-structure.json",
  "title": "Windmill Schedule Structure",
  "description": "Structure definition for Windmill Schedule",
  "structure": {
    "type": "object",
    "required": [
      "path",
      "edited_by",
      "edited_at",
      "schedule",
      "script_path",
      "timezone",
      "extra_perms",
      "is_flow",
      "enabled",
      "email",
      "permissioned_as"
    ],
    "properties": {
      "path": {
        "type": "string",
        "description": "The unique Windmill path for this schedule. Must be of the form `u/<user>/<path>` or `f/<folder>/<path>`."
      },
      "edited_by": {
        "type": "string",
        "description": "Username of the last person who edited this schedule"
      },
      "edited_at": {
        "type": "string",
        "description": "Timestamp of the last edit"
      },
      "schedule": {
        "type": "string",
        "description": "Cron expression with 6 fields (seconds, minutes, hours, day of month, month, day of week). Example '0 0 12 * * *' for daily at noon"
      },
      "timezone": {
        "type": "string",
        "description": "IANA timezone for the schedule (e.g., 'UTC', 'Europe/Paris', 'America/New_York')"
      },
      "enabled": {
        "type": "boolean",
        "description": "Whether the schedule is currently active and will trigger jobs"
      },
      "script_path": {
        "type": "string",
        "description": "Path to the script or flow to execute when triggered"
      },
      "is_flow": {
        "type": "boolean",
        "description": "True if script_path points to a flow, false if it points to a script"
      },
      "args": {
        "type": "ScriptArgs"
      },
      "extra_perms": {
        "type": "object",
        "description": "Additional permissions for this schedule"
      },
      "email": {
        "type": "string",
        "description": "Email of the user who owns this schedule, used for permissioned_as"
      },
      "permissioned_as": {
        "type": "string",
        "description": "The user or group this schedule runs as (e.g., 'u/admin' or 'g/mygroup')"
      },
      "error": {
        "type": "string",
        "description": "Last error message if the schedule failed to trigger"
      },
      "on_failure": {
        "type": "string",
        "description": "Path to a script or flow to run when the scheduled job fails"
      },
      "on_failure_times": {
        "type": "number",
        "description": "Number of consecutive failures before the on_failure handler is triggered (default 1)"
      },
      "on_failure_exact": {
        "type": "boolean",
        "description": "If true, trigger on_failure handler only on exactly N failures, not on every failure after N"
      },
      "on_failure_extra_args": {
        "type": "ScriptArgs"
      },
      "on_recovery": {
        "type": "string",
        "description": "Path to a script or flow to run when the schedule recovers after failures"
      },
      "on_recovery_times": {
        "type": "number",
        "description": "Number of consecutive successes before the on_recovery handler is triggered (default 1)"
      },
      "on_recovery_extra_args": {
        "type": "ScriptArgs"
      }
    }
  }
}