cron
0 0 1 * *First Day of Every Month at Midnight
“At 00:00, on day 1 of the month”
Runs at midnight on the 1st day of every month. Common for monthly billing, reporting, and resets.
Monthly1 per month runs/day
Want to customize this schedule or validate your own cron expression?
Try it live →Field Breakdown
| Field | Value | Meaning |
|---|---|---|
| minute | 0 | 0 |
| hour | 0 | 0 |
| day | 1 | 1 |
| month | * | every month |
| weekday | * | every day of week |
0
minute
0
hour
1
day
*
month
*
weekday
Lint Analysis
Info
This time may fall within a DST transition gap for some timezones. Jobs could be skipped or run twice.
Common Use Cases
- ✓Monthly billing cycle
- ✓Monthly report generation
- ✓Quota reset
- ✓Invoice generation
- ✓Monthly database archival
Code Examples
Bash / crontab
# Run your script on schedule: 0 0 1 * * 0 0 1 * * /path/to/your/script.sh
Node.js (node-cron)
import cron from 'node-cron';
cron.schedule('0 0 1 * *', () => {
console.log('Running scheduled task');
});Python (APScheduler)
from apscheduler.schedulers.blocking import BlockingScheduler
scheduler = BlockingScheduler()
@scheduler.scheduled_job('cron', minute='0', hour='0', day='1')
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: First Day of Every Month at Midnight
on:
schedule:
- cron: '0 0 1 * *'
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: 0 0 1 * *"
# 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 — Monthly
Need to build your own cron expression from scratch?
Open the Cron Expression Builder →