Depending on the type of entry, it may be helpful to have a recurring date βΒ however, in other cases, it may cause more harm. For example, tasks that should only update when you have completed them should not be have an automatic Next Due
, since it may get calculated before you actually complete it said task. I recommend doing these by hand.
<aside> <img src="https://img.icons8.com/color/480/000000/blunt-bulb.png" alt="https://img.icons8.com/color/480/000000/blunt-bulb.png" width="40px" /> On the other hand, events that occur at a given frequency regardless of any action you take are ideal for recurring events. For example: birthdays, bills due, holidays, etc.
</aside>
While I find it helpful to have both my tasks and my events in the same calendar, you may find it more suitable to split them. Below, you can select which layout you would refer.
<aside> <img src="https://img.icons8.com/color/480/000000/scanner.png" alt="https://img.icons8.com/color/480/000000/scanner.png" width="40px" /> Duplicate the template here
</aside>
If you decide for a particular entry of yours to be recurring in an automatic fashion, make sure you check the π Auto Due
property and provide the Frequency
at which it will happen.
<aside> <img src="https://img.icons8.com/color/480/000000/scanner.png" alt="https://img.icons8.com/color/480/000000/scanner.png" width="40px" /> Duplicate the template here
</aside>
Events only require a Frequency
value to become recurring, while tasks still need you to specify so using the π Auto Due
property.
In addition, I have created a relation between the two such that a task can be related to a particular event and vice-versa.
For both cases, in calendar view, the dates would appear only if the previous date has already passed such that there is only one copy of a task/event in the calendar at once.
A similar formula is used for yearly, bi-monthly, tri-monthly, etc.
dateAdd(dateAdd(dateSubtract(dateAdd(prop("Parsed Date"), dateBetween(now(), prop("Parsed Date"), "weeks") - mod(dateBetween(now(), prop("Parsed Date"), "weeks"), 2) + 2, "weeks"), 1, "days"), hour(prop("Date")), "hours"), minute(prop("Date")), "minutes")
date(now()) == date(prop("Next Due")) and month(now()) == month(prop("Next Due")) and year(now()) == year(prop("Next Due"))
formatDate(now(), "YW") == formatDate(prop("Next Due"), "YW")