Skip to content
Unix cron100% Client-Side

Cron Expression for At 23:59 on Days 28-31 (Month-End Guard)

59 23 28-31 * *At 11:59 PM, between day 28 and 31 of the month

The Unix cron expression "59 23 28-31 * *" runs a task at 23:59 on days 28-31 (month-end guard). 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

  • Min59
  • Hour23
  • DOM28-31
  • Month*
  • DOW*

At 11:59 PM, between day 28 and 31 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 59 23 28-31 * * is interpreted in the Unix cron format.

Field breakdown of 59 23 28-31 * *
FieldValueAllowedStatus
Minute590-59Valid
Hour230-23Valid
Day of Month28-311-31Valid
Month*1-12 or JAN-DECValid
Day of Week*0-7 or SUN-SAT (0 and 7 = SUN)Valid

Use “59 23 28-31 * *” 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('59 23 28-31 * *', () => {
  console.log('Running task...');
});

Frequently asked questions

What does the cron expression "59 23 28-31 * *" mean?

"59 23 28-31 * *" is a Unix cron expression that means: At 11:59 PM, between day 28 and 31 of the month. It contains 5 fields — Minute (59), Hour (23), Day of Month (28-31), Month (*), Day of Week (*) — and works in any scheduler that accepts the Unix cron format.

How does "59 23 28-31 * *" 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 "59 23 28-31 * *" 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 “59 23 28-31 * *” schedule

59 23 28-31 * * is the Unix cron way to say “At 11:59 PM, between day 28 and 31 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.