How to trigger a plan?
Calendar Mode
Does not depend on other information — you can directly determine if it matches based on the current date.
First, recurring type:
Second, one-shot type — the trigger is removed after execution:
A shortcut for "every day":
Multiple dates can be specified using a list:
Note that when using on, such as on: [Sat, Sun], matching any one date will remove the entire trigger. If you want to remove only the matching one, you can use on as multiple independent triggers:
Trigger Examples
Recurring:
- June 12th every year:
every: 6-12 - Every Wednesday:
every: Wednesdayorevery: Wed - The 15th of every month:
every: 15 - Every day in August:
every: Augustorevery: Aug
One-shot:
- On July 15th:
on: 7-15 - On the next 5th:
on: 5 - On August 26, 2025:
on: 2025-8-26— note thatevery: 2025-8-26also only fires once, but differs in that it won't be auto-deleted
Note: if you specify the 31st but the month has no such day, it will not trigger at month-end. The mode strictly adheres to the specified date.
Lunar Calendar Dates
Compared to the Gregorian calendar, you need to prefix the date with 农历 (lunar calendar). If specifying a leap month, append 闰 at the end.
Spaces are also allowed:
Additionally, you can use the 24 solar terms after every:
Gregorian Repeating Mode
The task date is determined based on relative descriptions.
Specify dates by week and day, within a monthly or yearly cycle.
- Set a start date:
from: 2025-11-19. Must include the year. If the month is omitted, it defaults to January; if the day is also omitted, it defaults to the 1st. In some cases, this parameter can be omitted, such as for monthly or yearly cycles. - Set a cycle: every N days, weeks, months, a specific month, or years —
every: 3week,every: 2month,every: June,every: year. - Set a specific day, described by day number or weekday: 3rd day
on: 3d, last dayon: -1dayorlast: day, first Mondayon: Monday, last Fridayon: -Friorlast: Fri.
A Specific Day Each Month/Year
First Monday of every month:
Second-to-last day of every month:
Last Saturday of every month:
Second-to-last Saturday of every month:
Last Saturday of every June:
Last Saturday of every year:
Every N Days/Weeks/Months/Years
Without on or last, the from date is the first day, and the trigger fires every time the every interval passes. Examples below.
Every 16 days, fires on 2025-08-11, 2025-08-27, 2025-09-12, ...
Every 3 weeks, fires on 2025-11-21, 2025-12-12, ...
Every 2 months, fires on 2025-11-21, 2026-01-21, ...
Every 2 years, fires on 2025-11-21, 2027-11-21, ...
For once a year, you can simply use
every: 11-21.
Note: if from is the 31st of a month, and the next month has no 31st, it will fire on the last day of that month (e.g., the 30th).
A Specific Day within Every N Days/Weeks/Months/Years
Starting from November 21, 2025, on the Wednesday of the first week in every 3-week cycle. This means it fires on November 19 (already past), December 10, ...
Starting from August 2025, on the 7th-to-last day of the first month in every 2-month cycle. This means it fires on August 25, October 25, ...
Starting from 2025, runs on the 3rd day of the first year in every 2-year cycle:
Every three years on September 4, starting from September 4, 2026. The first occurrence is 2026-09-04, followed by 2029-09-04.
Both on and last can also be followed by a list to specify multiple dates. For example, you can specify every Monday and Saturday of every two-week period.
The date specified by from doesn't need to be precise to the day. If the cycle is in years, year-level precision is fine; if in days, day-level precision is needed. For weekly cycles, any day within the starting week works and represents that entire week.
There is one constraint: it only looks for matches within the first unit of each cycle — the first week of every N weeks, the first month of every N months, etc. If you want it to match a later unit in the cycle, adjust the from date accordingly.
Dependency Mode
Keywords: if, after, and before. if is followed by a tag, and multiple conditions can be combined with and and or. after and before are followed by a duration in days or weeks: 2d, Sat. Both after and before can be used together.
You may want Plan B to trigger along with Plan A, or Plan B to trigger a certain number of days before or after Plan A. This relationship can be described as: Plan B's trigger depends on Plan A's trigger.
First, add a tag to Plan A:
To trigger simultaneously, simply use if with the tag:
2 days after Plan A triggers (January 13):
6 days before Plan A triggers (January 5):
The first Saturday before Plan A triggers (not counting the same day, January 4):
The second Saturday before Plan A triggers (December 28):
If a plan's timing is uncertain — for example, future support for triggering on rainy days — plans that depend on it cannot guarantee they will fire.
Compound Mode
If a plan has multiple trigger conditions, put all triggers in a list.
Fire the plan every Saturday and the last Sunday of every month:
Note that if a plan uses trigger, you cannot also place triggers at the top level. The following is illegal:
trigger can be empty, it will be treated as being closed.
Relationships Between Triggers
The above fires when any trigger is satisfied — an "OR" relationship.
If all trigger conditions must be satisfied — an "AND" relationship — specify it as follows.
For example, "the last day of the month AND that day is a Saturday":
Except
Keyword: except, followed by tags and calendar-mode content, with list support.
When except is satisfied, the plan will not fire, even if other triggers are also satisfied.
Delayed Execution
Keyword: delay_if, followed by tags and calendar-mode content, with list support.
When a plan has been triggered but delay_if is also satisfied, the trigger is suppressed. The plan will execute immediately the next time delay_if is no longer satisfied, and a delay notice will be shown.
For example: if there's work on Saturday, postpone to the next day:
When is the Trigger active?
Each trigger mode can include a from: 2026-9-3 field. This means that the trigger will be skipped before September 3, 2026, and will only be considered on and after September 3, 2026.
For recurring modes, from also serves the additional purpose of determining the first occurrence of the recurrence cycle.
If from is not specified, the trigger is considered always active.