{"success":true,"version":"v1","request":{"tool":"get_calculator_schema","calculator_id":"cron-schedule"},"result":{"entity_type":"calculator","id":"cron-schedule","calculator_id":"cron-schedule","canonical_url":"https://tttkmbb.com/developer/cron-schedule","name":"Cron Schedule Calculator","title":"Cron Expression Calculator – Next Run Times and Plain-English Description of a 5-Field Crontab Schedule","category":"developer","category_name":"Developer & IT","tool_name":"calculate_cron_schedule","featured_mcp_tool":false,"description":"Parses a standard 5-field crontab expression (minute, hour, day of month, month, day of week with *, lists, ranges, steps and names) and lists the next run times in UTC after a start date and time, with a plain-English summary of the schedule.","use_when":"You want to check when a crontab, CI or scheduler entry will fire next, or need a human-readable description of a cron expression.","do_not_use_when":"The expression has 6 fields with seconds or Quartz tokens (L, W, #), you need local-time evaluation with daylight-saving rules, or you only need the day of the week of a date (use day-of-week).","inputs":[{"name":"expression","label":"Cron expression","type":"string","required":true,"description":"Five fields: minute hour day-of-month month day-of-week; supports *, lists (1,15), ranges (1-5), steps (*/15, 1-30/5), month and weekday names (jan, mon), 0 or 7 for Sunday and the @hourly/@daily/@weekly/@monthly/@yearly shortcuts.","example":"0 9 * * 1-5"},{"name":"start_date","label":"Start date","type":"date","required":false,"default":"today","description":"UTC date from which to search (runs strictly after start_date + start_time are listed).","example":"2026-09-26"},{"name":"start_time","label":"Start time (UTC)","type":"string","required":false,"default":"00:00","description":"UTC time of day on start_date from which to search, HH:MM.","example":"00:00"},{"name":"count","label":"Number of runs","type":"integer","required":false,"default":5,"min":1,"max":20,"description":"How many upcoming run times to list.","example":5}],"outputs":[{"name":"first_run","label":"Next run","type":"string","decimals":4,"description":"First run time after the start instant (ISO 8601, UTC)."},{"name":"next_runs","label":"Next runs","type":"string_list","decimals":4,"description":"The next count run times after the start instant (ISO 8601, UTC)."},{"name":"interval_description","label":"Schedule in words","type":"string","decimals":4,"description":"Plain-English summary of the expression, e.g. 'at 09:00 on Monday–Friday'."},{"name":"fields","label":"Parsed fields","type":"object","decimals":4,"description":"The minute, hour, day_of_month, month and day_of_week sets the expression expands to ('*' when a field allows every value)."},{"name":"runs_per_day_max","label":"Runs per matching day","type":"integer","decimals":4,"description":"Number of hour × minute combinations that fire on a day that matches the date fields."}],"input_schema":{"type":"object","properties":{"expression":{"description":"Five fields: minute hour day-of-month month day-of-week; supports *, lists (1,15), ranges (1-5), steps (*/15, 1-30/5), month and weekday names (jan, mon), 0 or 7 for Sunday and the @hourly/@daily/@weekly/@monthly/@yearly shortcuts.","type":"string","examples":["0 9 * * 1-5"]},"start_date":{"description":"UTC date from which to search (runs strictly after start_date + start_time are listed).","type":"string","format":"date","default":"today","examples":["2026-09-26"]},"start_time":{"description":"UTC time of day on start_date from which to search, HH:MM.","type":"string","default":"00:00","examples":["00:00"]},"count":{"description":"How many upcoming run times to list.","type":"integer","minimum":1,"maximum":20,"default":5,"examples":[5]}},"additionalProperties":false,"required":["expression"]},"output_schema":{"type":"object","properties":{"first_run":{"description":"First run time after the start instant (ISO 8601, UTC).","type":"string"},"next_runs":{"description":"The next count run times after the start instant (ISO 8601, UTC).","type":"array","items":{"type":"string"}},"interval_description":{"description":"Plain-English summary of the expression, e.g. 'at 09:00 on Monday–Friday'.","type":"string"},"fields":{"description":"The minute, hour, day_of_month, month and day_of_week sets the expression expands to ('*' when a field allows every value).","type":"object"},"runs_per_day_max":{"description":"Number of hour × minute combinations that fire on a day that matches the date fields.","type":"integer"}}},"formula":"A minute fires when minute ∈ M, hour ∈ H, month ∈ MO and the day matches: if day-of-month and day-of-week are both restricted (neither starts with *) the day matches when EITHER field matches, otherwise BOTH must match (Vixie cron)","method":"Times are evaluated in UTC on the proleptic Gregorian calendar; the search is capped at 5 years and a CALCULATION_ERROR is raised when no minute matches (e.g. '0 0 31 2 *'). Named months/weekdays use the first three letters, 7 means Sunday.","sources":[{"name":"crontab(5) – tables for driving cron (Linux man-pages, man7.org)","url":"https://man7.org/linux/man-pages/man5/crontab.5.html","type":"reference","retrieved_at":"2026-09-24"},{"name":"Cron (Wikipedia)","url":"https://en.wikipedia.org/wiki/Cron","type":"reference","retrieved_at":"2026-09-24"}],"freshness":{"type":"daily","max_age_seconds":86400,"note":"Depends on the current date when start_date is left at its default."},"examples":[{"name":"Weekdays at 09:00 from Saturday 2026-09-26","inputs":{"expression":"0 9 * * 1-5","start_date":"2026-09-26","start_time":"00:00","count":5},"expected":{"first_run":"2026-09-28T09:00:00Z","next_runs":["2026-09-28T09:00:00Z","2026-09-29T09:00:00Z","2026-09-30T09:00:00Z","2026-10-01T09:00:00Z","2026-10-02T09:00:00Z"],"interval_description":"at 09:00 on Monday–Friday","runs_per_day_max":1},"url":"https://tttkmbb.com/api/v1/calculate/cron-schedule?expression=0+9+*+*+1-5&start_date=2026-09-26&start_time=00%3A00&count=5"},{"name":"Every 15 minutes from 2026-01-01 00:00","inputs":{"expression":"*/15 * * * *","start_date":"2026-01-01","start_time":"00:00","count":3},"expected":{"next_runs":["2026-01-01T00:15:00Z","2026-01-01T00:30:00Z","2026-01-01T00:45:00Z"],"interval_description":"every 15 minutes","runs_per_day_max":96},"url":"https://tttkmbb.com/api/v1/calculate/cron-schedule?expression=*%2F15+*+*+*+*&start_date=2026-01-01&start_time=00%3A00&count=3"}],"faq":[{"q":"What happens when both day-of-month and day-of-week are given?","a":"As in Vixie/ISC cron, '0 0 13 * 5' fires on the 13th of every month AND on every Friday (either condition). If one of the two fields is '*' (or a '*/n' step) the other one alone decides."},{"q":"Are the times in my local time zone?","a":"No, everything is UTC. A crontab on a server runs in that server's local zone, so shift start_time and the results by the server's UTC offset (use time-zone-converter)."},{"q":"Is the start instant itself included?","a":"No; only runs strictly after start_date + start_time are listed, so 00:00 on the start date with '0 0 * * *' returns the following day first."}],"tags":["cron expression","crontab","next run time","cron parser","schedule calculator"],"related":[{"calculator_id":"day-of-week","reason":"Weekday of a specific date."},{"calculator_id":"unix-timestamp","reason":"Epoch seconds for a run time."},{"calculator_id":"time-zone-converter","reason":"Shift the UTC run times to a server's local zone."}],"links":{"html":"https://tttkmbb.com/developer/cron-schedule","markdown":"https://tttkmbb.com/developer/cron-schedule.md","json":"https://tttkmbb.com/developer/cron-schedule.json","api":"https://tttkmbb.com/api/v1/calculate/cron-schedule","schema":"https://tttkmbb.com/api/v1/calculators/cron-schedule","openapi":"https://tttkmbb.com/openapi.json","mcp":"https://tttkmbb.com/mcp"},"version":"v1","updated_at":"2026-09-24"},"timestamp":"2026-09-24T03:45:43Z","next_actions":[{"tool":"run_calculator","calculator_id":"cron-schedule","reason":"Run Cron Schedule Calculator with the inputs above."}],"links":{"markdown":"https://tttkmbb.com/developer/cron-schedule.md"}}