Releases: callumalpass/tasknotes
4.4.0
TaskNotes 4.4.0
Added
- Mdbase type generation now includes
tn_roleannotations so external tools can identify each field's role even when frontmatter names are customized - (#1618) Mdbase type matching now follows your task identification settings (tag or frontmatter property), with fallback to tag matching when needed
- Thanks to @jimbo108108 for reporting
- Mdbase type status fields now include
tn_completed_valuesso external tools can reliably identify which status values count as completed
- (#1576) Added an optional
Checklist Progresstask-card property that renders a compact progress bar andcompleted/totalcount from top-level markdown checkboxes- Uses metadata cache list items and excludes nested checklist entries so progress reflects top-level task steps
- In Bases views, map
tasks(file.tasks) toChecklist Progress - Existing
.basefiles needfile.tasksadded to the vieworderYAML manually - Newly generated
.basetemplates now includefile.tasksin vieworderby default - Thanks to @phortx for opening #1576 and for the earlier implementation PR, and @piyushaswani55 for feedback in the issue discussion
Changed
- Mdbase type generation no longer overwrites
mdbase.yamlif the file already exists, preserving user customisations - Webhooks now fire consistently regardless of whether updates come from the UI, HTTP API, or MCP
- Webhook runtime state now syncs automatically when plugin settings change
- Shared HTTP response/body parsing utilities are now consolidated in a dedicated
httpUtilsmodule - Release notes now include a reminder on every release page that default generated
.basetemplate changes never overwrite existing user.basefiles, and that users can regenerate templates from Settings to pick up updates
Fixed
- (#1608) Fixed task title frontmatter being removed when
storeTitleInFilenameis enabledtitleis now retained in frontmatter while filename derivation from title remains unchanged- Thanks to @victoraraujo105 for the PR
- (#1602) Fixed time tracking statistics showing incorrect or zero values for Today/Week/Month due to UTC-anchored date range boundaries in Stats View
- Updated range calculations to use local calendar-day boundaries consistently
- (#1602) Fixed inconsistent
timeEntriestimestamp formats across create/edit/drag/resize flows- Time entry timestamps are now written in canonical UTC ISO format (
toISOString()withZ) across all write paths
- Time entry timestamps are now written in canonical UTC ISO format (
- (#1602) Fixed denormalized
timeEntries.durationdrift after edits
4.3.3
TaskNotes 4.3.3
Changed
-
Published
mdbase-tasknotes(mtn), a standalone CLI for managing tasks in markdown files via mdbase- Works on the same vault and
_types/task.mdschema that TaskNotes generates, without requiring the plugin or HTTP API - Preferable over tasknotes-cli as a lighter-weight alternative and when Obsidian is not running, on remote machines, or in scripts and CI environments
- Supports natural language task creation, time tracking, project aggregation, statistics, and an interactive REPL
- Works on the same vault and
-
Extracted shared natural language parsing logic into the standalone npm package
tasknotes-nlp-core- The NLP parser and related language configuration are now shared through this package
- This keeps behavior consistent between the plugin and CLI tools
Added
-
(#1549) Added setting to reset markdown checkboxes when recurring tasks are completed
- When enabled, all checked checkboxes (
- [x]) in the task body are reset to unchecked when a recurring task instance is completed and rescheduled - Useful for recurring tasks with subtask checklists that need to be repeated each instance
- Configurable via Settings > Features > Recurring Tasks > "Reset checkboxes on recurrence"
- Thanks to @phortx for the feature request
- When enabled, all checked checkboxes (
-
(#1548) Added ability to create calendar events on connected external calendars directly from the calendar view
- When clicking or dragging to select a time slot, a new "Create calendar event" option appears in the context menu
- Opens a modal to enter event title, description, location, and select which calendar to create on
- Supports both Google Calendar and Microsoft Calendar providers
- Thanks to @Robubble for the feature request
-
(#1597) Added MCP server for AI agent integration
- Exposes TaskNotes tools at
/mcpendpoint, gated behindenableMCPsetting - Supports tasks (CRUD, query, toggle status/archive, parse from text), time tracking, pomodoro, calendar events, and task statistics
- Thanks to @dstotijn for the contribution
- Exposes TaskNotes tools at
Fixed
-
Fixed generated mdbase type definitions for task dependencies using the wrong field type
- In
_types/task.md,blockedBy[].uidnow usestype: link(wastype: string) - Better matches how dependency links are serialized in task frontmatter (
[[...]])
- In
-
Fixed generated mdbase reminder type definitions to better match TaskNotes reminder data
- In
_types/task.md,reminders[].typenow uses enum valuesabsolute|relative reminders[].relatedTonow uses enum valuesdue|scheduledreminders[].absoluteTimenow usestype: datetime(wastype: string)
- In
-
(#1597) Fixed webhook payloads for time tracking start-with-description containing stale data
- Thanks to @dstotijn for the fix
-
(#1581) Fixed Pomodoro starting break instead of work session after app restart
- After completing a work session and restarting, pressing Start would incorrectly start a break
- Now properly resets
nextSessionTypewhen clearing stale sessions or stopping the timer - Thanks to @Sirnii for the detailed bug report and root cause analysis
-
(#1577) Fixed Edit Note/Task modal hiding action buttons when content exceeds viewport height
- Added vertical scroll to modal content area while keeping buttons pinned at bottom
- Thanks to @hossam-elshabory for reporting and @ivannin for helping in discussion
-
(#1600) Fixed kanban view grouping not working when more than 20 views exist
- The
getGroupByPropertyId()method had a hardcoded loop limit of 20 iterations - Views at index 20 or higher would not be found, causing groupBy to return null
- Thanks to @IHaveNoShame for reporting
- The
-
(#1595) Fixed task modal floating buttons blocking content on mobile
- Added mobile-specific (
body.is-mobile) CSS to ensure proper flex layout - Button container now stays pinned at bottom without overlapping scrollable content
- Thanks to @Jomo94 for reporting
- Added mobile-specific (
-
(#1590) Fixed HTTP API not allowing
blockedBydependencies when creating tasks- Added
blockedByfield support toTaskService.createTask() - Updated API documentation with
blockedBy,recurrence, andremindersfields - Thanks to @hGriff0n for reporting
- Added
-
(#1582) Fixed recurring tasks not appearing at end of visible calendar range for non-UTC timezones
- Daily/weekly recurring tasks with times after ~1pm would disappear on the last day of the visible range for users in positive UTC offsets (e.g., UTC+11)
- Fixed date boundary comparisons in both
generateRecurringInstances()andgenerateRecurringTaskInstances()to compare dates only, not timestamps - Thanks to @benefitbug for reporting
-
(#1580) Fixed Google Calendar sync failing after OAuth token expires with unhelpful error message
- When refresh tokens expire or are revoked (e.g., Google Cloud project in Testing mode, user revoked access), the error message was confusing: "Failed to refresh google token: Request failed, status 400"
- Now detects irrecoverable token errors (
invalid_grant,invalid_client) and automatically disconnects the OAuth connection - Shows actionable error message: "Google Calendar connection expired. Please reconnect in Settings > Integrations."
- Prevents repeated failed refresh attempts and error message spam
- Thanks to @osxisl for reporting and @Naesue for helping in discussion
-
(#1584) Fixed DOMTokenList error when task status values contain spaces
- Clicking the status ring on a task card threw an error when status contained spaces (e.g., "In Progress")
- Status and priority values are now sanitized before being used as CSS class names
- Thanks to @omber for reporting
4.3.2
TaskNotes 4.3.2
Added
-
(#1520) Tag and Context fields in Edit Task modal now show all available suggestions immediately on focus
- Previously required typing at least one character before suggestions appeared
- Already-selected values are excluded from the suggestion list
- Thanks to @Glint-Eye for the suggestion
-
(#1506) Added setting to configure the default color for new timeblocks
- New color picker in Settings > Features > Timeblocking
- Previously hardcoded to indigo; now user-configurable
- Thanks to @phillipadsmith for the suggestion
Fixed
-
Fixed mdbase-spec type definition generation not triggering when settings change
-
(#1456) Fixed inline tasks jumping visually when marked as completed
- Thanks to @3zra47 for reporting
-
(#1364) Fixed auto-stop time tracking not triggering when completing recurring task instances
- Thanks to @slipstyle for reporting
-
(#1465) Fixed all-day events synced to Google Calendar receiving wrong notification time
- All-day events now use Google Calendar's configured all-day notification defaults instead of a minutes-based reminder
- Thanks to @Jomo94 for reporting
-
(#1470) Fixed cursor showing as default instead of pointer on interactive elements
- Thanks to @TheFrostedDev for reporting
-
(#1491) Fixed boolean property values being quoted as strings in Bases filter generation
- When using a boolean property (e.g.
tasknote: true) for task identification, the filter now correctly handles the value - Thanks to @denisgorod for reporting
- When using a boolean property (e.g.
-
(#1494) Fixed Kanban swimlane resetting to "None" on initial load and after navigation
- Thanks to @tnguyen2018 for reporting
-
(#1555) Fixed "Folder already exists" error when creating tasks or converting inline tasks
- Thanks to @jkune5 for reporting
-
(#1532) Fixed expanded task modal buttons being cut off when content exceeds viewport height
- Thanks to @willfanguy for reporting
-
(#1542) Fixed declined and cancelled events from ICS calendar subscriptions appearing in calendar view
- Thanks to @karenchoe428 for reporting
-
(#1556) Fixed completion-based recurring tasks not rescheduling when the recurrence interval is large
- Thanks to @kazerniel for reporting
-
(#1492) Fixed hardcoded "open" status leaking into filenames, recurring task displays, and parsing fallbacks
- Users with custom default statuses (e.g. "inbox") no longer see "open" where their configured default should appear
- Recurring tasks now show their actual configured status instead of always displaying "open" when not completed
- Thanks to @macdrifter for reporting
-
(#1501) Fixed Google/Microsoft Calendar event colors not showing in agenda/list view
- Per-event and calendar-level colors now display correctly in the list view, matching grid view behavior
- Added today indicator highlighting to list view day headers
- Thanks to @Robubble for the suggestion
4.3.1
TaskNotes 4.3.1
Added
-
(#1546) Added sticky kanban column headers that remain visible while scrolling
- Thanks to @normenmueller for the contribution
-
(#1458) Added CSS color classes to context tags for custom styling
- Each context tag now receives a unique CSS class based on its name (e.g.,
context-tag--color-0throughcontext-tag--color-19) - Enables styling individual contexts via CSS snippets
- Thanks to @phortx for the contribution
- Each context tag now receives a unique CSS class based on its name (e.g.,
-
Added mdbase-spec type definition generation
- New setting in Integrations tab to generate mdbase-spec v0.2.0 type definition files (
mdbase.yamland_types/task.md) at the vault root - Type definitions are derived from TaskNotes settings (statuses, priorities, field mappings, user fields) and regenerated automatically when settings change
- Enables interoperability with other tools that support the mdbase-spec format
- New setting in Integrations tab to generate mdbase-spec v0.2.0 type definition files (
Fixed
-
(#1472) Fixed task dependencies not being stored as wikilinks in frontmatter
- Dependencies now retain their
[[wikilink]]format when saved, preventing them from breaking on file rename - Thanks to @renekalff for reporting
- Dependencies now retain their
-
(#1443) Fixed default status/priority not updating when the referenced custom value is deleted
- Deleting a custom status or priority that was set as the default now resets the default to the first available value
- Thanks to @l-mb for the contribution
-
(#1448) Fixed project removals not persisting from the task edit modal
- Removing all projects from a task now correctly clears the projects field
- Different link formats (e.g., markdown links vs wikilinks) no longer cause false change detection
- Thanks to @normenmueller for the contribution
-
(#1514), (#1517) Fixed task reminders not syncing to Google Calendar
- Task-specific reminders (both relative and absolute) now sync to Google Calendar
- Previously only the global default reminder setting was used, ignoring per-task reminders
- Thanks to @christenbc for the contribution
-
(#1525), (#1531) Fixed subtask status dot not refreshing visually when clicked
- Status dot, checkbox, and card styling now update instantly when cycling status
- Thanks to @christenbc for the contribution
-
(#1537) Fixed Google Calendar errors during bulk sync
- Added rate limiting to space out API calls, preventing errors when syncing many tasks at once
- Thanks to @Lorite for the contribution
-
(#1515), (#1540) Fixed time loss when setting recurrence and recurrence not clearing from Google Calendar
- Setting recurrence on a task with a scheduled time now preserves the time, preventing Google Calendar events from appearing as all-day
- Clearing recurrence from a task now also removes it from the synced Google Calendar event
- Thanks to @christenbc for the contribution
-
(#1428), (#1559) Fixed hierarchical tags with slashes (e.g.,
#project/sub-project) being truncated in link text- Tags containing slashes, hyphens, and Unicode characters now render correctly
- Thanks to @normenmueller for the contribution and @ysafonov for reporting
-
(#1565) Fixed Google Calendar target calendar dropdown appearing empty after app restart
- The dropdown now re-populates once calendars are fetched during startup
- Thanks to @N-HEDGER for reporting
-
(#1567) Fixed inline task card widgets disappearing momentarily
- When the task cache is temporarily cleared (e.g., during Smart Connections processing), the previously-rendered widget is now preserved instead of reverting to a plain wiki link
- Thanks to @scztt for reporting
-
(#1568) Fixed deleted tasks not being removed from Google Calendar
- When a task file is deleted outside of TaskNotes (e.g., via Obsidian's file manager), the synced Google Calendar event is now cleaned up automatically
- Thanks to @kmaustral for reporting
-
Fixed Integrations tab spacing and layout issues
- Improved positioning of buttons and status indicators across Google Calendar, ICS, and Webhooks sections
4.3.0
TaskNotes 4.3.0
Changed
- (#1437) Unified template variable syntax and available variables across filename and body templates
- Both systems now use double-brace
{{variable}}syntax consistently - Single-brace
{variable}syntax remains supported for backwards compatibility but is deprecated - Settings UI shows a warning when deprecated single-brace syntax is detected
- Filename templates gain body template variables:
{{contexts}},{{tags}},{{hashtags}},{{timeEstimate}},{{details}},{{parentNote}} - Body templates gain filename template variables:
{{zettel}},{{nano}}, and all extended date/time variables - Thanks to @23maverick23 and @Jpeeters for reporting (#865)
- Both systems now use double-brace
Added
-
(#1361) Option to disable inline task overlay for aliased wikilinks
- New setting in Features → Inline Tasks: "Disable overlay for aliased links"
- When enabled, links with aliases like
[[Task|Check Status]]render as plain links - Links without aliases continue to show the interactive task widget
- Useful when embedding tasks in prose where the widget would be disruptive
- Thanks to @diegomarzaa for the contribution and @jldiaz for proposing this feature in #1117
-
(#1199, #1205) Google Calendar export for tasks
- Sync tasks to Google Calendar based on scheduled or due dates
- Automatic sync on task create, update, complete, and delete
- Configurable event title templates with placeholders (
{{title}},{{status}},{{priority}}, etc.) - Event descriptions include task metadata and optional Obsidian deep link
- Support for all-day or timed events with customizable duration
- Event color customization using Google Calendar's color palette
- Default reminder setting for popup notifications
- Bulk sync and unlink actions in settings
- Task-event linking stored in frontmatter (
googleCalendarEventId) - Recurring tasks sync as Google Calendar recurring events
- Completed or skipped recurring instances are automatically excluded
- Thanks to @someromans and @Leonard-44 for requesting this feature, and @dmantisk, @farangkao, @rayvermey, and @rdpr for their input
Fixed
-
(#1413) Fixed angle-bracket links and project title display
- Angle-bracket links like
[Spec](<Projects/Client X/Spec.md>)now resolve correctly - Project links display frontmatter
titleinstead of raw filename/path when available - Dependency values normalize consistently across wikilinks, markdown links, and angle-bracket variants
- Many thanks to @normenmueller for the contribution
- Angle-bracket links like
-
(#1414) Kanban column headers now display configured priority labels instead of raw values
- Many thanks to @normenmueller for the contribution
-
(#1416) Fixed property-based task identification mutating tags unexpectedly
- Tags are only written when explicitly changed by the user
- Task tag is only added in tag-based identification mode
- Fixes #1391
- Thanks to @loukandr for reporting and @normenmueller for the fix
-
(#1187) Fixed "Unknown view types" error when opening Bases views after upgrading from pre-V4
- Users who had disabled Bases support in earlier versions could not open Bases views after upgrading
- Settings migration now automatically re-enables Bases support since the toggle was removed in V4
- Thanks to @MiracleXYZ for reporting
-
(#1144) Fixed relationships.base showing empty views for Projects, Blocked By, and Blocking tabs
- The top-level task filter was excluding non-task files from the Projects view
- Projects can be any file type (not just tasks), so the filter is now applied per-view
- Subtasks, Blocked By, and Blocking views retain the task filter; Projects view does not
- Users with existing relationships.base files should delete and regenerate them to get the fix
- Thanks to @needo37 for reporting, and @n1njaznutz, @nestor50, and @IvyDliu for investigating and confirming the solution
-
Fixed calendar view type not persisting or applying when changed
- View type changes via header buttons (week/day/month) are now saved to the .base file
- View type changes via Bases settings panel now apply immediately without reload
-
(#1441) Fixed task dragging broken with "Span tasks between scheduled and due dates" enabled
- Span events can now be dragged to move tasks in time
- Dragging shifts both scheduled and due dates proportionally, preserving the span duration
- Previously, dragging span events would cause a visual/data mismatch where the calendar showed the wrong position
- Thanks to @Peeeet for reporting
4.2.1
TaskNotes 4.2.1
Added
- New Calendars API endpoint for access to calendar data
- Access calendar provider information and connection status
- Query events from Google Calendar, Microsoft Calendar, and ICS subscriptions
- Filter events by date range
tasknotes-clihas been updated to make use of this endpoint
Fixed
-
(#1424) Fixed "Create New Task" command creating tasks in active folder instead of default folder
- "Create New Task" now correctly uses the configured default task folder
- "Create New Inline Task" continues to use the inline task folder setting
- Thanks to @Gogo-XD for reporting and @TonyAtlas for confirming
-
(#1421), (#1042) Fixed natural language parser only setting one date when both scheduled and due dates are specified
- Entering something like "task due Jan 9 at Jan 9" now correctly sets both the due date and scheduled date
- Thanks to @wealthychef1 and @dblinnikov for reporting
-
(#1410) Fixed vim insert mode not activating in task creation modal
- The modal now correctly enters insert mode when vim keybindings are enabled
- Thanks to @Leo310 for the feature request
-
(#1422) Fixed tags with dashes not being parsed correctly
- Tags like
#my-tagwere being truncated to#my - Thanks to @JerryLu086 for reporting
- Tags like
-
(#1419) Fixed custom statuses and priorities not saving in settings
- Values entered in text fields were sometimes lost when closing the settings modal
- Thanks to @s33a for reporting
4.2.0
TaskNotes 4.2.0
Added
-
Added Korean (한국어) language support
- Full translation of all 1911 localization keys
- Korean language option now available in Settings → General → Language
-
Adopted Obsidian 1.11.0 API features with backwards compatibility
- Settings tab now displays TaskNotes icon in the sidebar (Obsidian 1.11.0+)
- Settings sections now use native
SettingGroupfor improved visual grouping (Obsidian 1.11.0+) - Falls back gracefully to traditional section headers on older Obsidian versions
-
(#59) Added
shortYeartemplate variable for custom filename and folder templates- Use
{shortYear}in filename templates (e.g., "25" for 2025) - Use
{{shortYear}}in folder templates - Thanks to @Pixeltica for the feature request
- Use
-
(#1393) Option to prevent auto-creation of default Base view files on startup
- New "Auto-create default files" toggle in Settings → Integrations → Bases Integration
- When disabled, deleted sample Base files will not be recreated on plugin load
- The manual "Create Default Files" button remains available for on-demand recreation
- Thanks to @wealthychef1 for the feature request
-
(#1408) Shift+click on status icon to cycle backwards through statuses
- Normal click cycles forward through status order
- Shift+click cycles in reverse order
- Thanks to @JerryLu086 for the feature request
-
(#1410) Task creation modal now starts in vim insert mode when vim keybindings are enabled
- Previously required pressing 'i' before typing when Obsidian vim mode was active
- The modal now automatically enters insert mode on focus, allowing immediate typing
- Thanks to @Leo310 for the feature request
-
Added button tooltips to calendar view toolbar
- Hovering over navigation and view buttons now shows descriptive hints
- Buttons include: Today, Previous, Next, Month, Week, Day, Year, List
-
Added tooltips to task modal action icons
- Icon buttons for status, date, project, priority, recurrence, and reminder now show tooltips on hover
- Improves discoverability for new users
-
(#503) Settings now sync automatically across devices via Obsidian Sync
-
(#1403) Kanban view option to consolidate status icons in column headers
- New "Show status icon in column header only" toggle in Kanban view settings (disabled by default)
- When enabled and grouped by status, shows the icon in the column header and hides it on cards
- Reduces visual redundancy when the column already indicates the status
- Thanks to @l-mb for the feature request and implementation
-
(#1401) Calendar view option to span tasks between scheduled and due dates
- New "Span tasks between scheduled and due dates" toggle in Calendar view Layout settings
- When enabled, tasks with both scheduled and due dates display as multi-day bars
- Provides Gantt chart-style visualization for project planning
- Thanks to @0atman for the feature request
-
(#1334)
{{currentNotePath}}now works for "Create new inline task" command- The inline task folder setting with
{{currentNotePath}}previously only worked for checkbox conversion - Now also applies when using the "Create new inline task" command from the command palette
- Thanks to @kmaustral for the feature request
- The inline task folder setting with
-
(#1264) Option to open Pomodoro timer in mobile sidebar instead of note panel
- New "Mobile sidebar" setting in Settings → Features → Pomodoro Timer
- Choose between: Note panel (default tab behavior), Left sidebar, or Right sidebar
- Allows quick swipe access to the timer without switching notes on mobile devices
- Thanks to @Evthestrike for the feature request
-
(#1220) Option to use ICS event end time as task due date
- New "Use ICS event end time as task due date" toggle in Settings → Integrations → Calendar Subscriptions
- When enabled, tasks created from calendar events will have their due date set to the event's end time
- For all-day events, uses the event date (not the ICS container end date which is the next day per ICS spec)
- For timed events, includes the exact end time
- Defaults to disabled to preserve existing behavior
- Thanks to @MiserMagus for the feature request
-
(#1108) Option to use task duration instead of due date for ICS calendar export
- New "Use task duration for event length" toggle in Settings → Integrations → Automatic ICS Export
- When enabled, exported calendar events use scheduled date + time estimate as DTSTART/DTEND
- This aligns with GTD workflows where scheduled + duration represents work planning, while due date represents deadlines
- When disabled (default), preserves existing behavior using due date as DTEND
- Thanks to @bepolymathe for the feature request
Fixed
-
(#1384) Fixed title being sanitized even when "Store Task Title in Filename" is disabled
- Characters like
?,<,>,:, etc. are now preserved in task titles when they won't be used in filenames - When
storeTitleInFilenameis false, only minimal sanitization (whitespace normalization, control character removal) is applied - Thanks to @allison-casey for reporting
- Characters like
-
(#1028), (#1140), (#1152), (#1354), (#1362) Fixed duplicate task entries appearing in Agenda view
- Tasks were shown twice: once as TaskNotes events and again as property-based events with a file icon
- Changed default Agenda template to disable property-based events (
showPropertyBasedEvents: false) - Users can re-enable property-based events in view settings if needed for non-task date properties
- Thanks to @YIRU69, @jhedlund, @dblinnikov, @Snakiest, @WeiYiAcc, @JacksonMcDonaldDev, @jimbo108108, and @krelltunez for reporting
-
(#1386) Fixed
timeEstimateCategoryformula showing "Long (>2h)" instead of "No estimate" for new tasks -
(#1397) Fixed Bases views (Kanban, Calendar, Task List) resetting to Calendar view after a few minutes
- Also fixed CalendarView corrupting other view files when saving state on unload
- Thanks to @music-soul1-1 for reporting
-
(#1398) Fixed overdue strikethrough showing on completed tasks
- Completed tasks with past due dates no longer display overdue styling
- Respects the "Hide completed from overdue" setting which defaults to true
-
(#1363) Fixed calendar view showing nothing when a task has an invalid date format
- Tasks with malformed dates (e.g., "262025-12-16" instead of "2025-12-16") no longer crash the entire calendar
- Invalid tasks are now skipped with a console warning, allowing other events to display normally
- Thanks to @Erelen for reporting
-
Fixed today column in week/day calendar views using FullCalendar's default yellow instead of theme accent
- Today's column now uses a tint of the theme accent color for consistent styling
-
(#1399) Fixed drag-and-drop not working in Kanban view on mobile
- Cards and columns can now be dragged using long-press gesture on touch devices
- Includes haptic feedback and auto-scroll when dragging near edges
- Thanks to @l-mb for reporting and the fix
-
(#1381) Fixed Pomodoro "Change Task" menu not showing newly created tasks
- Tasks created while the Pomodoro view was open would not appear in the task selector
- Improved metadata cache synchronization to properly wait for new files to be indexed
- Thanks to @Ghosthael for reporting
-
(#1344) Fixed "Unsaved Changes" popup appearing randomly when closing task edit modal
- The popup would appear even when no changes were made to the task
- Caused by inconsistent trailing whitespace normalization when comparing details content
- Thanks to @hasanyilmaz for reporting
-
(#1402) Fixed Kanban swimlane view showing tasks in wrong column when grouped by formula
- After editing task metadata, cards would jump to "None" column until Obsidian reload
- Column assignment now uses Bases' computed grouping instead of cached formula outputs
- Thanks to @bailob for the fix
-
(#1352) Fixed date context menu not preserving time when using increment options
- Using +1 day, -1 day, +1 week, or -1 week on a task with a time (e.g.,
2025-12-10T16:00) now preserves the time - Previously the time would be stripped, changing
2025-12-10T16:00to2025-12-11instead of2025-12-11T16:00 - Thanks to @cathywu for the feature request
- Using +1 day, -1 day, +1 week, or -1 week on a task with a time (e.g.,
-
Fixed v3 saved views exporting incorrectly to Bases format
- Title filters now correctly use
file.nameinstead ofnote.title - Archived filters now generate valid boolean expressions instead of malformed comparisons
- "Is Blocked" filters now generate correct expressions with proper operator precedence
- Title filters now correctly use
-
(#1036) Due dates can now be dragged in the calendar view
- Previously only scheduled dates were draggable; due dates were locked in place
- Dragging a due event now updates the task's due date property
- Thanks to @same774 for reporting
-
Improved calendar view responsiveness for user interactions
- Task creation, editing, timeblock changes, and view option toggles now update immediately
- Previously these actions waited 5 seconds due to the debounce intended for external file changes
- The 5-second debounce is now bypassed for direct user actions while still preventing flicker during typing
-
Improved visual affordance for Pomodoro timer duration adjustment buttons
- The +/- buttons below the timer now have visible backgrounds and borders
- Hover states show accent color border for clearer interactivity feedback
- Previo...
4.1.3
TaskNotes 4.1.3
This patch fixes a critical performance issue affecting the Calendar views. As a bonus, it adds a configurable "split" view to the task creation/edit modals.
Added
- Split layout for task modals on wide screens (900px+)
- Details editor appears in a dedicated right column when the modal is expanded
- New setting "Split layout on wide screens" in Modal Fields settings tab to toggle this behavior
- Improves usability by showing form fields and details side-by-side
Fixed
- (#1330) Fixed calendar view regression taking 5 seconds to load and respond to user interactions
- Initial calendar load is now immediate again
- User interactions (drag/drop, creating timeblocks, etc.) respond instantly
- Removed redundant date filtering (FullCalendar handles this more efficiently)
- Thanks to @ysafonov, @kmaustral, @sunjiawe, @Мизгирь, and @FiliusIcari for reporting
4.1.2
TaskNotes 4.1.2
Fixed
- Significant performance improvements for Bases views (TaskList, Kanban, Calendar)
- Reduced
extractDataItemstime from ~4 seconds to ~5-10ms for large vaults (6000+ tasks) - Computed file properties (
file.backlinks,file.links, etc.) are now fetched lazily during render instead of upfront - Only visible items (with virtualization) trigger expensive property computations
- Added debouncing to
onDataUpdatedto prevent UI freezes during typing - Timeblock generation now uses Obsidian's metadataCache instead of file reads
- Added date range filtering for calendar events to skip events outside visible range
- (#1285) Calendar view uses 5-second debounce to prevent flickering while typing
- Thanks to @steven-murray for reporting
- Reduced
- Calendar view switching (month/week/day/list) is now much faster
- View type is now saved on unload instead of on every change
- Fixed task edit modal archive button being too narrow on mobile devices
- (#1319) Added missing properties to Field Mapping settings
recurrence_anchor- now in Settings > Task Properties > Task Detailsskipped_instances- now in Settings > Task Properties > Metadata Properties- Thanks to @kazerniel for reporting
- (#1310) Fixed inline task conversion deleting text when task title exceeds filename limits
- Text that cannot fit in the filename is now preserved in the task note's body
- Thanks to @prayidae for reporting
- (#1301) Fixed inline task wikilinks leaving blank space when no metadata properties are visible
- Thanks to @Richard-UMPV for reporting
- (#1317) Fixed project autosuggest filters not working correctly when only "Required Property Key" is configured
- NLP
+trigger now properly filters by property existence when no property value is specified - Modal "Add to project" button now shows consistent results with inline autosuggest
- Thanks to @JacksonMcDonaldDev for reporting
- NLP
- (#1287), (#1307) The "New" button in Bases views now opens the TaskNotes creation modal
- Tasks created from Bases views now respect default properties (status, priority, etc.)
- Tasks are now created in the configured default folder instead of the views folder
- Thanks to @anareaty and @sylvainfct-dot for reporting
- (#1291) Fixed Microsoft Calendar OAuth documentation using wrong redirect URI
- Added instructions for configuring via Azure manifest editor
- Thanks to @PlecotusAustriacus for reporting
Added
- (#803) New command "Convert current note to task" to add task properties to an existing note
- Thanks to @GardarikanetS and @diegomarzaa for suggesting
- (#1080) Custom user fields now support default values
- Each field type has an appropriate input: text field, number input, toggle, date preset dropdown, or comma-separated list
- Defaults are applied when creating tasks via modal, instant conversion, "Create or open task" command, or HTTP API
- Thanks to @bradyrx for suggesting
Changed
- Added documentation link to settings panel (links to tasknotes.dev)
- Reorganized settings panel for improved discoverability
- Removed "Defaults" tab - default values are now configured alongside each property in the Task Properties tab
- Moved task filename format settings to the Title property section
- Moved project autosuggest settings to the Projects property section
- Body template setting moved to the Features tab
- Added descriptions to each property explaining its purpose
- Moved "Folder for converted tasks" setting to General tab under Task Storage for better discoverability
- Updated setting description to clarify that leaving empty uses the default tasks folder
4.1.1
TaskNotes 4.1.1
Added
- (#1277) Icon autosuggestion for custom status settings
- Type to search through all available Lucide icons
- Thanks to @Arachnidai for the suggestion
- New formula properties in default Base templates
- Date calculations:
daysUntilDue,daysUntilScheduled,daysSinceCreated,daysSinceModified - Boolean helpers:
isOverdue,isDueToday,isDueThisWeek,isScheduledToday,isRecurring,hasTimeEstimate - Time tracking:
timeRemaining,efficiencyRatio,timeTrackedThisWeek,timeTrackedToday,timeTrackedFormatted - Grouping:
dueMonth,dueWeek,scheduledMonth,scheduledWeek,dueDateCategory,timeEstimateCategory,ageCategory,createdMonth,modifiedMonth,priorityCategory,projectCount,contextCount,trackingStatus - Combined due/scheduled:
nextDate,daysUntilNext,hasDate,isToday,isThisWeek,nextDateCategory,nextDateMonth,nextDateWeek- work with whichever date comes first - Sorting:
priorityWeight,urgencyScore(combines priority with date proximity) - Display:
dueDateDisplay(relative dates like "Today", "Tomorrow", "3d ago") - Action-oriented views (Not Blocked, Today, Overdue, This Week) now sort by urgency score, showing most important tasks first
- See Default Base Templates documentation for full details
- Note: To get these new formulas, either copy them from the documentation, or delete your
.basefiles inTaskNotes/Views/and restart Obsidian to regenerate them
- Date calculations:
Changed
- (#1282) Added spacing between task title and metadata in inline task widgets for improved readability
- Thanks to @3zra47 for the suggestion
- Custom status icons now display in all context menus (task context menu, batch operations menu, and task creation/edit modals)
- Added embedded video guide for Google Calendar OAuth setup in documentation
- Thanks to @antoneheyward for the tutorial