Recurring TODO Workflow
Purpose
Manage repeating tasks, habits, meetings, and maintenance routines.
When to Use
- Regular meetings (weekly 1:1s, stand-ups)
- Maintenance tasks (backups, updates, reviews)
- Habits (exercise, journaling, reading)
- Periodic reviews (daily, weekly, monthly)
- Scheduled events (appointments, classes)
Recurring Task Types
1. Fixed Schedule
Same time, same day, always:
** STRT Weekly team meeting
SCHEDULED: <2025-12-05 Fri 14:00 ++1w>
:PROPERTIES:
:LAST_REPEAT: [2025-11-28 Fri 14:00]
:CATEGORY: work
:END:
2. Flexible Schedule
After completion, schedule next occurrence:
** TODO Weekly review
SCHEDULED: <2025-12-08 Mon ++1w>
:PROPERTIES:
:STYLE: habit
:LAST_REPEAT: [2025-12-01 Mon 13:40]
:END:
3. Deadline-Based
Must be done by certain interval:
** TODO Monthly backup check
DEADLINE: <2025-12-31 Wed +1m>
:PROPERTIES:
:LAST_REPEAT: [2025-11-30 Sat 15:30]
:END:
Repeater Syntax
+ Repeater (Strict)
Repeats from original date, even if late:
SCHEDULED: <2025-12-05 Fri +1w>
- If you complete on Dec 5 → next is Dec 12
- If you complete on Dec 8 → next is still Dec 12
- Use for: Time-sensitive events, meetings
++ Repeater (Shift from today)
Repeats from completion date:
SCHEDULED: <2025-12-05 Fri ++1w>
- If you complete on Dec 5 → next is Dec 12
- If you complete on Dec 8 → next is Dec 15
- Use for: Flexible tasks, maintenance, habits
.+ Repeater (Shift and skip)
Like ++ but doesn’t nag if you skip:
SCHEDULED: <2025-12-05 Fri .+1w>
- If you complete on Dec 5 → next is Dec 12
- If you complete on Dec 15 → next is Dec 22 (skips Dec 12)
- Use for: Habits you want to do but can skip
Time Intervals
Common Intervals
+1d Daily
+1w Weekly
+2w Bi-weekly
+1m Monthly
+3m Quarterly
+1y Yearly
Specific Days
+1w Mon Every Monday
+2w Fri Every other Friday
+1m 1 First of each month
+1m -1 Last day of each month
Complex Patterns
++1w Mon Wed Fri Mon/Wed/Fri after completion
+1m 1 15 1st and 15th of each month
Habit Tracking
Basic Habit
** TODO Daily exercise
SCHEDULED: <2025-12-05 Fri ++1d>
:PROPERTIES:
:STYLE: habit
:LAST_REPEAT: [2025-12-04 Thu 07:00]
:END:
Habit with Consistency Goal
** TODO Morning journaling
SCHEDULED: <2025-12-05 Fri .+1d>
:PROPERTIES:
:STYLE: habit
:LAST_REPEAT: [2025-12-04 Thu 06:30]
:HABIT_CONSISTENCY: 5d
:END:
Goal: Journal at least 5 days per week
Common Recurring Patterns
Weekly Meeting
** STRT 1:1 with Manager
SCHEDULED: <2025-12-05 Fri 10:00 +1w>
:PROPERTIES:
:LAST_REPEAT: [2025-11-28 Fri 10:18]
:CATEGORY: work
:END:
Meeting notes: [[file:~/notes/meeting-notes.org][Meeting Notes]]
Daily Standup
** STRT Daily standup
SCHEDULED: <2025-12-05 Fri 09:00 +1d Mon Tue Wed Thu Fri>
:PROPERTIES:
:LAST_REPEAT: [2025-12-04 Thu 09:00]
:CATEGORY: work
:END:
Team sync - what did I do, what am I doing, any blockers
Weekly Review
** TODO Weekly planning and review
SCHEDULED: <2025-12-08 Mon 09:00 ++1w>
:PROPERTIES:
:STYLE: habit
:LAST_REPEAT: [2025-12-01 Mon 09:15]
:END:
- Review last week
- Plan this week
- Archive completed items
Monthly Maintenance
** TODO Server maintenance and updates
SCHEDULED: <2025-12-15 Mon ++1m>
:PROPERTIES:
:LAST_REPEAT: [2025-11-15 Sun 14:30]
:CATEGORY: systems
:END:
- Update packages
- Check backups
- Review logs
- Security patches
Quarterly Review
** TODO Quarterly goal review
DEADLINE: <2025-12-31 Wed +3m>
:PROPERTIES:
:LAST_REPEAT: [2025-09-30 Mon 15:00]
:END:
Review progress on yearly goals and adjust
Annual Tasks
** TODO Annual tax preparation
DEADLINE: <2025-04-15 Wed +1y>
:PROPERTIES:
:LAST_REPEAT: [2024-04-10 Mon 20:00]
:END:
Gather documents and file taxes
Managing Recurring Tasks
Completing a Recurring Task
When you mark DONE:
# Before completion
** TODO Weekly review
SCHEDULED: <2025-12-08 Mon ++1w>
:PROPERTIES:
:LAST_REPEAT: [2025-12-01 Mon 13:40]
:END:
# After marking DONE on Dec 8
** TODO Weekly review
SCHEDULED: <2025-12-15 Mon ++1w>
:PROPERTIES:
:LAST_REPEAT: [2025-12-08 Mon 14:15]
:END:
:LOGBOOK:
- State "DONE" from "TODO" [2025-12-08 Mon 14:15]
:END:
What happens:
- State returns to TODO (or original state)
- SCHEDULED advances by interval
- LAST_REPEAT updated to completion time
- LOGBOOK entry added
Skipping an Occurrence
Option 1: Mark DONE anyway
- Advances schedule
- Records you acknowledged it
Option 2: Reschedule to next occurrence
# Manually update SCHEDULED to next date
SCHEDULED: <2025-12-15 Mon ++1w>
Option 3: Add note explaining skip
:LOGBOOK:
- Note taken on [2025-12-08 Mon 10:00] \\
Skipped this week due to holiday
:END:
Stopping a Recurring Task
Mark as CANX:
** CANX Weekly team sync (team disbanded)
CLOSED: [2025-12-08 Mon 10:00]
:LOGBOOK:
- State "CANX" from "STRT" [2025-12-08 Mon 10:00] \\
Team disbanded, meeting no longer needed
:END:
Remove repeater (make one-time):
# Before
SCHEDULED: <2025-12-08 Mon ++1w>
# After
SCHEDULED: <2025-12-08 Mon>
Changing Frequency
Update repeater interval:
# Was weekly
SCHEDULED: <2025-12-08 Mon ++1w>
# Now bi-weekly
SCHEDULED: <2025-12-08 Mon ++2w>
Update day/time:
# Was Friday 14:00
SCHEDULED: <2025-12-05 Fri 14:00 +1w>
# Now Monday 10:00
SCHEDULED: <2025-12-08 Mon 10:00 +1w>
Recurring Task Templates
Daily Habit
** TODO [Habit name]
SCHEDULED: <YYYY-MM-DD Day .+1d>
:PROPERTIES:
:STYLE: habit
:LAST_REPEAT: [previous-completion]
:END:
[Description and notes]
Weekly Task
** TODO [Task name]
SCHEDULED: <YYYY-MM-DD Day ++1w>
:PROPERTIES:
:LAST_REPEAT: [previous-completion]
:CATEGORY: [category]
:END:
[Context and links]
Monthly Maintenance
** TODO [Maintenance task]
SCHEDULED: <YYYY-MM-DD Day ++1m>
:PROPERTIES:
:LAST_REPEAT: [previous-completion]
:CATEGORY: systems
:END:
Checklist:
- [ ] Item 1
- [ ] Item 2
- [ ] Item 3
Meeting with Notes
** STRT [Meeting name]
SCHEDULED: <YYYY-MM-DD Day HH:MM +1w>
:PROPERTIES:
:LAST_REPEAT: [previous-occurrence]
:CATEGORY: work
:END:
Agenda:
- Topic 1
- Topic 2
Notes: [[file:~/notes/meeting-notes.org::*Meeting Name][Meeting Notes]]
Tracking Habits
Simple Habit Tracking
Just mark DONE each time:
** TODO Morning exercise
SCHEDULED: <2025-12-05 Fri .+1d>
:PROPERTIES:
:STYLE: habit
:LAST_REPEAT: [2025-12-04 Thu 07:15]
:END:
Check LOGBOOK for consistency.
Habit with Notes
Track details:
** TODO Meditation
SCHEDULED: <2025-12-05 Fri .+1d>
:PROPERTIES:
:STYLE: habit
:LAST_REPEAT: [2025-12-04 Thu 06:30]
:END:
:LOGBOOK:
- State "DONE" from "TODO" [2025-12-04 Thu 06:30] \\
15 minutes, felt focused
- State "DONE" from "TODO" [2025-12-03 Wed 06:45] \\
10 minutes, distracted
:END:
Habit Streaks
Check consistency:
# See completion pattern
grep "State \"DONE\"" todos.org | \
grep "Morning exercise" | \
tail -14
Tips
-
Choose right repeater:
- Fixed schedule? Use
+ - Flexible? Use
++ - Can skip? Use
.+
- Fixed schedule? Use
-
Start with STRT or TODO:
- STRT for ongoing (meetings)
- TODO for tasks (reviews, maintenance)
-
Track in LOGBOOK: Notes about each occurrence
-
Use LAST_REPEAT: See when last completed
-
Keep in Routines section: Unless specific to other section
-
Link to resources: Meeting notes, checklists, docs
-
Review regularly: Are these still needed?
-
Adjust frequency: If consistently late, maybe less frequent
Viewing Recurring Tasks
All Recurring Tasks
grep -B2 "SCHEDULED:.*+\|DEADLINE:.*+" ~/desktop/org/todos.org | \
grep "^\*\*"
Today’s Recurring Items
today=$(date +"%Y-%m-%d")
grep -B2 "SCHEDULED: <$today.*+" ~/desktop/org/todos.org | \
grep "^\*\*"
Habit Consistency
# Check last 10 completions of a habit
grep -A3 "^\*\* TODO Morning exercise" ~/desktop/org/todos.org | \
grep "State \"DONE\"" | \
tail -10
Common Issues
Missed Several Occurrences
# Task scheduled for Dec 1, today is Dec 15
SCHEDULED: <2025-12-01 Mon ++1w>
Solution: Mark DONE to advance to next
- If
++1w: advances to Dec 22 (week from completion) - If
+1w: would go to next scheduled (Dec 8, 15, 22…)
Wrong Interval
# Was daily but should be weekly
SCHEDULED: <2025-12-05 Fri ++1d>
Solution: Update interval
SCHEDULED: <2025-12-05 Fri ++1w>
No Longer Needed
** STRT Old recurring meeting
SCHEDULED: <2025-12-05 Fri +1w>
Solution: Mark as CANX with reason
** CANX Old recurring meeting
CLOSED: [2025-12-05 Fri 10:00]
:LOGBOOK:
- State "CANX" from "STRT" [2025-12-05 Fri 10:00] \\
Project completed, meeting no longer needed
:END:
Integration
With Calendar
Recurring tasks show up on schedule in org-agenda.
With Notes
Link to meeting notes or habit journal:
** STRT Weekly 1:1
SCHEDULED: <2025-12-05 Fri 10:00 +1w>
With Projects
Track recurring reviews of projects:
** TODO Review project X progress
SCHEDULED: <2025-12-08 Mon ++1w>
Project: [[*Project X][Project X Details]]
Anti-Patterns
❌ Too many recurring tasks: Overwhelming, won’t complete
❌ Wrong repeater type: Using + when should use ++
❌ Never completing: If consistently skip, maybe not needed
❌ No notes: Can’t remember what happened each time
❌ Outdated tasks: Keep running things no longer relevant
✅ Right amount: Only essential recurring tasks
✅ Appropriate interval: Matches actual need
✅ Complete regularly: Build the habit
✅ Track progress: Add notes each completion
✅ Review periodically: Cancel what’s no longer needed