TaskNotes 4.16.0
Added
- (Discussion #2435) Added an arbitrary date/time picker to batch Scheduled date and Due date menus in Task List, Kanban, and Calendar. Calendar tasks can be selected and rescheduled as a group, with non-interactive drag previews, relative dates/times preserved, and Undo for successful moves. Recurring templates, span bars, tracked time and external events are excluded from calendar task selection. See Calendar selection.
- Thanks to @mnicolas94 for requesting this and @Thanatos9404 for explaining the existing selection support and quick-date limitation.
- (#2188) Added Repeat current task for completed, non-recurring tasks. After confirmation, it reopens the same note, records its distinct completion dates, unarchives it and optionally resets body checkboxes, then opens the date editor. See Repeating a completed task. Thanks to @tgrosinger for contributing this command.
- Added collapsible columns in flat Kanban boards. Collapse is per grouping property and column for the current Bases session, not saved in the
.basefile. See Kanban View. Thanks to @nesyeklaf for #2259. - Kanban columns use configured status colours for subtle backgrounds and borders, including swimlane headers and cells. Unknown statuses and unresolved colours keep the normal surface. See Kanban View. Thanks to @nesyeklaf for #2260.
- (#2285) Swimlane rows in Kanban views can be reordered by dragging their labels. The order is saved in the view's
swimLaneOrderoption, and rows hidden by search or by Hide Empty Swimlanes keep their positions. Dragging rows needs a mouse for now. See Kanban View- Thanks to @borsos-ilo for requesting this, and to @ppeirce for the interaction design and the original implementation in PR #1862
- (#2138) Property-based task identification can match on a property alone. Leave Task property value empty to treat every note that has the property as a task, whatever its value (for example any note with a
statusproperty). Task detection, the default Base files (file.hasProperty()) and the generated mdbase type (exists: true) all use this rule, and new or converted tasks get the property if they don't have it. See General settings- If you already have a property name set with the value left empty, which previously identified no tasks, every note with that property now becomes a task after updating. Set a value to keep the old matching
- Thanks to @jcconnects for requesting this and for the original implementation in PR #2139
- (#974) Added optional syncing of daily-note timeblocks to Google Calendar. Turn on Sync timeblocks under Settings → TaskNotes → Integrations → Export timeblocks to Google Calendar to create, update and delete events as you add, edit, move and remove timeblocks. Timeblocks can use their own target calendar and event title template. See Calendar Integration.
- Thanks to @karthikm-0 for requesting this, and to @Lorite for the original implementation in #1677
- Inline task conversion can turn a task line into an existing note. When the line links to a note with the alias
note(for example[[Skills/Live demos|note]]), that note becomes the task instead of a new file being created. Its name, body and existing properties are kept; only missing task properties are added. See Inline Tasks- Thanks to @johnyoonh for the original proposal and test cases in PR #1867
- (#1004) ICS calendar subscriptions can now use a username and password (HTTP Basic authentication) for private feeds such as Nextcloud, Baïkal and Davis. The password is stored in Obsidian Secret Storage, not in plugin settings, and credentials are only sent over HTTPS. See Private feeds.
- Thanks to @WorldTeacher for the original implementation in #1346, and to @vbaz for requesting this
- Reminders can now be edited in place from the reminders dialog instead of being deleted and recreated. An edited reminder keeps its identity and is rescheduled for its new time. See Reminders. Thanks to @cybersader for the original implementation in #1730.
- (#1708) Added attachment management to the task creation and edit modals. Add from vault links an existing file, and Import file (or dragging files onto the field) copies a file from your device into the vault when the task is saved; cancelling writes nothing. Attachments can be opened, reordered and unlinked, and unlinking never deletes the file. Task cards and calendar events show a paperclip with the attachment count. The field can be hidden in Modal Fields settings. See Attachments.
- Thanks to @davidszp for the original pull request
- (#1477) Added a per-calendar “Title contains” filter for ICS subscriptions. It matches plain text without case sensitivity, applies immediately to cached events, and uses renamed recurring occurrences’ own titles. Leave it empty to show all events. Regular expressions are not supported. Thanks to @mcbabo for the contribution.
- Project and wikilink suggestions support
containsAny(...)and!containsAny(...)property-value filters to include or exclude values, while preserving literal filters and key-only matching. See Task properties. Thanks to @kapej42 for contributing this in #2089.
Fixed
-
(#2471) Fixed TaskNotes Bases views that were open during a plugin update continuing to run the previous version until reopened. After updating from 4.14 to 4.15, an open Calendar tab kept the old calendar but lost its styles, so the week view drew the time labels inside the Wednesday column. Open TaskNotes views are now rebuilt with the updated plugin when it loads. Restarting Obsidian or reopening the tab also fixes it.
- Thanks to @flynn-frog for reporting.
-
(Discussion #2475) Fixed tasks missing from the Calendar view since 4.15.0 when a date property used a space instead of
Tbetween date and time (for exampledateCreated: 2025-06-01 10:00:00) or could not be read. Such dates are now read as usual, and a date the calendar cannot read is ignored on its own instead of hiding the whole task.- Thanks to @DH-GH-1 for reporting this.
-
Fixed concurrent Pomodoro, auto-archive and ICS subscription saves overwriting other plugin data, including Google Calendar timeblock links and settings changes.
-
Fixed a failed task-details save leaving attachment links to newly imported files that had been rolled back. Task fields and details now save together.
-
(#2434) Fixed aliased project links appearing unresolved when reopening a task in the edit modal, while preserving their aliases and heading/block references.
- Thanks to @stemForge for reporting and identifying the parsing problem.
-
Fixed Ctrl/Cmd-clicks on Task List and Kanban card bodies opening task notes instead of selecting tasks. Shift-click uses the view's range selection, while card links, controls and standalone embedded cards keep their existing actions.
-
Fixed the custom field settings card header not updating its title and property key while the field is edited. Thanks to @cybersader for finding this in #1730.
-
(#1440) Links to a heading or block, such as
[[Note#Heading]],[[Note#^block]]or[text](<Folder/My%20Note.md#Heading>), now open the note at that heading or block from task cards, project links and task details, and keep the target for Ctrl/Cmd+click, middle-click and hover previews. Angle-bracket wikilinks with encoded spaces and a heading now resolve to the right note, and relative project links (for example[[../Projects/Alpha]]) are resolved from the task's own folder when filtering, grouping and in Stats. Thanks to @normenmueller for the original pull request -
(#1451) Hide exported Google Calendar copies only when Calendar or Mini Calendar shows the linked task on that day. Unrelated events and occurrences without a visible task stay visible.
-
(#1811) Restored dragging tasks onto Calendar views to schedule them. Inline task widgets can be dragged again, and so can Task List and Kanban cards; dropping on a time slot sets a scheduled date and time, and dropping on a date or the all-day row sets a scheduled date. See Calendar views. Thanks to @ghake for reporting this.
-
(#1545) Fixed Task List and Kanban group headers showing an unrelated note for plain values. A context such as
STYwas rendered as a link to any note named like it, using that note's title. Plain values now stay plain text unless they are the exact vault path of a note (for exampleProjects/AlphaorAlpha.md); wikilinks and Markdown links, including root-level project links, still render as links with their aliases and frontmatter titles- Thanks to @normenmueller for the original fix
-
(#2061) Fixed reminder system notifications not appearing on Windows. Windows silently drops notifications with long tags, and reminder notifications were tagged with the full task path. They now use a short tag, so they appear like the test notification does
- Thanks to @Xiarno for reporting, and to @hokutonanto, @jahlpub, @pepijnvtol and @dmantisk for confirming it across Windows 11 setups
-
(#2276) Creating or converting a task now says when its filename differs from its title because filenames cannot contain characters such as
/ \ : * ? " < > |. The notice names the file that was created. The full title was already kept in the task's title property and shown in TaskNotes views, but Obsidian's tab, file list and quick switcher show the filename, so the change looked like lost text. This applies on every platform- Thanks to @mudnug for reporting
-
(#2274) Changing the NLP language now applies straight away to instant task conversion and to the HTTP API and MCP parse tools. Previously these kept parsing in the language that was set when Obsidian started, so Italian phrases such as "Comprare latte oggi" were left unparsed until a restart
- Thanks to @MarcoBarna for reporting
-
(#2379) Generated Bases files now give tasks with a missing or unrecognized priority a
priorityWeightof-1instead of999, so sorting byformula.priorityWeightin descending order lists High, Normal, Low, None, and then those tasks, and they no longer rank as the most urgent inurgencyScoresorts. The documentation now explains that sorting bypriorityitself is alphabetical and thatformula.priorityWeightsorts in your configured priority order when sorted descending, correcting earlier guidance that said ascending. Existing Bases files keep their formula; see Sort by priority to update it. Thanks to @iantierney for reporting this. -
(#2202) Recurring tasks created without a scheduled date now get one: the first upcoming occurrence, with the start time kept for timed recurrences. Previously only the recurrence start was written, so features that need a scheduled date, such as Google Calendar export, skipped the task until it was edited. Series that have already ended are left unscheduled
- Thanks to @christenbc for finding this and for the original fix in PR #2202
-
(#2468) Fixed timeblock edits losing or corrupting a daily note's frontmatter when a frontmatter value contained
---, for exampledescription: "Part A --- Part B". Reading timeblocks dropped everything after that value, editing or deleting a timeblock failed with "No timeblocks found", and creating one could leave a stray line in the note. TaskNotes now finds the end of frontmatter the same way Obsidian does, so only a---on its own line closes it- Thanks to @ac8318740 for finding and fixing this
Security
- Applied the plugin's maintained Zod constrained-collection security backport to the documentation tooling as well.
Changed
- Updated the calendar engine to 0.1.5. Narrow week views scroll sideways instead of crushing day columns, year views use a compact phone layout, touch swipes on items scroll the page, and dragging keeps working after moving a calendar to a popout window.
- (#1370) A recurring series now moves to the Next status set on your first completed status when its current occurrence is completed or skipped, so an in-progress status does not carry over to the next occurrence. Series keep their status when no next status is set. See Recurring Tasks.
- Thanks to @Jomo94 for requesting this and @martin-forge for the implementation in PR #2441
- Task List group and subgroup headers stay visible while scrolling, including virtualized lists. Thanks to @christenbc for the contribution in #2168.