Recurring Tasks Made Simple: One-Time, Any-Time, and Scheduled Modes
Not all recurring tasks are created equal. Some need strict scheduling ("Take medication daily at 8 AM"). Others are flexible habits you want to complete regularly but timing doesn't matter ("Read for 30 minutes sometime today"). And many tasks are one-time events that shouldn't repeat at all ("File Q4 taxes").
Most task managers treat recurrence as binary: either a task repeats, or it doesn't. This forces you into awkward workarounds:
- Creating daily recurring tasks for flexible habits (then feeling guilty about "missing" a 9 PM deadline)
- Manually recreating habit tasks every day
- Using scheduled recurrence for habits that don't need fixed timing
To-Track recognizes that not all recurrence is the same and offers three distinct modes:
- One-Time: Traditional single-occurrence tasks (default for most work)
- Any-Time: Flexible recurring tasks that reset after completion, no fixed schedule
- Scheduled (RRULE): Fixed recurrence patterns (daily, weekly, monthly, yearly) with smart date calculation
This guide explains each mode, when to use them, and how they transform habit tracking and recurring task management.
The Three Recurrence Modes
Mode 1: One-Time (No Recurrence)
What it is: Traditional tasks that occur once and stay done.
Behavior:
- No
rrulefield set (null value) - When marked DONE → stays DONE
- Task remains in completed state permanently
Use cases:
- Projects: "Launch new website"
- Appointments: "Doctor appointment Friday 3 PM"
- Errands: "Buy birthday gift for Sarah"
- One-off tasks: "Set up email forwarding"
Example:
Task: "Submit Q1 taxes"
rrule: null (one-time)
Completion: Mark DONE on April 15 → Task stays DONE forever
This is the default mode—most tasks don't recur.
Mode 2: Any-Time (Flexible Recurring)
What it is: Tasks that can be completed multiple times but don't have a fixed schedule.
Behavior:
rruleset to special value'1'(not a standard RRULE pattern)- When marked DONE → immediately resets to TODO
- All dates clear (start_time, end_time become null)
- Ready for the next completion whenever convenient
Use cases:
- Daily habits without fixed timing: "Read", "Workout", "Meditate"
- Flexible routines: "Water plants", "Call mom", "Review goals"
- Repeatable activities: "Take a walk", "Journal", "Practice guitar"
- Maintenance tasks: "Clean kitchen", "Backup files"
Visual indicator: Green repeat icon (vs. orange for scheduled tasks)
Example:
Task: "Morning workout"
rrule: '1' (any-time)
Monday 7:30 AM: Complete workout → Mark DONE
Result: Task immediately resets to TODO (no dates)
Tuesday afternoon: Complete workout again → Mark DONE
Result: Task resets to TODO again
Why this matters: Perfect for habits where you want to track completion frequency without the pressure of fixed schedules. You can complete "Read" at 7 AM Monday, 9 PM Tuesday, 2 PM Wednesday—timing is flexible, but you're still building the habit.
Mode 3: Scheduled (RRULE Patterns)
What it is: Tasks with fixed recurrence patterns (daily, weekly, monthly, yearly).
Behavior:
rrulecontains a valid RRULE string (RFC 5545 standard)- When marked DONE → resets to TODO
- Dates recalculate to the next occurrence based on the pattern
- Duration between start/end times preserved
Use cases:
- Fixed schedules: "Daily standup 9 AM", "Weekly team meeting Tuesday 2 PM"
- Deadlines: "Monthly report due last Friday"
- Appointments: "Dentist cleaning every 6 months"
- Time-sensitive routines: "Take medication 8 AM daily"
Visual indicator: Orange repeat icon
Example:
Task: "Weekly review"
rrule: "FREQ=WEEKLY;BYDAY=SU" (every Sunday)
Start time: Sunday Jan 12, 5 PM
End time: Sunday Jan 12, 6 PM
Complete on Jan 12 → Mark DONE
Result:
- Task resets to TODO
- Start time: Sunday Jan 19, 5 PM (next Sunday)
- End time: Sunday Jan 19, 6 PM (preserved 1-hour duration)
Advanced patterns:
- Daily: Every day, every 2 days, weekdays only, every 3 days
- Weekly: Specific days (Mon/Wed/Fri), every 2 weeks
- Monthly: 1st of month, last Friday, 2nd Wednesday, every 3 months
- Yearly: Specific dates (Jan 1), patterns (last Monday of May)
When to Use Each Mode
| Scenario | Mode | Why |
|---|---|---|
| One-off project | One-Time | Won't repeat, complete once |
| Flexible daily habit | Any-Time | Want to do it daily but timing varies |
| Fixed meeting | Scheduled | Same time every week |
| Morning routine (no fixed time) | Any-Time | Do it every morning, but 6 AM or 9 AM both work |
| Medication schedule | Scheduled | Must be taken at specific times |
| "Read daily" goal | Any-Time | Want daily completion but evening/morning varies |
| Monthly bill | Scheduled | Due same date every month |
| Workout (any time) | Any-Time | 3x/week goal, but flexible when |
| Client report deadline | Scheduled | Every Friday 5 PM |
| Practice instrument | Any-Time | Daily goal, but timing flexible |
Rule of thumb:
- Fixed time matters → Scheduled
- Completion frequency matters, timing doesn't → Any-Time
- Only once → One-Time
Deep Dive: Scheduled Recurrence (RRULE)
To-Track uses the RRULE standard (RFC 5545)—the same format used by Google Calendar, Outlook, and iCal. This ensures compatibility and enables complex patterns.
Basic RRULE Syntax
FREQ=DAILY;INTERVAL=1
Components:
- FREQ: Frequency (DAILY, WEEKLY, MONTHLY, YEARLY)
- INTERVAL: Every N occurrences (default: 1)
- BYDAY: Days of week (MO, TU, WE, TH, FR, SA, SU)
- BYMONTHDAY: Day of month (1-31)
- BYSETPOS: Position (1st, 2nd, Last)
Common Patterns
Every day:
FREQ=DAILY;INTERVAL=1
Weekdays only (Mon-Fri):
FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR
Every 2 days:
FREQ=DAILY;INTERVAL=2
Every Monday and Friday:
FREQ=WEEKLY;BYDAY=MO,FR
Every 2 weeks on Thursday:
FREQ=WEEKLY;INTERVAL=2;BYDAY=TH
1st of every month:
FREQ=MONTHLY;BYMONTHDAY=1
Last Friday of every month:
FREQ=MONTHLY;BYDAY=FR;BYSETPOS=-1
Every 3 months on the 15th:
FREQ=MONTHLY;INTERVAL=3;BYMONTHDAY=15
January 1st every year:
FREQ=YEARLY;BYMONTH=1;BYMONTHDAY=1
Last Monday of May each year:
FREQ=YEARLY;BYMONTH=5;BYDAY=MO;BYSETPOS=-1
How To-Track Calculates Next Occurrence
When you mark a scheduled task DONE, To-Track:
- Looks at current date (completion timestamp)
- Parses RRULE to understand the pattern
- Finds closest future occurrence from now using the pattern
- Updates dates:
- Start time → next occurrence calculated from RRULE
- End time → start time + original duration (if both dates existed)
- Resets state to first OPEN category state (usually TODO)
Example: Task with start date calculation
Task: "Team standup"
rrule: FREQ=DAILY;INTERVAL=1 (every day)
Start time: Monday Jan 13, 9:00 AM
Completed: Monday Jan 13, 9:15 AM (15 minutes after start)
Calculation:
- Current time: Monday Jan 13, 9:15 AM
- Next daily occurrence from now: Tuesday Jan 14, 9:00 AM
- New start time: Tuesday Jan 14, 9:00 AM
- Task resets to TODO
Example: Task with start AND end times (duration preservation)
Task: "Weekly review"
rrule: FREQ=WEEKLY;BYDAY=SU (every Sunday)
Start time: Sunday Jan 12, 5:00 PM
End time: Sunday Jan 12, 6:00 PM (1 hour duration)
Completed: Sunday Jan 12, 6:30 PM
Calculation:
- Original duration: 1 hour (end - start)
- Current time: Sunday Jan 12, 6:30 PM
- Next Sunday from now: Sunday Jan 19, 5:00 PM
- New start time: Sunday Jan 19, 5:00 PM
- New end time: Sunday Jan 19, 6:00 PM (start + 1 hour duration)
- Task resets to TODO
Key insight: Duration is preserved. If your weekly review is always 1 hour (5-6 PM), that duration carries forward even as dates advance.
Edge Cases & Smart Handling
Late completion (missed occurrence):
Task: Daily task due 9 AM
rrule: FREQ=DAILY
Start time: Tuesday 9 AM
Current time: Thursday 3 PM (2 days late)
Calculation:
- Next daily occurrence from Thursday 3 PM: Friday 9 AM (tomorrow)
- Task reschedules to next day, not the original missed Tuesday occurrence
Early completion:
Task: Weekly task due Sunday
rrule: FREQ=WEEKLY;BYDAY=SU
Start time: Sunday Jan 12
Completed: Friday Jan 10 (2 days early)
Calculation:
- Next Sunday from Friday Jan 10: Sunday Jan 12 (original due date)
- But task was completed before that, so advances to Sunday Jan 19
To-Track always finds the closest future occurrence from the completion time, ensuring tasks don't pile up or skip.
Creating Recurring Tasks in To-Track
Setting Up One-Time Tasks
Default behavior: All new tasks are one-time unless you set a repeat pattern.
- Create task: "File Q1 taxes"
- Set due date if needed: April 15
- Leave repeat field blank
- Complete → Stays DONE
Setting Up Any-Time Tasks
- Create task: "Morning workout"
- Tap "Repeat" button
- Select "Any time" mode from picker
- Save
Result: Task displays green repeat icon. After completion, it immediately resets to TODO with dates cleared.
Optional: Add start/end times if you want to track when you usually do it (e.g., "Usually 7-8 AM"), but these times won't force rescheduling.
Setting Up Scheduled Tasks
Simple patterns (daily, weekly):
- Create task: "Team standup"
- Set start time: Monday 9 AM (optional: end time 9:30 AM)
- Tap "Repeat" button
- Select "Every" mode from picker
- Choose frequency: Daily, Weekly, Monthly, Yearly
- Configure details (e.g., "Every 1 day")
- Save
Advanced patterns (specific days, monthly patterns):
Weekly on specific days:
- Frequency: Weekly
- Tap day selector buttons: Mon, Wed, Fri
- Result:
FREQ=WEEKLY;BYDAY=MO,WE,FR
Monthly patterns:
- "Each" mode: Select specific days (1, 15, 30)
- Result:
FREQ=MONTHLY;BYMONTHDAY=1,15,30
- Result:
- "On the" mode: Select ordinal pattern (First Monday, Last Friday)
- Result:
FREQ=MONTHLY;BYDAY=MO;BYSETPOS=1
- Result:
Yearly patterns:
- Select months (Jan, Jun, Dec)
- Optionally add "On the" pattern for specific dates
- Result:
FREQ=YEARLY;BYMONTH=1,6,12;BYMONTHDAY=15
Visual Feedback
To-Track provides clear indicators:
- No icon: One-time task
- Green repeat icon: Any-time recurring
- Orange repeat icon: Scheduled recurring
Tap the icon to see recurrence details.
Use Case Examples
Use Case 1: Morning Routine (Any-Time)
Goal: Complete 3 morning habits daily, but timing is flexible (sometimes 6 AM, sometimes 9 AM).
Setup:
Task 1: "Morning meditation"
Mode: Any-time (rrule='1')
Properties: Duration, Mood After
Task 2: "Read 30 minutes"
Mode: Any-time
Properties: Quantity (pages), Duration
Task 3: "Morning workout"
Mode: Any-time
Properties: Duration, Energy Level, Reps
Workflow:
- Monday 6:00 AM: Complete meditation → resets to TODO
- Monday 6:30 AM: Complete reading → resets to TODO
- Monday 7:15 AM: Complete workout → resets to TODO
- Tuesday 8:30 AM: Complete meditation (different time) → resets to TODO
Benefit: No fixed schedule pressure. Tasks reset immediately, ready for tomorrow whenever you're ready.
Use Case 2: Work Meeting Schedule (Scheduled)
Goal: Weekly team standup every Monday, Wednesday, Friday at 9 AM (30 minutes).
Setup:
Task: "Team standup"
Mode: Scheduled
rrule: FREQ=WEEKLY;BYDAY=MO,WE,FR
Start time: Monday 9:00 AM
End time: Monday 9:30 AM
Workflow:
- Monday 9:30 AM: Complete standup → Reschedules to Wednesday 9:00 AM
- Wednesday 9:30 AM: Complete standup → Reschedules to Friday 9:00 AM
- Friday 9:30 AM: Complete standup → Reschedules to Monday 9:00 AM (next week)
Benefit: Automatic scheduling. Task always appears on correct days with proper timing.
Use Case 3: Monthly Report (Scheduled)
Goal: Submit client report on the last Friday of every month.
Setup:
Task: "Submit monthly client report"
Mode: Scheduled
rrule: FREQ=MONTHLY;BYDAY=FR;BYSETPOS=-1
Start time: Last Friday of month
Workflow:
- January 31 (last Friday): Complete report → Reschedules to February 28
- February 28: Complete report → Reschedules to March 28
- March 28: Complete report → Reschedules to April 25
Benefit: No manual date calculation. To-Track finds the last Friday automatically.
Use Case 4: Medication Reminder (Scheduled)
Goal: Take medication every day at 8 AM and 8 PM.
Setup:
Task 1: "Morning medication"
Mode: Scheduled
rrule: FREQ=DAILY
Start time: 8:00 AM
Notification: Specific time (8:00 AM)
Task 2: "Evening medication"
Mode: Scheduled
rrule: FREQ=DAILY
Start time: 8:00 PM
Notification: Specific time (8:00 PM)
Workflow:
- 8:00 AM: Notification → Take meds → Mark DONE → Reschedules to tomorrow 8 AM
- 8:00 PM: Notification → Take meds → Mark DONE → Reschedules to tomorrow 8 PM
Benefit: Consistent timing with automatic reminders.
Use Case 5: Flexible Workout Goal (Any-Time + Properties)
Goal: Work out 3 times per week, but timing is flexible. Track reps, weight, duration.
Setup:
Task: "Strength training"
Mode: Any-time
Properties: Duration, Reps, Weight, Difficulty
Workflow:
- Monday 6 PM: Work out → Log 75 min, 120 reps, 200 lbs, Hard → Mark DONE → Resets to TODO
- Wednesday 7 AM: Work out → Log 60 min, 100 reps, 185 lbs, Medium → Resets to TODO
- Friday 5 PM: Work out → Log 90 min, 140 reps, 215 lbs, Very Hard → Resets to TODO
Analysis: Track completion frequency (3x/week average) and property trends (progressive overload) without fixed scheduling pressure.
Comparing To-Track's Recurrence to Other Apps
| Feature | To-Track | Todoist | Things 3 | Notion |
|---|---|---|---|---|
| Recurring modes | 3 (One-time, Any-time, Scheduled) | 2 (None, Scheduled) | 2 (None, Scheduled) | 1 (Manual recreation) |
| Flexible habits | ✅ Any-time mode | ❌ Use daily scheduled (misleading) | ❌ Use daily scheduled | ❌ Manual |
| RRULE support | ✅ Full RFC 5545 | ✅ Partial | ✅ Limited | ❌ No |
| Duration preservation | ✅ Yes | ⚠️ No | ⚠️ No | ❌ No |
| Smart date calc | ✅ Closest future from completion | ⚠️ From due date | ⚠️ From due date | N/A |
| Visual indicators | ✅ Green (any-time) / Orange (scheduled) | ⚠️ Single icon | ⚠️ Single icon | ❌ None |
| Complex patterns | ✅ Monthly (last Fri), Yearly (2nd Mon in May) | ⚠️ Limited | ❌ Basic only | ❌ No |
Verdict: To-Track's three-mode system is uniquely flexible, distinguishing between one-time tasks, flexible habits, and fixed schedules.
Best Practices
1. Match Mode to Task Nature
Don't use scheduled for flexible habits:
- ❌ "Read daily" with rrule=DAILY and start time 9 PM (creates guilt if you read at 7 AM)
- ✅ "Read daily" with any-time mode (complete whenever, resets immediately)
Don't use any-time for fixed appointments:
- ❌ "Doctor appointment" with any-time mode (loses scheduling info)
- ✅ "Doctor appointment" with scheduled mode and specific date/time
2. Use Properties with Any-Time Tasks
Track quantitative metrics to analyze habit trends:
- "Morning workout" (any-time) + Duration, Reps, Weight properties
- Over time, see if you're increasing weight/reps (progress!)
3. Combine Any-Time Tasks with Lists
Create a custom list "Daily Habits" filtering for:
- State = TODO
- Repeat type = Any-time
Result: View all flexible habits you want to complete today in one place.
4. Set Notifications for Scheduled Tasks
Scheduled tasks benefit from reminders:
- "Daily standup" → Notification at 8:55 AM (5 min before)
- "Take medication" → Notification at exact time
Any-time tasks generally don't need notifications (timing is flexible).
5. Review Recurrence Patterns Quarterly
As life changes, so do routines:
- Workout schedule changes (gym 3x/week → 5x/week)
- Meeting times shift (Tuesday 2 PM → Thursday 3 PM)
- Habits evolve (daily reading → 3x/week)
Update RRULE patterns to match current reality.
Advanced: RRULE Editing
For power users who want precise control, To-Track allows manual RRULE editing.
Access: Task detail page → Repeat section → "Advanced" option
Format: Enter raw RRULE string
FREQ=WEEKLY;INTERVAL=2;BYDAY=MO,WE,FR
Validation: To-Track validates syntax. Invalid RRULE = error message.
Use cases:
- Importing recurrence patterns from Google Calendar
- Creating complex patterns (e.g., "Every 3rd Thursday of odd-numbered months")
- Debugging unexpected behavior (view raw pattern)
Reference: RFC 5545 RRULE Specification
Conclusion: Recurrence Done Right
Not all recurring tasks are the same. Conflating flexible habits with fixed schedules creates unnecessary pressure and inaccurate tracking.
To-Track's three-mode system respects this reality:
- One-time: Traditional tasks, complete once
- Any-time: Flexible habits, complete repeatedly without fixed schedule
- Scheduled (RRULE): Fixed patterns with smart date calculation
Whether you're tracking daily meditation (any-time), weekly meetings (scheduled every Thursday), or one-off projects (one-time), To-Track handles recurrence intelligently.
Stop fighting your task manager's rigid recurrence model. Choose the mode that matches each task's nature, and let automation handle the rest.
FAQ
Q: Can I change a task from one-time to any-time later? A: Yes. Edit the task, tap "Repeat," and select a different mode. The change applies immediately.
Q: What happens if I complete an any-time task multiple times in one day? A: Each completion logs to history, and the task resets to TODO each time. Perfect for activities you might do 2-3 times daily (e.g., "Take a walk").
Q: Can I temporarily skip a scheduled recurring task? A: Yes. Leave it in TODO state and it will reschedule to the next occurrence when you eventually complete it, or you can manually advance the date.
Q: Do any-time tasks track completion frequency? A: Yes. State logs record every completion timestamp. Export to analyze completion frequency (e.g., "I completed 'Morning workout' 18 times in January = 4.5x/week average").
Q: Can I create complex RRULE patterns (e.g., every 3rd Thursday)?
A: Yes, via manual RRULE editing. Enter: FREQ=MONTHLY;BYDAY=TH;BYSETPOS=3
Q: What if I complete a scheduled task late (after the due date)? A: It reschedules to the next future occurrence from the completion time, not from the original due date. This prevents tasks from piling up.
Q: Can I use properties with scheduled tasks? A: Absolutely. Combine scheduled recurrence (fixed timing) with property logging (e.g., "Weekly weigh-in" scheduled for Sunday AM, logs Weight property).
Q: Does To-Track handle daylight saving time? A: Yes, via UTC storage and local display conversion. Tasks maintain correct local time even across DST transitions.
Ready to master recurring tasks? Download To-Track and experience the freedom of flexible habits and intelligent scheduling.
Try To-Track free
Offline-first tasks, custom states, time tracking. No account required.