No description
Find a file
Callum Alpass 1be4fb0329 Rename ChronoSync Plugin to TaskNotes Plugin and Remove Legacy Daily Metadata Commands
• Renamed the main plugin class from ChronoSyncPlugin to TaskNotesPlugin and updated all related types, settings, and UI elements accordingly.
• Updated settings interface and default folder paths from "ChronoSync" to "TaskNotes", and renamed ChronoSyncSettingTab to TaskNotesSettingTab.
• Modified all ribbon icon labels, command names, group identifiers, and user notices to reflect the new "TaskNotes" branding.
• In view types (CalendarView, NotesView, TaskListView), updated container classes and hover sources from "chronosync-*" to "tasknotes-*" for consistent styling and identification.
• Changed the view type constants in types.ts to use "tasknotes" prefixes.
• In task creation modal and helper functions, adjusted import and instance type to reference TaskNotesPlugin.
• Removed legacy daily note metadata commands (incrementPomodoros, toggle-workout, toggle-meditate, and associated update logic) from the main plugin as they are no longer part of TaskNotes functionality.
• Cleaned up YAML frontmatter generation in helpers by removing default values for pomodoros, workout, and meditate.

This commit ensures branding consistency across the codebase and removes unused functionality, paving the way for continued development of TaskNotes features.
2025-05-31 11:29:32 +10:00
.github/workflows Add GitHub Actions workflow for releases 2025-05-25 11:40:07 +10:00
src Rename ChronoSync Plugin to TaskNotes Plugin and Remove Legacy Daily Metadata Commands 2025-05-31 11:29:32 +10:00
.editorconfig Refactor plugin architecture and implement best practices 2025-05-18 11:50:16 +10:00
.eslintignore Refactor plugin architecture and implement best practices 2025-05-18 11:50:16 +10:00
.eslintrc Refactor plugin architecture and implement best practices 2025-05-18 11:50:16 +10:00
.gitignore This commit refactors and cleans up the notes view while also removing local configuration files that shouldn’t be included in version control. The main changes include: 2025-05-25 19:26:13 +10:00
.npmrc Refactor plugin architecture and implement best practices 2025-05-18 11:50:16 +10:00
esbuild.config.mjs Refactor plugin architecture and implement best practices 2025-05-18 11:50:16 +10:00
LICENSE update license 2025-05-30 00:49:39 +10:00
main.ts Rename ChronoSync Plugin to TaskNotes Plugin and Remove Legacy Daily Metadata Commands 2025-05-31 11:29:32 +10:00
manifest.json Rename ChronoSync Plugin to TaskNotes Plugin and Remove Legacy Daily Metadata Commands 2025-05-31 11:29:32 +10:00
package-lock.json Refactor plugin architecture and implement best practices 2025-05-18 11:50:16 +10:00
package.json Rename ChronoSync Plugin to TaskNotes Plugin and Remove Legacy Daily Metadata Commands 2025-05-31 11:29:32 +10:00
README.md Rename ChronoSync Plugin to TaskNotes Plugin and Remove Legacy Daily Metadata Commands 2025-05-31 11:29:32 +10:00
styles.css Rename ChronoSync Plugin to TaskNotes Plugin and Remove Legacy Daily Metadata Commands 2025-05-31 11:29:32 +10:00
tsconfig.json Refactor plugin architecture and implement best practices 2025-05-18 11:50:16 +10:00
version-bump.mjs Refactor plugin architecture and implement best practices 2025-05-18 11:50:16 +10:00
versions.json Refactor plugin architecture and implement best practices 2025-05-18 11:50:16 +10:00

TaskNotes for Obsidian

TaskNotes is a comprehensive task and note management plugin for Obsidian with integrated calendar views, daily notes, and timeblocking.

Why TaskNotes?

With the introduction of Obsidian's new Bases core plugin, structured YAML frontmatter has become a standard way to manage data in Obsidian. TaskNotes uses YAML metadata extensively to store task properties, daily note information, and time tracking data. This means all your tasks and notes remain as plain Markdown files with structured frontmatter that can be queried and viewed in Bases tables.

TaskNotes focuses on time-based organization and task management, storing all data as YAML properties. While Bases provides database views of your notes, TaskNotes handles the day-to-day workflow of creating tasks, tracking time, managing recurring items, and organizing your daily activities. The structured data TaskNotes creates can then be analyzed and visualized using Bases or other data query tools.

Features

Task Management

  • Tasks stored as individual Markdown files with YAML frontmatter
  • Task properties include: title, status, priority, due date, contexts, tags, time estimates, and time tracking data
  • Support for recurring tasks (daily, weekly, monthly, yearly) with completion instance tracking
  • Built-in time tracking with multiple sessions per task
  • Archive functionality using tags to hide completed tasks while preserving history
  • Task filtering by status, context, due date, and grouping options

Calendar Integration

  • Month view with agenda display showing tasks and notes
  • Visual indicators for daily notes and due tasks
  • Keyboard navigation and date selection synchronized across all views
  • Color coding based on priority, note presence, or daily activities

Daily Notes

  • Automatic creation with configurable templates
  • YAML frontmatter tracking: date, tags, important flag
  • Timeblock tables with configurable intervals (15, 30, or 60 minutes)

Time Management

  • Integrated time tracking for tasks with start/stop functionality
  • Time entries stored in YAML with timestamps and durations
  • Time estimates vs actual time spent comparison
  • Multiple tracking sessions per task with descriptions

Views and Layouts

  • Grid Layout: Side-by-side views with calendar/list on one side, file preview on the other
  • Tabs Layout: All views (Calendar, Tasks, Notes) as switchable tabs
  • Popout Windows: Desktop support for detaching views into separate windows
  • Synchronized date selection across all views

Notes Organization

  • Separate notes view for non-task files
  • Date-based filtering to show notes created on specific days
  • Configurable folder exclusions
  • Integration with calendar for date-specific note viewing

Data Structure

All data is stored as YAML frontmatter in Markdown files, making it:

  • Compatible with Obsidian's Bases plugin for database views
  • Searchable and queryable using Dataview or similar tools
  • Portable and future-proof as plain text files
  • Version control friendly

Installation

From Obsidian Community Plugins

  1. Open Obsidian Settings
  2. Go to Community Plugins and turn off Safe Mode
  3. Click Browse and search for "TaskNotes"
  4. Install the plugin and enable it

Manual Installation

  1. Download the latest release from the GitHub releases page
  2. Extract the files to your Obsidian vault's plugins folder: <vault>/.obsidian/plugins/tasknotes/
  3. Reload Obsidian
  4. Go to Settings > Community Plugins and enable "TaskNotes"

Usage

Getting Started

  1. After installation, click the calendar icon in the ribbon to open the TaskNotes dashboard
  2. Configure the plugin settings in Settings > TaskNotes
  3. Create your first task or navigate to today's daily note

Task Management and Interaction

TaskNotes provides intuitive controls to interact with your tasks directly from the task list view:

  • Change a task's status (Open, In Progress, Done) using the status dropdown
  • Adjust task priority (High, Normal, Low) using the priority dropdown
  • Set or change due dates using the date picker
  • Click on a task's title to open it for detailed editing

Task Archiving

TaskNotes allows you to archive tasks to keep your task list clean while preserving task history:

  • To archive a task, click the "Archive" button in the task controls
  • Archived tasks are tagged with the "archive" tag in their YAML frontmatter
  • Archived tasks are hidden from regular task views and only appear when "Archived" is selected from the status filter
  • Archived tasks still appear in the calendar heatmap for historical reference
  • To unarchive a task, select "Archived" from the status filter and click the "Unarchive" button on the task

Commands

TaskNotes adds several commands to Obsidian's command palette:

  • Open Dashboard/Calendar View: Opens the main TaskNotes dashboard
  • Create New Task: Opens a modal to create a new task
  • Go to Today's Note: Navigates to or creates today's daily note

Folder Structure

TaskNotes uses the following folder structure by default (configurable in settings):

  • TaskNotes/Daily/: Daily notes (YYYY-MM-DD.md)
  • TaskNotes/Tasks/: Task files
  • TaskNotes/Notes/: General notes
  • TaskNotes/Home.md: Home note

YAML Structure Examples

Task File

title: "Complete project documentation"
zettelid: "20240115a8f3"
dateCreated: "2024-01-15T10:30:00"
dateModified: "2024-01-15T14:45:00"
status: "in-progress"
due: "2024-01-20"
tags: ["task", "documentation"]
priority: "high"
contexts: ["work", "writing"]
timeEstimate: 120
timeSpent: 45
timeEntries:
  - startTime: "2024-01-15T10:30:00"
    endTime: "2024-01-15T11:15:00"
    duration: 45
    description: "Initial outline"

Daily Note

date: "2024-01-15"
tags: ["daily"]
important: false

Recurring Task

title: "Weekly team meeting"
status: "open"
tags: ["task", "meetings"]
recurrence:
  frequency: "weekly"
  days_of_week: ["mon"]
complete_instances: ["2024-01-08", "2024-01-15"]

Configuration

In the plugin settings, you can configure:

  • Folder paths for daily notes, tasks, and general notes
  • Default task properties (priority, status)
  • Timeblock settings (start/end times, interval)
  • Task identification tag (default: "task")
  • Archive tag (default: "archive")
  • Excluded folders for notes view
  • Layout preferences
  • Indexing options and cache settings

Development

Prerequisites

Setup

  1. Clone this repository
  2. Run npm install to install dependencies
  3. Run npm run dev to start the development build process

Building

  • npm run dev: Builds the plugin and watches for changes
  • npm run build: Builds the plugin for production

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • Inspired by diary-tui by Callum Alpass
  • Built with the Obsidian API