Explain a cron schedule and list its next runs
Validate a cron expression, describe it in plain English, and list its next run times in a time zone, with daylight-saving changes handled.

Details
Syntax: 5 fields (minute hour day-of-month month day-of-week), lists, ranges, steps, names (JAN, MON), 7 = Sunday, @daily, @weekly, @monthly, @yearly, @hourly. When both day fields are set, a day matches if either matches (standard cron rule).
DST: a run in a skipped hour does not happen; a run in a repeated hour happens once.
Price: CHF 0.001 per call (first 100 calls per day free).
Example: {"expression":"30 2 * * *","time_zone":"Europe/Zurich","from":"2027-03-27T00:00:00Z","count":3} → 2027-03-27T02:30+01:00, then 2027-03-29T02:30+02:00 (02:30 does not exist on 28 March).
Call it
RESTcurl -X POST https://api.tausendwerk.xyz/v1/cron \
-H "Content-Type: application/json" \
-d '{"expression":"30 2 * * *","time_zone":"Europe/Zurich","from":"2027-03-27T00:00:00Z","count":3}'MCP tool namecronAfter the free 100 calls per day, add a key: Authorization: Bearer tw_live_…. Pricing
Try it
Runs against the live API with the free allowance.
Input schema JSON Schema
{
"type": "object",
"additionalProperties": false,
"required": [
"expression"
],
"properties": {
"expression": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"time_zone": {
"type": "string",
"maxLength": 64,
"default": "UTC",
"description": "IANA time zone, e.g. \"Europe/Zurich\""
},
"from": {
"type": "string",
"format": "date-time",
"description": "Start instant. Default: now."
},
"count": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 5
}
},
"examples": [
{
"expression": "30 2 * * *",
"time_zone": "Europe/Zurich",
"from": "2027-03-27T00:00:00Z",
"count": 3
}
]
}