cron
30 * * * *Hourly at :30
“At minute 30 of every hour”
Runs at 30 minutes past every hour (:30), 24 times per day.
Hourly24 runs/day
Want to customize this schedule or validate your own cron expression?
Try it live →Field Breakdown
| Field | Value | Meaning |
|---|---|---|
| minute | 30 | 30 |
| hour | * | every hour |
| day | * | every day of month |
| month | * | every month |
| weekday | * | every day of week |
30
minute
*
hour
*
day
*
month
*
weekday
Common Use Cases
- ✓Half-hour reports
- ✓Staggered cron jobs
Code Examples
Bash / crontab
# Run your script on schedule: 30 * * * * 30 * * * * /path/to/your/script.sh
Node.js (node-cron)
import cron from 'node-cron';
cron.schedule('30 * * * *', () => {
console.log('Running scheduled task');
});Python (APScheduler)
from apscheduler.schedulers.blocking import BlockingScheduler
scheduler = BlockingScheduler()
@scheduler.scheduled_job('cron', minute='30')
def my_job():
print('Running scheduled task')
scheduler.start()GitHub Actions Workflow
Generate a ready-to-use .github/workflows/schedule.yml file. Customize the name and download directly.
GitHub Actions
# .github/workflows/schedule.yml
name: Hourly at :30
on:
schedule:
- cron: '30 * * * *'
workflow_dispatch: # allow manual trigger
jobs:
run:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Run scheduled task
run: |
echo "Running on schedule: 30 * * * *"
# Add your commands here
Save as .github/workflows/schedule.yml in your repository root
Cron Syntax Quick Reference
| Field | Allowed Values | Special Chars |
|---|---|---|
| minute | 0–59 | * , - / |
| hour | 0–23 | * , - / |
| day of month | 1–31 | * , - / |
| month | 1–12 or JAN–DEC | * , - / |
| day of week | 0–7 or SUN–SAT | * , - / |
Special characters: *= any value ,= list -= range / = step
Related Patterns — Hourly
Need to build your own cron expression from scratch?
Open the Cron Expression Builder →