Skip to content
Unix cron100% Client-Side

Cron Expression for First Day of Month at 9 AM

0 9 1 * *At 09:00 AM, on day 1 of the month

The Unix cron expression "0 9 1 * *" runs a task first day of month at 9 am. Preview the next run times in your timezone, read the plain-English translation, and copy ready-to-paste snippets for crontab, Node.js, GitHub Actions, and AWS EventBridge.

Live playground

  • Min0
  • Hour9
  • DOM1
  • Month*
  • DOW*

At 09:00 AM, on day 1 of the month

Unix cron · evaluated in UTC

24-hour view

Hover a highlighted hour for precise timestamps. Showing the next 50 executions.

Upcoming runs

Timezone

Runs are simulated in the selected IANA timezone. Auto-detected from your browser on first load.

Field breakdown

How each field of 0 9 1 * * is interpreted in the Unix cron format.

Field breakdown of 0 9 1 * *
FieldValueAllowedStatus
Minute00-59Valid
Hour90-23Valid
Day of Month11-31Valid
Month*1-12 or JAN-DECValid
Day of Week*0-7 or SUN-SAT (0 and 7 = SUN)Valid

Use “0 9 1 * *” in real code

Copy-paste configurations for the most common schedulers, converted to each platform’s dialect where needed.

import cron from 'node-cron';

cron.schedule('0 9 1 * *', () => {
  console.log('Running task...');
});

Frequently asked questions

What does the cron expression "0 9 1 * *" mean?

"0 9 1 * *" is a Unix cron expression that means: At 09:00 AM, on day 1 of the month. It contains 5 fields — Minute (0), Hour (9), Day of Month (1), Month (*), Day of Week (*) — and works in any scheduler that accepts the Unix cron format.

How does "0 9 1 * *" behave in UTC versus local time?

The classic cron daemon interprets every field in the machine's local timezone (from /etc/timezone or the TZ environment variable). If the server runs in UTC the schedule fires in UTC; otherwise shift the hours accordingly. Modern cronie also supports CRON_TZ to pin a single job to UTC.

Can I combine "0 9 1 * *" with holidays or blackout dates?

Standard cron has no holiday awareness. The common pattern is to keep the schedule as-is and guard the job: check a holiday calendar when the run starts and exit early on excluded days. That keeps the schedule declarative while your code owns the policy.

About the “0 9 1 * *” schedule

0 9 1 * * is the Unix cron way to say “At 09:00 AM, on day 1 of the month”. The simulator above evaluates it entirely in your browser — the timeline, the next-run table, and the timezone switcher all run client-side, so you can paste production schedules without them ever leaving your machine.

Every page in this directory follows the same structure: a plain-English translation, a per-field breakdown, platform-specific snippets, and a timezone-aware simulator. Move between the related intervals below to compare dialects, and validate one final time in the simulator with your own timezone before shipping.

Adjacent intervals and the same schedules expressed for other platforms.