# Recurring Tasks

**URL:** https://community.glideapps.com/t/recurring-tasks/61239
**Category:** Ask for Help
**Created:** [May 1, 2023, 10:00pm UTC](https://community.glideapps.com/t/recurring-tasks/61239 "2023-05-01T22:00:08Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![rleinen](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/rleinen/32/43270_2.png) [@rleinen](https://community.glideapps.com/u/rleinen)
#### Post date: [May 1, 2023, 10:00pm UTC](https://community.glideapps.com/t/recurring-tasks/61239/1 "2023-05-01T22:00:08Z")

</div>

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)?

---

<div class="post-metadata">

### Author: ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)
#### Post date: [May 1, 2023, 11:42pm UTC](https://community.glideapps.com/t/recurring-tasks/61239/2 "2023-05-01T23:42:21Z")

</div>

So you would only want to duplicate the task when it is completed?

---

<div class="post-metadata">

### Author: ![rleinen](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/rleinen/32/43270_2.png) [@rleinen](https://community.glideapps.com/u/rleinen)
#### Post date: [May 2, 2023, 12:04am UTC](https://community.glideapps.com/t/recurring-tasks/61239/3 "2023-05-02T00:04:53Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![Jordan\_Jackson7737](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/jordan_jackson7737/32/36134_2.png) [@Jordan\_Jackson7737](https://community.glideapps.com/u/Jordan_Jackson7737)
#### Post date: [May 2, 2023, 3:30am UTC](https://community.glideapps.com/t/recurring-tasks/61239/4 "2023-05-02T03:30:47Z")

</div>

I’ve been able to do this using a mix of If → Then → Else components, Math, and Set Column Values action.

1. 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 |

1. 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 |

1. 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 |

1. 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 |

1. 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 |

1. Add a button to mark the task as complete

2. 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** …

1. 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 |

1. 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 |

1. 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 |

1. 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 |

1. 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 |

1. 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**
