Blog

Recurring Tasks Made Simple: One-Time, Any-Time, and Scheduled Modes

2026-01-20 · 14 min read · To-Track Team

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:

  1. One-Time: Traditional single-occurrence tasks (default for most work)
  2. Any-Time: Flexible recurring tasks that reset after completion, no fixed schedule
  3. 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 rrule field 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:

  • rrule set 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:

  • rrule contains 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:

  1. Looks at current date (completion timestamp)
  2. Parses RRULE to understand the pattern
  3. Finds closest future occurrence from now using the pattern
  4. Updates dates:
    • Start time → next occurrence calculated from RRULE
    • End time → start time + original duration (if both dates existed)
  5. 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.

  1. Create task: "File Q1 taxes"
  2. Set due date if needed: April 15
  3. Leave repeat field blank
  4. Complete → Stays DONE

Setting Up Any-Time Tasks

  1. Create task: "Morning workout"
  2. Tap "Repeat" button
  3. Select "Any time" mode from picker
  4. 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):

  1. Create task: "Team standup"
  2. Set start time: Monday 9 AM (optional: end time 9:30 AM)
  3. Tap "Repeat" button
  4. Select "Every" mode from picker
  5. Choose frequency: Daily, Weekly, Monthly, Yearly
  6. Configure details (e.g., "Every 1 day")
  7. Save

Advanced patterns (specific days, monthly patterns):

Weekly on specific days:

  1. Frequency: Weekly
  2. Tap day selector buttons: Mon, Wed, Fri
  3. Result: FREQ=WEEKLY;BYDAY=MO,WE,FR

Monthly patterns:

  • "Each" mode: Select specific days (1, 15, 30)
    • Result: FREQ=MONTHLY;BYMONTHDAY=1,15,30
  • "On the" mode: Select ordinal pattern (First Monday, Last Friday)
    • Result: FREQ=MONTHLY;BYDAY=MO;BYSETPOS=1

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.

Download for iOS