Skip to main content
edited for clarity
Source Link

There is an org-mode FAQ about this here. The recommendation is to use that recommends using a command to generate a separate task for each day. That might seem heavyweight, thoughbut the FAQ suggests reading this blog post for the pros of this approach. The folding nature of org makes it easy to hide long lists.

Since theIf you prefer infinite recurrence, note that there are two kinds. There is an infinite task recurrence, like in the question, which uses SCHEDULED and the plus time increment syntax. This entry only shows up onin the agenda once (it regenerates everyand is regenerated each time you mark it is completed), the impact of the infinite recurrence is less than for recurring calendar entries, which all show up on the calendar at the same timeleaving a completion log. So maybe the simplest thing isA fairly simple solution would be to use this and schedule a task on the day that the recurrence should end, reminding you to end the recurrence.

An infinite calendar recurrence would be a case where, instead of a single timestamp, you can use an elisp expression to match multiple dates. These entries show up on the agenda on every matching date. There is anotheran org-mode FAQ about conditions like end dates for appointments, using arbitrary elispthis, here. The thing about this approach is, you can't combine it with regeneration. I tried inserting one of these expressions into the SCHEDULED: field on a task and it works, but it works by making thestill behaves like a recurring calendar entry, not a recurring task show up on every day of the agenda where. I tried adding increments like +1d before the expression matchesclose angle bracket and it didn't seem to do anything. It's not apparently possible to get a task with this kind of customized scheduling to regenerate when it's marked as done (adding "+1d" before the close angle bracket didn't do it for me). SoEven if it has a TODO keyword, it's a single task, that happens to show up multiple times, so if you mark it done it's done everywhere. You could use this method if you don't need to log completion times. (Just leave it as TODO, or you could, for example, reset the statefrom DONE back to TODO when reviewingyou review your agenda in the morning, etc.) In fact, you don't even need the TODO or SCHEDULED keywords if you want Or submit a patch to do it this way.make TODOs with elisp based recurrences regenerate :)

See also the manual node for repeated tasks.

There is an org-mode FAQ about this here. The recommendation is to use a command to generate a separate task for each day. That might seem heavyweight, though the FAQ suggests reading this blog post for the pros of this approach.

Since the task only shows up on the agenda once (it regenerates every time it is completed), the impact of the infinite recurrence is less than for recurring calendar entries, which all show up on the calendar at the same time. So maybe the simplest thing is to schedule a task on the day that the recurrence should end, reminding you to end the recurrence.

There is another org-mode FAQ about conditions like end dates for appointments, using arbitrary elisp, here. I tried inserting one of these expressions into the SCHEDULED: field on a task and it works, but it works by making the task show up on every day of the agenda where the expression matches. It's not apparently possible to get a task with this kind of scheduling to regenerate when it's marked as done (adding "+1d" before the close angle bracket didn't do it for me). So you could use this method if you don't need to log completion times. (Just leave it as TODO, or reset the state when reviewing your agenda in the morning, etc.) In fact, you don't even need the TODO or SCHEDULED keywords if you want to do it this way.

See also the manual node for repeated tasks.

There is an org-mode FAQ here that recommends using a command to generate a separate task for each day. That might seem heavyweight, but the FAQ suggests reading this blog post for the pros of this approach. The folding nature of org makes it easy to hide long lists.

If you prefer infinite recurrence, note that there are two kinds. There is an infinite task recurrence, like in the question, which uses SCHEDULED and the plus time increment syntax. This entry only shows up in the agenda once and is regenerated each time you mark it completed, leaving a completion log. A fairly simple solution would be to use this and schedule a task on the day that the recurrence should end, reminding you to end the recurrence.

An infinite calendar recurrence would be a case where, instead of a single timestamp, you can use an elisp expression to match multiple dates. These entries show up on the agenda on every matching date. There is an org-mode FAQ about using this, here. The thing about this approach is, you can't combine it with regeneration. I tried inserting one of these expressions into the SCHEDULED: field on a task and it works but still behaves like a recurring calendar entry, not a recurring task. I tried adding increments like +1d before the close angle bracket and it didn't seem to do anything. It's not apparently possible to get a task with this kind of customized scheduling to regenerate when it's marked as done. Even if it has a TODO keyword, it's a single task, that happens to show up multiple times, so if you mark it done it's done everywhere. You could use this method if you don't need to log completion times, or you could, for example, reset from DONE back to TODO when you review your agenda in the morning. Or submit a patch to make TODOs with elisp based recurrences regenerate :)

See also the manual node for repeated tasks.

add link to blog post about the explicit repeat approach
Source Link

There is an org-mode FAQ about this here. The recommendation is to use a command to generate a separate task for each day. That might seem heavyweight, so:though the FAQ suggests reading this blog post for the pros of this approach.

Since the task only shows up on the agenda once (it regenerates every time it is completed), the impact of the infinite recurrence is less than for recurring calendar entries, which all show up on the calendar at the same time. So maybe the simplest thing is to schedule a task on the day that the recurrence should end, reminding you to end the recurrence.

There is another org-mode FAQ about conditions like end dates for appointments, using arbitrary elisp, here. I tried inserting one of these expressions into the SCHEDULED: field on a task and it works, but it works by making the task show up on every day of the agenda where the expression matches. It's not apparently possible to get a task with this kind of scheduling to regenerate when it's marked as done (adding "+1d" before the close angle bracket didn't do it for me). So you could use this method if you don't need to log completion times. (Just leave it as TODO, or reset the state when reviewing your agenda in the morning, etc.) In fact, you don't even need the TODO or SCHEDULED keywords if you want to do it this way.

See also the manual node for repeated tasks.

There is an org-mode FAQ about this here. The recommendation is to use a command to generate a separate task for each day. That might seem heavyweight, so:

Since the task only shows up on the agenda once (it regenerates every time it is completed), the impact of the infinite recurrence is less than for recurring calendar entries, which all show up on the calendar at the same time. So maybe the simplest thing is to schedule a task on the day that the recurrence should end, reminding you to end the recurrence.

There is another org-mode FAQ about conditions like end dates for appointments, using arbitrary elisp, here. I tried inserting one of these expressions into the SCHEDULED: field on a task and it works, but it works by making the task show up on every day of the agenda where the expression matches. It's not apparently possible to get a task with this kind of scheduling to regenerate when it's marked as done (adding "+1d" before the close angle bracket didn't do it for me). So you could use this method if you don't need to log completion times. (Just leave it as TODO, or reset the state when reviewing your agenda in the morning, etc.) In fact, you don't even need the TODO or SCHEDULED keywords if you want to do it this way.

See also the manual node for repeated tasks.

There is an org-mode FAQ about this here. The recommendation is to use a command to generate a separate task for each day. That might seem heavyweight, though the FAQ suggests reading this blog post for the pros of this approach.

Since the task only shows up on the agenda once (it regenerates every time it is completed), the impact of the infinite recurrence is less than for recurring calendar entries, which all show up on the calendar at the same time. So maybe the simplest thing is to schedule a task on the day that the recurrence should end, reminding you to end the recurrence.

There is another org-mode FAQ about conditions like end dates for appointments, using arbitrary elisp, here. I tried inserting one of these expressions into the SCHEDULED: field on a task and it works, but it works by making the task show up on every day of the agenda where the expression matches. It's not apparently possible to get a task with this kind of scheduling to regenerate when it's marked as done (adding "+1d" before the close angle bracket didn't do it for me). So you could use this method if you don't need to log completion times. (Just leave it as TODO, or reset the state when reviewing your agenda in the morning, etc.) In fact, you don't even need the TODO or SCHEDULED keywords if you want to do it this way.

See also the manual node for repeated tasks.

Source Link

There is an org-mode FAQ about this here. The recommendation is to use a command to generate a separate task for each day. That might seem heavyweight, so:

Since the task only shows up on the agenda once (it regenerates every time it is completed), the impact of the infinite recurrence is less than for recurring calendar entries, which all show up on the calendar at the same time. So maybe the simplest thing is to schedule a task on the day that the recurrence should end, reminding you to end the recurrence.

There is another org-mode FAQ about conditions like end dates for appointments, using arbitrary elisp, here. I tried inserting one of these expressions into the SCHEDULED: field on a task and it works, but it works by making the task show up on every day of the agenda where the expression matches. It's not apparently possible to get a task with this kind of scheduling to regenerate when it's marked as done (adding "+1d" before the close angle bracket didn't do it for me). So you could use this method if you don't need to log completion times. (Just leave it as TODO, or reset the state when reviewing your agenda in the morning, etc.) In fact, you don't even need the TODO or SCHEDULED keywords if you want to do it this way.

See also the manual node for repeated tasks.