docs/wiki/4.13-Repeating-Tasks.md
Repeating tasks in Super Productivity are tasks that recur on a schedule—daily, weekly, monthly, or yearly—so you don’t have to create the same task over and over. The app stores a repeat configuration that defines the pattern, then automatically creates new task instances when they are due. Understanding how repeating tasks are defined, when the next instance is created, and how the app avoids duplicates and handles skipped dates helps you use them reliably in the Planner, Schedule, and Today View.
For how to create, edit, and manage repeating tasks in the UI, see [[2.06-Manage-Repeating-Tasks]]. For how the repeat configuration fits into the task model, see [[4.09-Task-Attributes]]. Repeating tasks cannot be made into subtasks; see [[4.11-Subtasks]].
A repeating task is defined by a repeat configuration linked to the task. The configuration is stored separately and describes the pattern. Key options you can set include:
The app also offers quick settings that map to common patterns—for example “daily,” “weekly on this weekday,” “monthly on this date,” “weekdays only” (Monday–Friday), “yearly on this date,” or “custom” for full control. These are shortcuts that fill in the underlying cycle, interval, and (for weekly) which weekdays.
When you make a task repeatable, it keeps its project, tags, and other attributes; the repeat configuration is added and the app uses it to generate future instances.
The app creates the next task instance when it detects that an instance is due and does not yet exist. It does this by:
When you first make a task repeatable, the app computes the first occurrence date from the pattern and start date. It may set the task’s due date to that first occurrence and, if the first occurrence is not today, remove the task from the Today list so it appears on the correct day instead. That way the first instance aligns with the repeat rule from the start.
Instance creation runs as part of normal app use (for example when you open the app or switch context), so overdue instances are created when the app catches up. You don’t have to trigger creation manually unless your workflow exposes a “create next instance” action.
The app uses several mechanisms so you don’t get duplicate instances and so sync and skipped dates behave correctly.
Each repeat instance is created with a predictable ID derived from the repeat configuration and the date. That means the same configuration and the same date always produce the same task ID on every device. When you sync (for example via WebDAV or Dropbox), two devices that both run the “create instance for this date” logic will create tasks with the same ID, so sync sees one task, not two. That prevents duplicates across devices.
Before creating an instance for a given date, the app:
Together, these steps keep at most one instance per date per repeat configuration, locally and when synced.
You can skip specific occurrences without changing the repeat rule. Those dates are stored in the configuration’s exception list. The app never creates an instance for those dates, but it does create instances for all other dates that match the pattern. So you can skip a single day (or several) and the rest of the schedule stays the same.
The Schedule view can show projected instances of repeating tasks (with a start time set) even before the actual task instance is created. That gives you a forward-looking timeline: you see when the next “standup” or “review” will occur according to the pattern. Once the instance is created, it appears as a normal task on the Schedule. See [[4.04-Schedule-View]].
The Planner view also shows recurring task projections on the days they will occur, so you can see how repeating work fits into the week or month. See [[4.03-Planner-View]].
Date calculations for repeat patterns use a consistent reference time (noon) internally to avoid timezone and daylight-saving issues, so the “next occurrence” stays correct across timezones and DST changes.