Schedules, clock changes, catch-up, and what happens when something fails.
Every job stores a wall-clock time and an IANA timezone — "09:00 in Europe/Berlin" — and the actual instant is worked out from the calendar each time. Nothing is ever computed by adding twenty-four hours to the last run, which is the mistake that makes a 09:00 job drift to 08:00 for half the year.
At 02:30 on a spring-forward night, there is no 02:30. Your job runs at the first minute that does exist, or skips that day — your choice, per job. The run is marked in the history so the timestamp explains itself.
It runs once. You do not get two copies of Monday's ticket. Which of the two occurrences it uses is yours to set; the default is the first.
A job can skip weekends, skip a holiday list you supply, or move to the next or previous working day. "The last working day of the month" is a real option rather than something you approximate with the 28th.
Each dispatch asks every job what it was owed since it last ran, rather than "is it 09:00 now". If Atlassian is unavailable for six hours, the runs that were owed still happen afterwards, in order, capped at ten per job so an outage never turns into a flood.
A run that fails does not advance the job's position, so it is retried. A run that succeeds does, so it cannot repeat. A brand-new job is owed the occurrences that fall after you created it — never a backlog from its start date.
Every attempt is recorded in the job's history with what happened. Five failures in a row switch the job off and say why, rather than failing quietly forever. Editing and saving the job switches it back on.
It is an estimate, and the app says so on the screen next to it. We count one step per scheduled run plus one per issue a run created or commented on, which mirrors how Atlassian counts an automation trigger and a loop iteration. We cannot read your Atlassian usage meter — no API exposes it to an app — so this is what these jobs would have cost as automation rules, not a figure from your bill. A manual test run is excluded: pressing a button avoided nothing.
There is no euro or dollar figure anywhere in the app, because Atlassian has not published the overage price. We would rather show you a number you can check than one we invented.
The app, not you. Atlassian's scheduled triggers carry no user identity, so there is no way for a scheduled run to act as a person. What we do instead:
What we will not do is ask you to make this app a Jira administrator so that it can check permissions more often. That is a much larger privilege than the one it would be fencing.