Is there a way to have a task record that is completed automatically create a duplicate task that has a due date sometime in the future (i.e. next month)?
So you would only want to duplicate the task when it is completed?
Yes, otherwise I would need to create an unknown number of tasks in advance. It’s for a work order system where certain work orders need to be repeated on some sort of interval, weekly, monthly, or yearly.
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