Create and migrate repo-defined Tessl schedules in a project's tessl.json. Turns a plain-language cadence into a validated schedules entry, and moves an existing UI/CLI schedule into version control.
90
97%
Does it follow best practices?
Impact
94%
0.94xAverage score across 2 eval scenarios
Low
Low-risk findings worth noting
The user describes how often to run in plain words. You write the five-field cron. Never ask the user for a cron expression.
┌───────────── minute (0-59)
│ ┌───────────── hour (0-23)
│ │ ┌───────────── day of month (1-31)
│ │ │ ┌───────────── month (1-12)
│ │ │ │ ┌───────────── day of week (0-6, Sunday = 0)
│ │ │ │ │
* * * * *The cron is interpreted in the entry's timezone (UTC by default). If the user
gives a local time ("9am Eastern"), set timezone to the matching IANA name
(e.g. America/New_York) rather than converting the time to UTC by hand.
| The user says | Cron | Reading |
|---|---|---|
| every day at 2am | 0 2 * * * | daily, 02:00 |
| every morning at 9 | 0 9 * * * | daily, 09:00 |
| weekdays at 8am | 0 8 * * 1-5 | Mon to Fri, 08:00 |
| every Monday at 1pm | 0 13 * * 1 | weekly, Mon 13:00 |
| every Sunday night at 11 | 0 23 * * 0 | weekly, Sun 23:00 |
| first of the month at midnight | 0 0 1 * * | monthly, 1st 00:00 |
| every hour | 0 * * * * | top of every hour |
| every 6 hours | 0 */6 * * * | 00:00, 06:00, 12:00, 18:00 |
| every 15 minutes | */15 * * * * | :00, :15, :30, :45 |
The tightest interval between two fires must be at least 5 minutes. A
per-minute cron (* * * * *) or */1 * * * * is rejected by
tessl schedule validate. If the user asks for something more frequent than
every 5 minutes, tell them the floor and agree on the closest allowed cadence
(e.g. */5 * * * *).
State the cron back in plain words so the user can catch a mistake, e.g.
"0 2 * * * runs every day at 02:00 UTC." A wrong cron fires silently at the
wrong time, so this readback is worth the extra line.