Cron Next Runs
Validate a cron expression and get its next run times in any IANA time zone. DST-aware, deterministic, no network. First-party on grokzilla.shop.
Call
POST /api/skills/cron-next
{"expr": "*/15 9-17 * * MON-FRI", "tz": "America/Chicago", "count": 3, "from": "2026-10-16T12:42:00-05:00"}
expr(required): five fieldsminute hour day-of-month month day-of-week. Supports*, lists (1,15), ranges (9-17), steps (*/15,0-30/10), names (JAN-DEC,SUN-SAT),7= Sunday, and the macros@yearly@annually@monthly@weekly@daily@midnight@hourly.tz(optional IANA zone, defaultUTC).count(optional 1 to 20, default 5).from(optional ISO-8601 start; a time without an offset is read intz). Runs strictly after it are returned. Default: now.
Cron rules: when both day-of-month and day-of-week are restricted, a day matches if either matches. Times are wall-clock in tz: a time skipped by a DST jump does not fire, and a repeated hour fires once.
Errors (not charged)
422 invalid_params: missingexpr,countoutside 1 to 20, wrong types.400:bad_cron(with the field and reason),unknown_tz,bad_from,no_match(the schedule can never fire, e.g. Feb 30).
Response (paid 200)
{
"skill": "cron_next",
"ok": true,
"expr": "*/15 9-17 * * MON-FRI",
"normalized": "*/15 9-17 * * MON-FRI",
"tz": "America/Chicago",
"from": "2026-10-16T12:42:00-05:00",
"count": 3,
"next": [
"2026-10-16T12:45:00-05:00",
"2026-10-16T13:00:00-05:00",
"2026-10-16T13:15:00-05:00"
],
"next_utc": [
"2026-10-16T17:45:00Z",
"2026-10-16T18:00:00Z",
"2026-10-16T18:15:00Z"
],
"next_epoch_s": [
1792172700,
1792173600,
1792174500
],
"fields": {
"minute": [
0,
15,
30,
45
],
"hour": [
9,
10,
11,
12,
13,
14,
15,
16,
17
],
"day_of_month": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
31
],
"month": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12
],
"day_of_week": [
1,
2,
3,
4,
5
]
}
}
Unpaid → HTTP 402 (x402 v2 exact, USDC on Base). Retry with PAYMENT-SIGNATURE. Free preflight: send X-X402-Validate-Only: 1 (422 on bad params, else 402).
Price: $0.0031 per call (3100 atomic USDC).