Automate · Triggers
Run workflows on a schedule
A schedule starts a deployed workflow automatically using a five-field cron expression. Schedules belong to one workflow in one project environment, and each stores its own timezone, input, and enabled state.
In the app Projects → project → Schedules
Problems this solves
Start with the recurring problem, then use this feature when its boundary matches the outcome you need.
Problem
Eliminate a recurring manual check
Someone repeatedly exports a report, reconciles systems, or performs cleanup at the same time every day or month.
How this helps
Attach a timezone-aware cron Schedule to the deployed workflow and manage its enabled state without editing a server cron table.
See the scheduled-workflow example →Problem
Keep two calendars in sync
A person works from separate calendars, so a booking in one can leave the other looking free and invite a double-booking.
How this helps
The calendar-sync example runs every 15 minutes to copy, update, and remove tracked event copies in both directions.
Open the Google Calendar Sync example →Declare a schedule in YAML
workflows:
- id: monthly-report
file: src/monthly-report.ts
trigger: schedule
schedule:
cron: "0 8 1 * *"
timezone: "America/Chicago"
input:
mode: monthly
enabled: trueCron fields are minute, hour, day of month, month, and day of week. Always name an IANA timezone when local time matters; relying on UTC can move a business-hour job to the wrong local hour.
Add a schedule in the app
- Open the target project environment and select Schedules.
- Under Add schedule, choose the workflow.
- Select a preset or enter a five-field cron expression.
- Choose the timezone and create the schedule.
- Confirm the row shows enabled and a plausible next-run time.
SolidActions validates schedule cadence against your plan. If a cron fires more frequently than allowed, slow it down or use the upgrade path shown by the app.
Pause, remove, or return to YAML
- Toggle a schedule off to pause future fires without removing its configuration.
- Delete an app-created schedule when it should no longer exist.
- Remove a YAML-backed schedule from YAML and redeploy; deleting only its runtime row is temporary.
- When an app edit overrides a YAML schedule, use the reset action to restore YAML cron, timezone, and enabled state.
Existing schedule rows continue to reflect their stored configuration. A redeploy synchronizes YAML defaults, while an intentional app override remains active until reset.
Manage schedules from the CLI
solidactions schedule set my-project '0 9 * * 1-5' \
--workflow daily-summary \
--timezone America/Chicago \
--input '{"audience":"ops"}'
solidactions schedule list my-project
solidactions schedule delete my-project SCHEDULE_IDA workflow has one schedule. If it already has one, schedule set updates that schedule and records an intentional runtime override; the override remains across deploys until it is reset in the app.
Multiple environments need extra care.
The current schedule CLI commands do not expose an environment flag. For a project family with production, staging, and dev instances, avoid CLI schedule changes until its targeting is clarified. Instead, select the intended environment in the app and manage that environment's schedules on its Schedules tab.
Verify a scheduled run
- Check that both the project and workflow are enabled.
- Confirm the schedule row is enabled and its next-run time matches the chosen timezone.
- After that time, open Runs and filter to the workflow.
- Confirm the trigger source is schedule/cron and inspect its input and output.
The features examplesinclude a YAML-scheduled workflow.
Next: monitor the result in Runs.