I’ve been able to do this using a mix of If → Then → Else components, Math, and Set Column Values action.
- Create an Interval Table with the [Interval] title and number of days [Value] (make sure this column is a Number
| Interval |
Value (Num) |
| Daily |
1 |
| Weekly |
7 |
| Bi-Weekly |
14 |
| Yearly |
365 |
- Create your task Table. I would have the input field for [Interval] be a choice component from the Interval Table
| Date |
Task |
Interval |
| 05/01/2023 |
Brush Teeth |
Daily |
| 05/02/2023 |
Credit Card Payment |
Bi-Weekly |
| 05/05/2023 |
Register Car |
Yearly |
- Next Add A Relation Column where Interval (Task Table)=Interval (Interval Table)
| Date |
Task |
Interval |
Relation |
| 05/01/2023 |
Brush Teeth |
Daily |
Daily |
| 05/02/2023 |
Credit Card Payment |
Bi-Weekly |
Bi-Weekly |
| 05/05/2023 |
Register Car |
Yearly |
Yearly |
- Next Add a Lookup Column to Lookup the Interval Value
| Date |
Task |
Interval |
Relation |
Value |
| 05/01/2023 |
Brush Teeth |
Daily |
Daily |
1 |
| 05/02/2023 |
Credit Card Payment |
Bi-Weekly |
Bi-Weekly |
14 |
| 05/05/2023 |
Register Car |
Yearly |
Yearly |
365 |
- Next add a Math Column to compute [Date] + [Value] = [Dynamic Date Column] *this is why it’s important to have the Interval Value be a Number
| Date |
Task |
Interval |
Relation |
Value |
Dynamic Date Column |
| 05/01/2023 |
Brush Teeth |
Daily |
Daily |
1 |
05/02/2023 |
| 05/02/2023 |
Credit Card Payment |
Bi-Weekly |
Bi-Weekly |
14 |
05/16/2023 |
| 05/05/2023 |
Register Car |
Yearly |
Yearly |
365 |
05/05/2024 |
-
Add a button to mark the task as complete
-
Add an Set Column Value action where the new [Date] field will be set to [Dynamic Date Column]
Now the [Date] field will automatically update to the next interval and the Dynamic Date Column will automatically be computed for the next occurrence.
Monthly is a little harder to do…
- Create a Monthly Interval Table
| Month |
Value (Num) |
| January |
31 |
| February |
28 |
| March |
31 |
| April |
30 |
| May |
31 |
| June |
30 |
| July |
31 |
| August |
31 |
| September |
30 |
| October |
31 |
| November |
30 |
| December |
31 |
- You’ll want to add a format date column and have it format the [Date] field with MMMM to get the [Month]. For this step I also renamed the [Dynamic Date Column] to [Non-Monthly Date] and [Value] to [Non-Monthly Value]
| Date |
Task |
Interval |
Relation |
Non-Monthly Value |
Month |
Non-Monthly Date |
| 06/01/2023 |
Brush Teeth |
Daily |
Daily |
1 |
June |
06/02/2023 |
| 05/02/2023 |
Credit Card Payment |
Bi-Weekly |
Bi-Weekly |
14 |
May |
05/16/2023 |
| 05/05/2023 |
Register Car |
Yearly |
Yearly |
365 |
May |
05/05/2024 |
- You’ll add a Relation where [Month] on the Task Table= [Month] on the Monthly Interval Table
| Date |
Task |
Interval |
Relation |
Non-Monthly Value |
Month |
Relation |
Non-Monthly Date |
| 06/01/2023 |
Brush Teeth |
Daily |
Daily |
1 |
June |
June |
06/02/2023 |
| 05/02/2023 |
Credit Card Payment |
Bi-Weekly |
Bi-Weekly |
14 |
May |
May |
05/16/2023 |
| 05/05/2023 |
Register Car |
Yearly |
Yearly |
365 |
May |
May |
05/05/2024 |
- You’ll Lookup the [Value]
| Date |
Task |
Interval |
Relation |
Non-Monthly Value |
Month |
Relation |
Monthly Value |
Non-Monthly Date |
| 06/01/2023 |
Brush Teeth |
Daily |
Daily |
1 |
June |
June |
30 |
06/02/2023 |
| 05/02/2023 |
Credit Card Payment |
Bi-Weekly |
Bi-Weekly |
14 |
May |
May |
31 |
05/16/2023 |
| 05/05/2023 |
Register Car |
Yearly |
Yearly |
365 |
May |
May |
31 |
05/05/2024 |
- You’ll do math to compute the next interval date. [Date] + [Monthly Value] = [Monthly Date]
| Date |
Task |
Interval |
Relation |
Non-Monthly Value |
Month |
Relation |
Monthly Value |
Non-Monthly Date |
Monthly Date |
| 06/01/2023 |
Brush Teeth |
Daily |
Daily |
1 |
June |
June |
30 |
06/02/2023 |
07/01/2023 |
| 05/02/2023 |
Credit Card Payment |
Bi-Weekly |
Bi-Weekly |
14 |
May |
May |
31 |
05/16/2023 |
06/02/2023 |
| 05/05/2023 |
Register Car |
Yearly |
Yearly |
365 |
May |
May |
31 |
05/05/2024 |
06/05/2023 |
- Then set up an If → Then → Else: If [Interval] is Monthly then [Monthly Date] else [Non-Monthly] Date = [Set Date]
| Date |
Task |
Interval |
Relation |
Non-Monthly Value |
Month |
Relation |
Monthly Value |
Non-Monthly Date |
Monthly Date |
Set Date |
| 06/01/2023 |
Brush Teeth |
Daily |
Daily |
1 |
June |
June |
30 |
06/02/2023 |
07/01/2023 |
06/02/2023 |
| 05/02/2023 |
Credit Card Payment |
Bi-Weekly |
Bi-Weekly |
14 |
May |
May |
31 |
05/16/2023 |
06/02/2023 |
05/16/2023 |
| 05/05/2023 |
Register Car |
Yearly |
Yearly |
365 |
May |
May |
31 |
05/05/2024 |
06/05/2023 |
05/05/2024 |
| 05/05/2023 |
Pay Credit Card |
Monthly |
|
|
May |
May |
31 |
|
06/05/2023 |
06/05/2023 |
Adjust the Set Column Value field to set [Date] to [Set Date] when you click the complete button
I know that is absolute insanity; but it’s a workaround I’ve figured out. If anyone has an easier way to do it, I am all ears too
4 Likes