This shows you the differences between two versions of the page.
Next revision | Previous revision Next revision Both sides next revision | ||
trigger:Cron [2017/09/04 02:56] peternlewis created |
trigger:Cron [2019/09/10 21:35] peternlewis [Examples] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | The *Cron trigger* lets you execute a macro periodically while you are logged in. | + | The *Cron trigger* (v8+) lets you execute a macro periodically while you are logged in. |
- | The [[https://en.wikipedia.org/wiki/Cron|Cron]] format lets you specify when a trigger will fire based on the time of day and and day of month and week. | + | The Cron format lets you specify when a trigger will fire based on the time of day and and day of month and week. |
The times are set using 5 (or 6) space separated fields, representing the | The times are set using 5 (or 6) space separated fields, representing the | ||
Line 12: | Line 12: | ||
* Optional year (2000-2099) | * Optional year (2000-2099) | ||
- | Each field can be a single number, or it can be a range (eg "3-7") or a set of numbers or ranges separated by commas (eg "3,5-7,9"). Alternatively, the field can be "*" which matches all values. You can also add "/" and a number after a range to match every N'th value (eg "0-25/5" will match every five minutes in the first half of the each hour). | + | Each field can be a single number, or it can be a range (eg "3-7") or a set of numbers or ranges separated by commas (eg "3,5-7,9"). Alternatively, the field can be `*` which matches all values. You can also add `/` and a number after a range to match every N'th value (eg "0-25/5" will match every five minutes in the first half of the each hour). |
- | + | ||
- | The trigger will match when all fields match the current time (as each minute ticks over). Exception: if either day of month or day of week is "*" and the other isn't, then the trigger will match only the non-* field, otherwise the trigger will match when either field matches. | + | |
For the Day of Week and Month fields, you can use the first three letters of the English name (eg "Jan" for January (1), or "Sun" for Sunday (0)). | For the Day of Week and Month fields, you can use the first three letters of the English name (eg "Jan" for January (1), or "Sun" for Sunday (0)). | ||
- | If the number is negative, it matches from the end of the range (eg -1 in day of the month means the last day of the month). | + | If the field starts with a minus sign (-), it matches from the end of the range (eg -1 in day of the month means the last day of the month). |
+ | |||
+ | The trigger will match when all fields match the current time (as each minute ticks over). Exception: if either day of month or day of week is `*` and the other isn't, then the trigger will match only the non-`*` field, otherwise the trigger will match when **either** field matches. | ||
If you start the day of the month field with a "+", then the trigger will match only if both the day of the week and day of the month field matches. This allows you to match the last Friday of the month using "-1-7" for the day of the month, and "+Fri" for the day of the week. | If you start the day of the month field with a "+", then the trigger will match only if both the day of the week and day of the month field matches. This allows you to match the last Friday of the month using "-1-7" for the day of the month, and "+Fri" for the day of the week. | ||
+ | Alternatively, the entire field can be one of: | ||
+ | |||
+ | * `@yearly` or `annually` — same as `0 0 1 1 *` (midnight at the start of January 1st each year). | ||
+ | * `@monthly ` — same as `0 0 1 * *` (midnight at the start of the 1st of each month). | ||
+ | * `@weekly ` — same as `0 0 * * 0` (midnight at the start of the each Sunday). | ||
+ | * `@daily ` or `@midnight` — same as `0 0 * * *` (midnight at the start of the each day). | ||
+ | * `@noon ` — same as `0 12 * * *` (noon in the middle of the each day). | ||
+ | * `@hourly ` — same as `0 * * * *` (at the start of each hour). | ||
+ | |||
+ | The [[token:TriggerValue|%TriggerValue%]] token will hold the current time and date (`yyyy-mm-dd hh:mm`). | ||
+ | |||
+ | Remember that your Mac **must** be awake for any trigger to run, and that if the screen is sleeping, locked, or screen saving, then UI actions generally will not work. | ||
+ | |||
+ | ===== Examples ===== | ||
+ | |||
+ | * `1 0 * * *` — triggers at one minute past midnight each day. | ||
+ | * `45 23 * * 6` — triggers at 23:45 (15 minutes before midnight) near the end of each Saturday. | ||
+ | * `0 12 * * Mon` — triggers at noon each Monday. | ||
+ | * `0 18 * * Fri` — triggers at 6pm each Friday. | ||
+ | * `0 9,12,18 * * *` — triggers at 9am, 12am and 3pm each day. | ||
+ | * `* * * * 1-5` — triggers at every minute on workdays. | ||
+ | * `*/15 * * * *` — triggers at every quarter hour. | ||
+ | * `0 18-23,0-8 * * *` — triggers at every hour outside office hours. | ||
+ | * `0 12 1 Apr *` — triggers at noon on April 1st. | ||
+ | * `30 8 17 Apr * 2019` — triggers at 8:30 on 17 April, 2019. | ||
+ | * `0 12 15 * *` — triggers at noon the 15th of each month. | ||
+ | * `0 12 15 * Mon` — triggers at noon each Monday and the 15th of each month. | ||
+ | * `0 12 15 * +Mon` — triggers at noon each 15th of each month if it is a Monday. | ||
+ | * `0-59/5 * * * *` — triggers every five minutes (at :00, :05, :10, etc). | ||
+ | * `3-59/5 * * * *` — triggers every five minutes (at :03, :08, :13, etc). | ||
===== See Also ===== | ===== See Also ===== | ||
+ | |||
+ | * [[https://en.wikipedia.org/wiki/Cron|Cron]] format. None of the Non-standard characters are supported except the slash (/). | ||
+ | * [[https://healthchecks.io/docs/cron/|HealthChecks.io examples]]. | ||
=== Triggers === | === Triggers === | ||
* [[Periodic|Periodic]] trigger | * [[Periodic|Periodic]] trigger | ||
- | * [[Time]] trigger | + | * [[Time of Day]] trigger |
+ | * [[Idle]] trigger | ||
* [[/Triggers|All Triggers]] | * [[/Triggers|All Triggers]] |