TaskNotes 4
TaskNotes 4.0.1 is a stability-focused major release that finishes the migration to Obsidian's Bases core plugin. Every task-facing view (Task List, Kanban, Calendar, Agenda, Mini Calendar, and the embedded Relationships widget) now runs on .base files. This refactor simplifies the plugin codebase, removes bespoke UI logic, and lets workflows feel native to Obsidian—views are just files in your vault.
Highlights
New features and improvements:
- Performance improvements
- Virtual scrolling in Task List and Kanban views handles 30,000+ tasks without performance degradation
- OAuth calendar integration
- Google Calendar and Microsoft Outlook bi-directional sync
- Drag calendar events in the TaskNotes calendar to update them online
- Configurable modals and NLP
- New Modal Fields settings tab for moving, hiding, or requiring fields in create/edit modals
- Rich markdown editor and customizable NLP triggers, including autocomplete for user fields
- Time management features
- Time Entry Editor Modal
- Improved Timeblock creation and management
- Completion-based recurrence with
recurrence_anchorfield - Skippable recurrence instances
Bases architecture changes:
- Bases-first architecture
- Task views ship as
.basefiles insideTaskNotes/Views/ - Commands and ribbon buttons now open files you control
- Filtering/grouping/sorting uses Bases YAML instead of TaskNotes-specific UI
- Agenda is a dedicated list-mode calendar
.basefile for fast daily/weekly reviews
- Task views ship as
- Inline workflows stay in sync
- Unified Relationships widget embeds a Bases view so project subtasks, dependencies, and blocking tasks stay in one place
- Task cards inside notes honor the same Bases filtering/grouping rules as standalone views
Why Bases?
Moving everything to Bases allowed us to delete thousands of lines of bespoke filtering logic, state management, and widget code. The plugin now leans on Obsidian's supported API, which:
- Reduces maintenance overhead and improves reliability
- Lets advanced users version-control and audit their view definitions
- Makes saved views portable between vaults
- Keeps TaskNotes behavior consistent with other Obsidian-native workflows
Upgrade Notes
- Obsidian 1.10.1 or later is required (Bases public API with group-by support)
- Enable the Bases core plugin before opening TaskNotes views
- Run Settings → TaskNotes → General → Create Default Files if you need fresh
.basefiles - Use Export All Saved Views to Bases to convert any legacy FilterBar saved views into
.basefiles - The Relationships widget uses
TaskNotes/Views/relationships.base; adjust that file to change what appears inside notes
Breaking Changes
- The old FilterBar UI has been removed—all filtering and saved views live in
.basefiles - Legacy widget settings (
showProjectSubtasks,showTaskDependencies, etc.) were replaced withshowRelationshipsandrelationshipsPosition - Task view commands now fail if their mapped
.basefile is missing; configure paths under Settings → TaskNotes → General → View Commands - Priority sorting now uses alphabetical order instead of custom weights
- In v3, TaskNotes used priority "weights" to determine sort order (higher weight = higher priority)
- In v4, Obsidian's Bases plugin sorts priorities alphabetically by their value
- The weight field has been removed from the settings UI
- Workaround: Name your priority values to sort alphabetically in your desired order
- Example:
1-urgent,2-high,3-medium,4-normal,5-low - Or:
a-urgent,b-high,c-medium,d-normal,e-low
- Example:
- Agenda view has been replaced by the list view in Calendar
- Grouping is not supported in this view, so the "Overdue" group is no longer provided
- A separate "Overdue" view is available in the "Task List" base file
Known Issues
- Users upgrading from versions prior to 3.x should export saved views to Bases before deleting old plugin data
- Embedded Bases views still require the Bases plugin to remain enabled; disabling Bases will hide TaskNotes task views
Details
Added
- Virtual scrolling and lazy rendering to Bases views for handling thousands of notes without performance degradation - Thanks to @aubreyz and @turingexmachina for reporting performance issues and help with diagnosis
- Google Calendar and Microsoft Outlook integration via OAuth 2.0 with automatic syncing
- Time Entry Editor Modal for managing time entries (Alt-drag on calendar to create)
- Kanban Swimlane Layout with horizontal grouping and configurable column widths
- Saved View Converter button in settings to convert v3 saved filter views to
.basefiles - Context menus for time entries and ICS events in calendar views
- Calendar icon to ICS event titles for better visual distinction
- Hover tooltips for timeblocks in calendar views
- MiniCalendar view for Bases integration with monthly grid and dot indicators - Thanks to @aubreyz and @turingexmachina for reporting performance issues and help with diagnosis
- (#1090) Portuguese (Brazil) translation - Thanks to @andysteel for the contribution
- Configurable task modal fields with drag-and-drop reordering in new "Modal Fields" settings tab
- Rich markdown editor for NLP task creation with syntax highlighting and wikilink support
- Customizable NLP triggers with autocomplete and keyboard navigation
- Inline task link overlay enhancements with configurable visible properties
- Kanban column reordering via drag and drop with saved order per grouping property
- Mini calendar enhancements including week numbers, heat map visualization, note preview tooltips, and keyboard navigation
- Unified Relationships widget consolidating project subtasks, dependencies, and blocking relationships with automatic tabs
- Updated task card styling with improved hover effects, shadows, and gradient accents
- (#361) Completion-based recurrence support with
recurrence_anchorfield for tasks that recur based on completion date - Thanks to @luciolebrillante for the original feature request, and @jhedlund, @nschenone, @BryanWall, @realJohnDoe, and @kazerniel for additional input and interest - (#416) Support for skipped recurrence instances with
skipped_instancesfield and right-click skip/unskip in calendar - Thanks to @mdbraber for suggesting the array approach and @jerzy-dudzic for reporting the issue - Sub-grouping support to Bases Task List view with nested grouping by any property and collapsible groups
- Documentation for default Bases templates showing all default
.basefile templates with examples
Changed
- All views (Calendar, MiniCalendar, Kanban, Tasks, Agenda, Project Subtasks) now use Bases architecture with
.basefiles - Calendar sources (Google, Microsoft, ICS events) can be toggled independently with improved timezone handling
- Reorganized settings tabs with OAuth calendar settings in Integrations tab
- Refactored Bases integration to use public API and trust pre-sorted data
- Refactored calendar modules to use ES6 imports instead of lazy require() calls
- Time entry events now show task context menu on right-click
- Replaced MinimalNativeCache with just-in-time TaskManager for zero startup time and always-fresh task data
- Completed internationalization with 100% translation coverage across all 6 supported languages
- Migrated to i18n-state-manager CLI tool for improved translation management
- Bases view templates now generate dynamically based on user settings with adaptive task filters
- Updated Bases CalendarView to show TaskNotes in property-based events
- NLP system overhaul with consolidated trigger configuration and direct NaturalLanguageParser usage
- Simplified TaskCard interface and refactored TaskLinkWidget for consistency
- Settings UI enhancements with NLP triggers configurable through Features tab
- Refactored Bases views to use Component lifecycle properly with automatic cleanup
- Improved development experience by converting ESLint errors to warnings
- Renamed "Advanced Calendar" to "Calendar" throughout the UI
- Improved timeblock visual styling in calendar views with reduced border width and softer shadows
- Updated "Export All Views" button to "Export V3 Views" to clarify it migrates v3 saved views
- Improved internationalization (i18n) support in General settings tab with all Bases integration settings using translation keys
- Changed default Tasks List template view order with "All Tasks" first and added "Unscheduled" view
Fixed
- (#843) Fixed task tag being added when "Identify tasks by" is set to "Property" - Thanks to @jack2game for reporting
- Fixed dark mode calendar borders
- Fixed Bases Kanban column ordering - Thanks to @mweichert for reporting
- Fixed state management bug in FilterSettingsComponent
- Fixed timezone handling for recurring events
- (#1022, #684) Fixed tasks randomly disappearing when Smart Connections plugin is enabled by eliminating race condition - Thanks to @alejandrospoz, @seepage87, @amarjt, @luckb0x, and camara-tech for reporting and help debugging
- (#992) Fixed "Failed to resolve module specifier 'obsidian'" error when moving recurring task instances in calendar - Thanks to @jalooc for reporting
- Fixed task dependencies not displaying on task cards with proper isBlocked and isBlocking flags
- Fixed Bases property mapping for user-configured field names
- Fixed Bases views not respecting user-configured visible properties
- Fixed MiniCalendar UTC anchoring for consistent timezone-independent date handling
- Fixed DateValue conversion in BasesDataAdapter for property-based events in CalendarView
- (#1084) Fixed word wrapping in NLP preview items - Thanks to @maybetm for the fix
- (#975) Fixed advanced calendar list headers not respecting theme colors - Thanks to @hugohil for the fix
- (#1089) Fixed embedded task list bases growing unbounded and leaving large empty space - Thanks to @same774 for reporting with screenshot
- Fixed "Highlight today" toggle and calendar view type persistence in Bases Calendar view options
- (#1050) Fixed task modal adding unwanted empty contexts and projects arrays - Thanks to @nightroman for reporting
- Fixed inline task link overlay layout prioritization and horizontal scrolling for metadata
- Fixed group collapse/expand functionality in TaskListView
- Fixed config loading race condition in KanbanView and CalendarView
- Fixed MiniCalendarView to use direct Bases API like other views
- (#893) Fixed yearly recurring tasks not always updating scheduled date to next occurrence when completed - Thanks to @VenturaNotes for reporting
- (#951) Fixed yearly recurring tasks not showing up in calendar's weekly, 3-day, or day views - Thanks to @bespokecomp for reporting
- (#889) Fixed git merge conflicts in calendar subscription metadata by storing in memory instead of disk - Thanks to @karlfrohlich for reporting
- Fixed recurrence modal not loading DTSTART date/time when editing existing recurrence rules
- (#1097) Fixed custom properties and formulas not displaying in Bases views using getValue() method - Thanks to @cathywu for reporting
- (#1099) Fixed issues with default Bases file creation including double-prefix bug and race condition - Thanks to @kmaustral for reporting
- (#1110) Fixed open recurring tasks appearing crossed out in Tasks view by using UTC-anchored dates - Thanks to @kmaustral for reporting
- (#1118) Fixed user-defined fields not working in inline task conversion to TaskNote - Thanks to @guncav for reporting
- Fixed kanban column width CSS constraints not matching settings slider range
- Fixed Kanban view showing empty columns for all user-defined statuses when grouping by status - Thanks to @williamcheuk03 for reporting
- (#1103) Fixed TaskNotes/Views folder being created unnecessarily on startup - Thanks to @Wayment9504 for reporting
- (#1133) Fixed empty priority columns not showing in Kanban view when "Hide empty columns" is disabled - Thanks to @luckb0x for reporting
- Fixed OAuth calendar cards showing "Unknown account" by removing non-functional Account field - Thanks to @oblique for reporting
- Fixed incorrect Bases syntax in default template files with correct parameter naming
- Fixed incorrect Bases syntax in "Export V3 Views" feature with correct YAML structure
- (#1127) Fixed custom priority colors not being respected in Task List and Subtasks sections - Thanks to @HPmattsloper for reporting
- (#1043) Fixed inability to set "at time of event" (0 offset) as default reminder in settings - Thanks to @dblinnikov for reporting
- (#1055) Fixed break sessions being logged as
type: workwhen started via command/hotkey - Thanks to @0-BSCode for reporting and debugging - (#1024) Fixed date/time picker immediately closing when selecting time on iPhone by refactoring to native Modal components - Thanks to @3zra47 for reporting
- (#1122) Fixed inline task titles being truncated too aggressively with increased max-width - Thanks to @jacorvillo for reporting
- Fixed Obsidian crashes when invalid time values entered in Bases calendar view configuration
- (#1120) Fixed custom field mappings not being respected throughout the application - Thanks to @kmaustral for reporting
- (#1121) Fixed custom user fields being saved with auto-generated IDs instead of user-defined property keys - Thanks to @guncav for reporting
- (#1123) Fixed relationships widget only displaying on task notes, now appears on both task and project notes - Thanks to @dblinnikov for reporting
- Fixed time entries not showing in calendar view for tasks without scheduled or due dates
- (#1091) Fixed task card and relationships widgets appearing inside footnote editors - Thanks to @3zra47 for reporting
- (#1086) Fixed calendar "+more" popover showing white text on white background in dark mode - Thanks to @same774 for reporting
- (#1076) Fixed inability to create timeblocks ending at midnight (00:00) - Thanks to @skoove for reporting
- (#958) Fixed cursor jumping and layout shifts when typing near task card or relationships widgets in live preview - Thanks to @thesmithmode for detailed debugging information
- (#513) Fixed task card and relationships widgets not appearing in reading mode and fixed critical memory leak - Thanks to @berzernberg for reporting
Removed
- Removed StatusSuggestionService (functionality consolidated into NaturalLanguageParser)
- Removed legacy FilterBar UI - all filtering now lives in
.basefiles - Removed legacy views