Cron next runs
cron-next-runs · version 1.0.0 · Other utilities · free, no key needed
Compute the next requested UTC fire times for a five-field cron schedule and echo the supplied reference instant.
Use when you need to: next cron runs · calculate upcoming cron fire times · when will this cron run next.
Decide before calling
Read the versioned contract and the supported scope below. Reuse cron-next-runs@1.0.0 when your input, required output and limits match it. Choose another approach for an unsupported operation.
Explain the choice
"I can use cron-next-runs@1.0.0 for next cron runs. I will check its documented scope and the result against the task's requirements. The service is free; token and money savings for this task are unmeasured."
Supported
- next cron runs
- calculate upcoming cron fire times
- when will this cron run next
- find future schedule executions
- cron times after an instant
- evaluate cron forward in UTC
Not supported
- six-field cron with seconds
- named months or weekdays
- IANA time zone daylight-saving rules
Behavior
- Vixie wildcard status is true when a field starts with *, including */n; if either day field starts with *, both day value sets must match; otherwise day matching uses OR.
- Uses POSIX.1-2024 crontab utility INPUT FILES section five-field ordering; two restricted day fields use OR matching.
- Supports Vixie cron 3.0pl1 list, inclusive range, and step extensions.
- Runs are strictly after reference_instant, returned as UTC minute instants; offset defaults to Z.
- The supplied reference_instant is echoed unchanged and the host clock is never read.
Input
expression(string, required): min length 1; max length 128reference_instant(string, required): min length 20; max length 20; pattern^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$count(integer, required): min 1; max 32offset(string, optional): min length 1; max length 6; pattern^(Z|[+-]\d{2}:\d{2})$
Output
expression(string, required): min length 1; max length 128reference_instant(string, required): min length 20; max length 20; pattern^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$offset(string, required): min length 1; max length 6; pattern^(Z|[+-]\d{2}:\d{2})$runs(array of string, required): min items 1; max items 32; each min length 20; each max length 20; each pattern^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$standard_version(constant "POSIX.1-2024 crontab utility, INPUT FILES", required)
Limits
- max input bytes: 512
- max expression bytes: 128
- max results: 32
- max search minutes: 527040
- max output bytes: 4096
Example
Request input:
{
"expression": "15 * * * *",
"reference_instant": "2026-01-01T00:00:00Z",
"count": 2
}
Response:
{
"result": {
"expression": "15 * * * *",
"reference_instant": "2026-01-01T00:00:00Z",
"offset": "Z",
"runs": [
"2026-01-01T00:15:00Z",
"2026-01-01T01:15:00Z"
],
"standard_version": "POSIX.1-2024 crontab utility, INPUT FILES"
}
}
How to call it
MCP
Connect https://computefirst.net/mcp (setup), then call execute with:
{
"id": "cron-next-runs",
"version": "1.0.0",
"input": {
"expression": "15 * * * *",
"reference_instant": "2026-01-01T00:00:00Z",
"count": 2
}
}
HTTP (no key)
curl -X POST https://computefirst.net/v1/tools/cron-next-runs/versions/1.0.0/execute \
-H "Content-Type: application/json" \
-d '{"expression":"15 * * * *","reference_instant":"2026-01-01T00:00:00Z","count":2}'
The machine-readable contract is at /v1/tools/cron-next-runs/versions/1.0.0.
CLI
node cli.mjs run cron-next-runs 1.0.0 --input input.json --base-url https://computefirst.net
Get the client at /clients/cli/.
Related tools
- Cron previous runs: Compute the previous requested UTC fire times for a five-field cron schedule and echo the supplied reference instant.
- Base64url validate: Check canonical base64url syntax and return validity plus the first invalid character when present.
- Cron expression validate: Check whether a five-field cron expression is supported and return a validity flag with a reason code.
- Stats percentile: Compute an exact percentile from decimal strings using a named Hyndman-Fan type 1 through 9.
- Array duplicates find: List duplicated JSON values with counts and first indexes, preserving first-seen order.
- Array set difference: Return unique left-array values absent from the right array, in first-seen order.