callumalpass_tasknotes/docs/features/task-management.md
2025-06-29 12:26:57 +10:00

6 KiB

Task Management

TaskNotes provides comprehensive task management capabilities built around the principle of storing each task as an individual Markdown note with YAML frontmatter for structured metadata.

Task Creation

Multiple Creation Methods

Direct Creation: Use the "Create new task" command or buttons in various views to open a task creation modal with all available fields.

Calendar Creation: Click on dates or time slots in calendar views to create tasks with pre-populated scheduling information.

Inline Conversion: Convert existing checkbox tasks in your notes to full TaskNotes using the instant conversion feature.

Natural Language Creation: Use the natural language parser to create tasks by typing descriptions like "Buy groceries tomorrow at 3pm @home #errands high priority".

Task Properties

Each task can include the following properties stored in YAML frontmatter:

Basic Information:

  • Title: The main task description
  • Status: Current completion state (configurable)
  • Priority: Importance level (configurable with weights)

Scheduling:

  • Due Date: When the task must be completed
  • Scheduled Date: When you plan to work on the task

Organization:

  • Contexts: Location or tool-based groupings (e.g., @home, @computer)
  • Tags: Standard Obsidian tags for broader categorization

Planning:

  • Time Estimate: Expected time to complete (supports various formats)
  • Recurrence: Recurring task patterns using RRule standard

Tracking:

  • Time Entries: Recorded work sessions with start/stop times
  • Creation Date: Automatically set when task is created
  • Modification Date: Updated when task properties change

Task Editing

Modal-Based Editing

Task editing uses a comprehensive modal interface that provides access to all task properties. The edit modal can be opened by:

  • Clicking task titles in most views
  • Using context menu options
  • Keyboard shortcuts when tasks are selected

Inline Property Changes

Some task properties can be modified directly within views without opening the full edit modal:

  • Status indicators can be clicked to cycle through available statuses
  • Priority indicators can be clicked to change priority levels
  • Due dates and scheduled dates can be edited through date picker widgets

Bulk Operations

TaskNotes supports limited bulk operations for efficiency:

  • Archive/unarchive multiple tasks
  • Status changes for related tasks
  • Date modifications for task groups

File Management

File Naming

Tasks are saved as individual Markdown files with configurable naming patterns:

Title-based: Uses the task title as the filename (with sanitization) Timestamp: Uses creation timestamp for unique, chronological naming Zettelkasten: Uses timestamp prefix with title suffix Custom: User-defined template with variable substitution

Folder Organization

Default Folder: Configure where new tasks are created by default Folder Exclusions: Specify folders to exclude from task scanning Auto-Creation: Automatically create folder structure as needed

Template System

TaskNotes includes a template system for both YAML frontmatter and note body content:

Variable Substitution: Templates can include variables like {{title}}, {{priority}}, {{dueDate}}, {{parentNote}} Frontmatter Templates: Define default YAML structure for new tasks Body Templates: Include default content in the note body area

Task Relationships

Parent Note Context

The {{parentNote}} template variable captures context about where a task was created:

  • Records the source note when tasks are created via inline conversion
  • Provides backlink context for project-related tasks
  • Enables project-based task organization

Subtask Support

While TaskNotes doesn't enforce hierarchical task structures, you can create subtask relationships using:

  • Obsidian's native linking system
  • Context and tag-based grouping
  • Project-based organization through templates

Archive System

Archive Functionality

TaskNotes provides an archive system for completed or cancelled tasks:

Tag-Based: Uses a configurable archive tag to mark tasks as archived Toggle Function: Easy archive/unarchive capability Filter Integration: Option to show or hide archived tasks in views

Archive Benefits

  • Keeps completed tasks accessible for reference
  • Reduces clutter in active task views
  • Maintains historical record of completed work
  • Supports productivity analysis and reporting

Recurring Tasks

Recurrence Patterns

TaskNotes supports sophisticated recurring task patterns using the RRule standard:

Simple Patterns: Daily, weekly, monthly, yearly Interval-Based: Every N days, weeks, or months Day-Specific: Every Monday, first Friday of month, last day of month Complex Patterns: Advanced scheduling using full RRule syntax

Instance Management

Recurring tasks use a per-date completion system:

Individual Completion: Mark specific instances complete without affecting the pattern Instance Tracking: System tracks completed dates in the complete_instances array Calendar Display: Each instance appears as a separate event in calendar views

Legacy Migration

The plugin includes migration support for older recurrence formats, automatically converting legacy RecurrenceInfo objects to the current RRule-based system.

Performance and Scalability

Efficient Data Handling

TaskNotes is designed to handle large numbers of tasks efficiently:

Native Cache Integration: Uses Obsidian's metadata cache for optimal performance Minimal Indexing: Only creates indexes for performance-critical operations Event-Driven Updates: Processes only changed files rather than full rescans

Memory Management

Proper lifecycle management ensures stable performance:

Component Cleanup: All UI components properly dispose of resources Event Listener Management: Prevents memory leaks from accumulating listeners Cache Optimization: Balances memory usage with access speed