Schedules
DevOps & SecurityschedulesSchedules is an Agent Skill for devops & security published in the windmill-labs/windmill repository on GitHub: a SKILL.md instruction file an AI agent can load to do this task.
MUST use when configuring schedules.
How to use this skill
Bring this guide into your coding agent with a prompt tailored to the tool you use.
- Open your project in Codex.
- Copy and paste the prompt below.
- Review files and risks before approving any action.
Inspect the Agent Skill at https://github.com/windmill-labs/windmill/blob/HEAD/system_prompts/auto-generated/skills/schedules/SKILL.md and all supporting files. Report provenance, permissions, scripts, dependencies, and security risks. Propose an exact installation into .agents/skills/schedules, but wait for my approval before writing files or running scripts.
Copying this prompt does not install or run the skill. Review third-party files before use.
Windmill Schedules
Schedules run scripts and flows automatically on a cron schedule.
File Naming
Schedule files use the pattern: {path}.schedule.yaml
Example: f/folder/daily_sync.schedule.yaml
Note: The path is derived from the filename, not stored in the file content.
Cron Expression Format
Windmill uses 6-field cron expressions (includes seconds):
┌───────────── second (0-59)
│ ┌───────────── minute (0-59)
│ │ ┌───────────── hour (0-23)
│ │ │ ┌───────────── day of month (1-31)
│ │ │ │ ┌───────────── month (1-12 or jan-dec)
│ │ │ │ │ ┌───────────── day of week (0-6, 0=Sunday, or sun-sat)
│ │ │ │ │ │
* * * * * *
Common Examples:
0 0 0 * * *- Daily at midnight0 0 12 * * *- Daily at noon0 */5 * * * *- Every 5 minutes0 0 9 * * 1-5- Weekdays at 9 AM0 0 0 1 * *- First day of each month
CLI Commands
wmill sync push deploys local changes to the workspace and can be destructive to remote state — only suggest/run it when the user explicitly asks to deploy/publish/push, not when they say "run", "try", or "test". The commands below never mutate remote state, so they're safe to run yourself — note that sync pull does overwrite local files to match the remote (use sync pull --dry-run to only preview), while schedule just lists.
# Push schedules to Windmill — only when the user explicitly asks to deploy
wmill sync push
# Pull schedules from Windmill
wmill sync pull
# List schedules
wmill schedule