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"}

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)

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).