home / skills / windmill-labs / windmill / schedules
This skill helps you configure and manage cron schedules for automated scripts and flows in Windmill, enabling reliable timed executions.
npx playbooks add skill windmill-labs/windmill --skill schedulesReview the files below or copy the command above to add this skill to your agents.
---
name: schedules
description: MUST use when configuring schedules.
---
# 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 midnight
- `0 0 12 * * *` - Daily at noon
- `0 */5 * * * *` - Every 5 minutes
- `0 0 9 * * 1-5` - Weekdays at 9 AM
- `0 0 0 1 * *` - First day of each month
## CLI Commands
```bash
# Push schedules to Windmill
wmill sync push
# Pull schedules from Windmill
wmill sync pull
# List schedules
wmill schedule
```
This skill provides practical guidance for configuring and managing schedules that run scripts and flows automatically on cron schedules. It explains the required file naming, the 6-field cron format (including seconds), and the CLI commands used to push, pull, and list schedules. Use it whenever you need reliable, repeatable automation for workflows.
Schedules are defined as YAML files named with the pattern {path}.schedule.yaml; the schedule path is derived from the filename. Each schedule uses a six-field cron expression (seconds, minutes, hours, day of month, month, day of week) to control execution. The CLI lets you push schedule files to the platform, pull them back for editing, and list active schedules.
What cron format does the platform use?
It uses a six-field cron with seconds first: second minute hour day month day-of-week.
How do I deploy schedule changes?
Use the CLI: 'wmill sync push' to upload schedule files, 'wmill sync pull' to fetch them, and 'wmill schedule' to list active schedules.