# Task Attributes

Task attributes are the properties that define a task's characteristics, state, and relationships in Super Productivity. They are central because tasks are the primary entity the app is built around: time tracking, project management, scheduling, and synchronization all depend on these attributes. Understanding how attributes work helps you see how the different features fit together and why certain actions (for example, setting a due date or adding a tag) affect what you see in the Today View, Schedule, or project lists.

## Core Vs Optional Attributes

Tasks need a minimal set of attributes to exist and function. Beyond that, optional attributes enable scheduling, categorization, reminders, and other workflows.

### Core Attributes

Core attributes are required for basic task functionality:

- **Unique identifier** — Each task has an ID so the app can track it across lists, sync, and archive.
- **Title** — The task name or description you see in lists and views.
- **Project** — Every task belongs to exactly one project; the project links the task to a workspace and its settings. See [[4.06-Project-View]].
- **Time spent per day** — The app tracks how much time you have logged on each day so time tracking and reports stay accurate.
- **Completion status** — Whether the task is done or not; the app uses this to show active vs. completed tasks and to drive archiving.
- **Subtasks** — A task can have subtasks; the app stores the list of subtask IDs so parent and child tasks stay linked. See [[4.11-Subtasks]].
- **Created** — When the task was created, used for ordering and history.
- **Attachments** — File attachments associated with the task.

With only these, you can create tasks, log time, complete them, and organize them in projects. Everything else is optional.

### Optional Attributes

Optional attributes add scheduling, categorization, and integration:

- **Due date and due time** — When the task is planned for; used by the [[4.04-Schedule-View]], [[4.03-Planner-View]], and [[4.01-The-Today-View]]. See [[2.05-Manage-Scheduled-Tasks]].
- **Tags** — Category labels for cross-cutting organization. See [[4.07-Tag-View]].
- **Parent task** — For subtasks, the link back to the parent so the app can show hierarchy and aggregate time or completion. See [[4.11-Subtasks]].
- **Reminder** — When to be notified; the app stores reminder settings and the scheduled time.
- **Repeat configuration** — For recurring tasks, the rule that defines how the task repeats. See [[4.13-Repeating-Tasks]].
- **Time estimate** — Planned duration for scheduling and remaining-work display. See [[4.08-Time-Estimates]].
- **Notes** — Additional text you attach to the task. See [[4.10-Task-Notes]].
- **Issue integration** — When a task is linked to an external issue (for example Jira or GitHub), the app stores the connection so it can sync and show issue data. See [[4.24-Integrations]] and [[2.07-Manage-Task-Integrations]].

You can use none, some, or all of these depending on how you work. Tasks can start simple and gain optional attributes as you schedule them, tag them, or add reminders.

## Workflow Support

Task attributes support different workflows by combining in consistent ways.

### Time Management

- **Time tracking** — Time spent per day is updated as you track; the app uses it for daily totals and review.
- **Estimates** — The time estimate attribute drives the Schedule timeline and remaining-work display.
- **Scheduling** — Due date and (optionally) due time place the task on a specific day or moment, so the Schedule and Today View can show when work is planned.

### Organization

- **Projects** — The project attribute groups tasks into workspaces; every task has exactly one project.
- **Tags** — Tag attributes let you label tasks across projects for filtering and grouping.
- **Hierarchy** — Parent and subtask attributes define the parent-child structure so you can break work down and see aggregated progress.

### Integration and Extras

- **Issue tracking** — Issue-related attributes connect the task to an external system so the app can sync and display issue data.
- **Reminders** — Reminder attributes store when and how you want to be notified.
- **Repetition** — The repeat configuration attribute defines how the task recurs.

### The "Today" List and Due Date

The app treats "today" as a special time-based group: whether a task appears in the [[4.01-The-Today-View]] is determined by its **due date**, not by adding a tag to the task. You do not add a "today" tag; you set the task's due date to today. That keeps scheduling consistent: the same attribute (due date) drives the Planner, Schedule, and Today list, so moving a task to today or changing its date updates all of these in one place.

## Lifecycle Evolution

Task attributes change as a task moves from creation through active work, scheduling, completion, and archive.

### Creation

When you create a task, the app assigns core attributes: a unique ID, title, project, created timestamp, empty time spent, completion status false, and an empty list of subtasks and attachments. Optional attributes (due date, tags, estimate, etc.) are added only when you use those features.

### Active Work

- Time tracking updates time spent per day as you log work.
- You may set or change the time estimate as you refine the plan.
- Adding subtasks updates the subtask list and parent link on the child; the parent's remaining time and completion can be derived from subtasks.

### Scheduling

- Setting a due date (or due date and time) adds the scheduling attributes. The task then appears on the Schedule and Planner for that day.
- When the due date is today, the task also appears in the Today View; the app uses the due date as the single source of truth for "is this task for today?"

### Completion

- Marking the task done sets completion status and records when it was completed.
- Parent tasks can update their aggregated state based on subtask completion.

### Archive

When tasks are archived, core attributes are preserved so the task remains identifiable and historical data (for example time spent) is kept. Some optional data (such as reminders) may be removed in the archive so stored data stays lean. The task is no longer in active lists but remains available for history and backup. See [[4.20-Task-Archiving]].

The flexibility of the attribute system allows tasks to start minimal and gain complexity only when you need scheduling, tags, or integration—all within the same data model.

## Related

- [[4.06-Project-View]] — How projects organize tasks (project attribute)
- [[4.07-Tag-View]] — How tags organize tasks (tag attributes)
- [[4.01-The-Today-View]] — How due date determines "today" (due date attribute)
- [[4.04-Schedule-View]] — How the Schedule uses due date, time, and estimates
- [[4.08-Time-Estimates]] — How the time estimate attribute supports planning
- [[2.05-Manage-Scheduled-Tasks]] — How to set due dates and times
- [[4.24-Integrations]] — How issue and sync providers work
- [[2.07-Manage-Task-Integrations]] — How to set up and use issue integration
- [[3.04-Short-Syntax]] — Quick ways to set estimates, due dates, and tags in task titles
