{"actions":{"bootstrapAndRun":{"effect":"installs rote if missing, inspects, prepares, and asks before running","href":"https://play.modiqo.ai/install?play=rajkaria/cron-when@0.1.1","method":"GET","rel":"https://rote.dev/rels/bootstrap-and-run","requiresConsent":true,"responseMediaType":"text/x-shellscript"},"inspect":{"command":"rote play inspect https://play.modiqo.ai/rajkaria/cron-when@0.1.1","effect":"read-only"},"installCliOnly":{"effect":"installs the rote CLI, nothing else","href":"https://play.modiqo.ai/install","method":"GET","rel":"https://rote.dev/rels/install-cli","requiresConsent":true,"responseMediaType":"text/x-shellscript"},"run":{"command":"rote play run https://play.modiqo.ai/rajkaria/cron-when@0.1.1","effect":"executes the play locally after consent","headless":{"approvalAssertion":"--yes","approvalRequiredBeforeInvocation":true,"commandTemplate":"rote play run https://play.modiqo.ai/rajkaria/cron-when@0.1.1 <name=value...> --yes","stdinPolicy":"never pipe input to automate the interactive Ready selector"},"requiresConsent":true}},"description":"You have a cron expression and a suspicion. This tells you what it says in English, the next five times it actually fires — in your zone and in UTC, side by side — how often that works out to be, and whether the clocks are going to ruin it. Two things most cron readers get wrong, and this one does not. When both day-of-month and day-of-week are restricted, a day matches if EITHER matches: \u00600 0 13 * 5\u0060 is the thirteenth AND every Friday, not Friday the thirteenth. And a schedule pinned to an hour that a zone skips does not fire that day at all — \u006030 1 * * *\u0060 in Europe/London simply does not happen on the morning the clocks go forward — so that day is not offered as a fire, and the warning says which day and why. The other side of the same coin, an hour that happens twice when the clocks go back, is reported too. Ranges, lists, steps, wrapping ranges like \u006022-2\u0060, three-letter month and day names, Sunday as both 0 and 7, and the macros \u0060@daily\u0060, \u0060@hourly\u0060, \u0060@weekly\u0060, \u0060@monthly\u0060, \u0060@yearly\u0060 and \u0060@midnight\u0060 all rea","distribution":{"digest":"sha256:32ad7d39b9e105fb89559a3eecdaa7e141724d7d1e6b22b51f518639aaed4a63","mediaType":"application/vnd.modiqo.rote-flow","size":45001,"verifiedBy":"rote verifies the downloaded archive against this digest before it runs"},"effects":{"credentialsProvidedBy":"runner","credentialsRemainLocal":true,"declaredWrites":[],"publisherReceivesCredentials":false},"id":"https://play.modiqo.ai/rajkaria/cron-when@0.1.1","inputPolicy":{"omittedValues":"inspect_full_parameters_before_collecting_values_or_consent","optionalWithDefault":"show_default_and_accept_override","optionalWithoutDefault":"omit_unless_supplied","required":"ask","secrets":"collect_locally_outside_conversation"},"links":{"docs":"https://rote.dev","page":"https://play.modiqo.ai/rajkaria/cron-when@0.1.1","protocol":"https://play.modiqo.ai/.well-known/rote","self":"https://play.modiqo.ai/rajkaria/cron-when@0.1.1.json"},"name":"cron-when","owner":{"kind":"user","slug":"rajkaria"},"parameters":[{"default":"","description":"Five fields, or a macro like @daily. Ranges, lists, steps and three-letter names all read the way cron reads them.","example":"30 9 * * 1-5","input":{"allowCustom":true,"choices":[],"label":"Expr"},"name":"expr","required":false,"type":"string"},{"default":"","description":"Empty uses the machine's zone. This is the zone whose clock changes decide whether a run is skipped or doubled.","example":"Europe/London","input":{"allowCustom":true,"choices":[],"label":"Tz"},"name":"tz","required":false,"type":"string"},{"default":5,"description":"How many upcoming fires to print, each in your zone and in UTC.","example":5,"input":{"allowCustom":true,"choices":[],"label":"Count"},"name":"count","required":false,"type":"integer"},{"default":"false","description":"true runs the whole Play against bundled synthetic input, so a first run needs nothing configured and touches nothing of yours.","example":"false","input":{"allowCustom":true,"choices":[],"label":"Demo"},"name":"demo","required":false,"type":"string"},{"default":"","description":"Empty reads the real clock. An ISO-8601 instant makes the run reproducible, which is how the tests and the demo produce the same bytes on every machine.","example":"2026-09-05T14:22:03Z","input":{"allowCustom":true,"choices":[],"label":"Now"},"name":"now","required":false,"type":"string"}],"preparation":[{"action":{"command":"rote play inspect https://play.modiqo.ai/rajkaria/cron-when@0.1.1 --json","effect":"read-only"},"step":1,"type":"inspect_local_readiness"},{"references":["/parameters"],"step":2,"type":"collect_parameters","whenValuesOmitted":"Run step 1 before collecting inputs or showing defaults; omittedFields are unknown values, not absent defaults or exhaustive choices."},{"references":["/parameters","/requirements","/effects"],"step":3,"type":"review"},{"consentBoundary":"the user approves the exact play and parameter values","references":["/parameters","/requirements","/effects"],"step":4,"type":"obtain_run_consent"},{"action":{"command":"rote play run https://play.modiqo.ai/rajkaria/cron-when@0.1.1","headlessCommandTemplate":"rote play run https://play.modiqo.ai/rajkaria/cron-when@0.1.1 <name=value...> --yes"},"preservesAcquisitionBoundaries":["adapter_selection","oauth_dcr","google_discovery","static_token_setup","runtime_security_checks"],"requiresConsent":true,"step":5,"type":"run"}],"producedBy":{"roteVersion":"0.80.0"},"publishedAt":"2026-09-05T17:50:00.745265+00:00","reference":"rajkaria/cron-when@0.1.1","requested":"rajkaria/cron-when","requirements":{"adapters":[],"browser":{"dependencies":[],"runtime":false,"signIn":false},"hostToolRequirements":[{"command":"python3","required":true,"versionRequirement":null}],"localTools":["python3"],"roteCli":{"minimumVersion":"0.91.0"},"sessions":false},"resolution":"latest","schema":"rote.play.v1","stats":{"downloads":1,"installs":0},"steps":{"count":1,"names":["report"]},"title":"cron-when","type":"play","version":"0.1.1","visibility":"public"}