Windmill · Arazzo Workflow

Windmill Schedule a Script

Version 1.0.0

Resolve a script, create a cron schedule for it, then read the schedule back.

1 workflow 1 source API 1 provider
View Spec View on GitHub AutomationInternal ToolsOpen-SourcePro-Code-API-CompositionScriptsWebhookWorkflow EngineWorkflowsArazzoWorkflows

Provider

windmill

Workflows

schedule-script
Create a recurring cron schedule for an existing Windmill script.
Confirms the script exists, registers a cron schedule pointing at it with the supplied arguments, then reads the schedule back to verify it.
3 steps inputs: args, schedule, schedulePath, scriptPath, timezone, token, workspace outputs: enabled, schedulePath
1
getScript
getScriptByPath
Read the script by path to confirm it exists before scheduling it.
2
createSchedule
createSchedule
Create a cron schedule targeting the script. is_flow is false because the target is a script, and the schedule is enabled immediately.
3
getSchedule
getSchedule
Read the schedule back to confirm it was registered with the expected cron expression and enabled state.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Windmill Schedule a Script
  summary: Resolve a script, create a cron schedule for it, then read the schedule back.
  description: >-
    Automates recurring execution by attaching a cron schedule to an existing
    script. The workflow first reads the script by path to confirm it exists and
    to surface its argument schema, creates a schedule that targets that script
    with a 6-field cron expression and timezone, then reads the schedule back to
    confirm it was registered and enabled. Every step spells out its request
    inline so the flow can be read and executed without opening the underlying
    OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: windmillApi
  url: ../openapi/windmill-api-openapi.yml
  type: openapi
workflows:
- workflowId: schedule-script
  summary: Create a recurring cron schedule for an existing Windmill script.
  description: >-
    Confirms the script exists, registers a cron schedule pointing at it with
    the supplied arguments, then reads the schedule back to verify it.
  inputs:
    type: object
    required:
    - token
    - workspace
    - scriptPath
    - schedulePath
    - schedule
    - timezone
    - args
    properties:
      token:
        type: string
        description: Windmill API token presented as a Bearer credential.
      workspace:
        type: string
        description: The Windmill workspace id.
      scriptPath:
        type: string
        description: Path to the script the schedule should run.
      schedulePath:
        type: string
        description: The unique path for the schedule (e.g. "u/admin/nightly").
      schedule:
        type: string
        description: 6-field cron expression with seconds (e.g. "0 0 12 * * *").
      timezone:
        type: string
        description: IANA timezone for the schedule (e.g. "UTC").
      args:
        type: object
        description: The argument map passed to the scheduled script on each run.
  steps:
  - stepId: getScript
    description: >-
      Read the script by path to confirm it exists before scheduling it.
    operationId: getScriptByPath
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.token"
    - name: workspace
      in: path
      value: $inputs.workspace
    - name: path
      in: path
      value: $inputs.scriptPath
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      scriptPath: $response.body#/path
  - stepId: createSchedule
    description: >-
      Create a cron schedule targeting the script. is_flow is false because the
      target is a script, and the schedule is enabled immediately.
    operationId: createSchedule
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.token"
    - name: workspace
      in: path
      value: $inputs.workspace
    requestBody:
      contentType: application/json
      payload:
        path: $inputs.schedulePath
        schedule: $inputs.schedule
        timezone: $inputs.timezone
        script_path: $inputs.scriptPath
        is_flow: false
        args: $inputs.args
        enabled: true
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      createdPath: $response.body
  - stepId: getSchedule
    description: >-
      Read the schedule back to confirm it was registered with the expected
      cron expression and enabled state.
    operationId: getSchedule
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.token"
    - name: workspace
      in: path
      value: $inputs.workspace
    - name: path
      in: path
      value: $inputs.schedulePath
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      enabled: $response.body#/enabled
      cron: $response.body#/schedule
  outputs:
    schedulePath: $inputs.schedulePath
    enabled: $steps.getSchedule.outputs.enabled

Work with this as data

Every workflow here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This workflow
curl "https://apis.io/api/v1/arazzo/windmill-schedule-script-workflow"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.