Releases: NotePlan/plugins
⏱ Habits and Summaries
What's Changed in ⏱ Habits and Summaries plugin?
(And see the full README.)
[1.0.1] - 2025-10-11
Dev
- Fixed formation of 'Refresh' x-callbacks for /appendProgressUpdate (only noticeable to devs)
Fixed
- running the
progressUpdate(...)template tag wouldn't write to anything other than the current note.
[1.0.0] - 2025-10-08
Rather arbitrarily promoting this to v1.0. But I think it deserves it after 4 years!
New
- Adds support for 'all' time period in /periodStats command, including x-callback (for @Grdn)
- Allow override of settings for /periodStats command when called from x-callbacks (for @Grdn). This is achieved through a new 4th callback argument where any relevant settings can be over-ridden. (See examples in README!) Note: will work for newly-created 'Refresh' buttons, but existing progress sections may need re-generating from scratch for this to work.
Changed
- In the progress update output, if an item is asked for both in "average" and "total", then the output will show them combined, rather than as separate lines (for @joshdoyle, closes #614).
- If you 'Refresh' an existing progress summary in an older note, it should now use the date interval when it was created, rather than the current date interval (for @vorg, closes #450). Note: will work for newly-created 'Refresh' buttons, but existing progress sections may need re-generating from scratch for this to work.
- Uses richer menu in /periodStats command (available from NP 3.18.0)
- Add note icon to periodStats output notes.
Fixed
- stop periodStats opening its output note in a new split window when it was already open
[0.22.1] - 2024-09-13
- fix empty lines appearing in output of some
progressUpdate(...)template calls (reported by Madscientist and Kc)
[0.22.0] - 2024-06-04 by @aaronpoweruser
- Add new "checklist progress" option to appendProgressUpdate command (by @aarong). See README for details.
[0.21.0] - 2024-03-03
- new "Weekly Stats for Mermaid" command. See README for details.
- added a 'Refresh' button to periodStats outputs (except where the interval cannot be back-computed)
- fix to 'sparkline' output of 'Yes/No Items' (thanks to report by @thor)
[0.20.4] - 2024-02-16
- fix to "Weekly Stats as CSV" command output
[0.20.3] - 2024-01-30
- fixed problem when using
periodStats()tag from a template (thanks to report by @bhan.me). Requires updating Templating plugin to v1.10.2 as well.
[0.20.2] - 2023-12-30
- added x-callback options for /periodStats command. See documentation for details.
[0.20.1] - 2023-11-10
- fix Refresh button not working after '/append progress update' command
- turns down logging against an API error
[0.20.0] - 2023-10-12
Added
- new today progress command that summarises tags or mentions within today's note. This could be useful for summarising
@calories(...)noted from different meals, for example. This can also be invoked by an x-callback call, and through template calls. (For @seanokana) - new heatmap for tag command that displays a 'heatmap' chart of a chosen tag's values for each day (e.g. all
@work(...)values from daily notes) - new Habits+Summaries:update plugin settings command, that allows settings to be changed on iOS/iPadOS.
[0.19.4] - 2023-09-26 unreleased
Added
- Refresh button to output of periodStats command, where the time period is " to date"
[0.19.3] - 2023-08-06
Fixed
- date logic on 'weeklyStatsToCSV' command output
[0.19.2] - 2023-07-28
Fixed
- date logic when selecting 'other month' for stats (thanks to tip by @chrismalek)
[0.19.1] - 2023-05-15
Added
- new settings '#hashtags to average' and '#hashtags to total' alongside existing '#hashtags to count' setting for periodStats command
- new setting 'Include sparkline graphs?' that now applies separately to the 'periodStats' command
Changed
- the 'periodStats' command will attempt not to open another copy of the output note in another split view, if that output note is already open
Fixed
- regression in last release with /periodStats
[0.19.0] - 2023-05-14
Added
- new settings '#hashtags to average' and '#hashtags to total' alongside existing '#hashtags to count' setting for appendProgressUpdate command.
Changed
- increased the number of significant figures shown in Progress Summary 'average' outputs (for @chrismalek, #443)
- code tidy up
[0.18.0] - 2023-03-21
New
- Added new '@mentions to average' and '@mentions to total' alongside existing '@mentions to count' setting for periodStats command. These tailor the output to focus on just the average or total, rather than all the currently-presented statistics (count, total and average). (These now match what is already possible with /insertProgressUpdate.)
Changed
- changed name of user command insertProgressUpdate to appendProgressUpdate to better reflect how it works. (The earlier name still works, and it also doesn't require changing any existing templates or x-callback calls.)
Fixed
- 'Exclude today?' setting being ignored
- Other fixes to date display for some periodStats
[0.17.3] - 2023-01-19
Fixed
- fix edge case of malformed @mentions in "insertProgressUpdate" calls
[0.17.2] - 2023-01-03
Fixed
- end-of-year bug in dates for "periodStats" for "last month" option.
[0.17.1] - 2022-11-27
Fixed
- worked around newly-discovered API bug when processing repeats like @repeats(1/7) in Summaries commands.
[0.17.0] - 2022-11-25
Added
- will write periodStats summaries to the new monthly/quarterly/yearly notes (available from NP v3.7.2) as well as the existing folder you can set in the settings.
[0.16.1] - 2022-11-17
Fixed
- error in template
progressUpdate(...)when usingheadingfield with new{{OPTION}}, andperiodfield with a YYYY-MM-DD date. (Spotted by @dwertheimer)
[0.16.0] - 2022-11-16
Added
- Allow to be used by x-callback calls -- see README for details
- Greater flexibility for using insert progress update from templates, all of which can override what is in the various settings:
- 'period' setting: pass a specific YYY-MM-DD date to run the summary report from (thanks to @dwertheimer)
- 'excludeToday' setting which if true excludes today's date from the output. (thanks to @dwertheimer)
- allow arbitrary hashtags to be used (for @dwertheimer)
- added a Refresh 'button'
- Also greater flexibility when used as a command with following new settings:
- 'excludeToday' setting which if true excludes today's date from the output. (thanks to @dwertheimer)
- the way
progressHeadingcan be used is noq more flexible, as you can now insert{{PERIOD}}anywhere in the string, which will be replaced by the actual period you've asked to summarise (for @dwertheimer)
[0.15.1] - 2022-11-12
Added
- Adds new '@mentions to average' and '@mentions to total' alongside existing '@mentions to count' setting. These tailor the output to focus on just the average or total, rather than all the currently-presented statistics (count, total and average). You might want to migrate some in the existing setting to the two new alternatives.
Changed
- The niche /weeklyStatsToCSV command has been speeded up significantly, tweaked to write to a hidden file, and made more generic. It now has a separate 'Items to Chart' setting to list the @mentions or #hashtags to include.
[0.15.0] - 2022-11-04
Added
- Adds new '@mentions to average' and '@mentions to total' alongside existing '@mentions to count' setting. These tailor the output to focus on average or total, not all the currently-presented statistics. (You might want to migrate some in the existing setting to the two new alternatives.)
Changed
- Improved display of results of average and totals in the various stats updates
Fixed
- Fixed an issue with display order in sparklines
[0.14.1] - 2022-10-15
Changed
- the date in the title is now formatted according to your locale
[0.14.0] - 2022-10-04
Added
- new /heatmap for complete tasks command displays a 'heatmap' chart of how many tasks you've completed on each day (see example above). This checks in all daily, weekly and project notes over the number of weeks you specify to look back (via the 'Chart Duration (in weeks)' setting). If you don't set it, the plugin will generate a sensible period up to 12 months. Note: requires NotePlan v3.7.
Changed
- stop sparklines appearing in the '/periodStats' command for periods of more than a month.
[0.13....
🥷 Task Sorting & Tools
dwertheimer.TaskSorting Changelog
About dwertheimer.TaskSorting Plugin
See Plugin README for details on available commands and use case.
[1.2.6] - 2025-09-23 (@dwertheimer)
- Add logging for jgclark to sortTasksUnderHeading
- Add ability to pass all params to /ts and /tsh commands
- remove sortTasksViaTemplate code which was never a published command
- change default behavior of /ts* commands to interleave task types (open/checklist together)
- NEW: Add
sortInHeadingsparameter to/tscommand to override DataStore settingsortInHeadings: falsetreats entire note as one unit (moves all open tasks to top)sortInHeadings: truesorts tasks within each heading separately (default behavior)- Allows x-callback-url calls to specify sorting behavior regardless of user's DataStore settings
- Fix bug where tasks were not being sorted in headings for frontmatter-only notes
[1.2.4] - 2025-08-31 (@dwertheimer)
- Add saveEditorIfNecessary() to all commands
[1.2.3] - 2025-08-29 (@dwertheimer)
- Add sortTasksViaTemplate command to sort tasks via a template.
[1.2.2] - 2025-08-29 (@dwertheimer)
- Remove NotePlan popup nag on repeat deletion check using Editor.skipNextRepeatDeletionCheck
[1.2.1] - 2025-08-29 (@dwertheimer)
- Added noteOverride parameter to sortTasksUnderHeading command for @jgclark
[1.2.0] - 2025-01-25 (@dwertheimer)
- Added sortTasksUnderHeading command to sort tasks under a heading.
- Added /cnt command
[1.1.0] - 2024-05-26 (@aaronpoweruser)
- Added /cnt command to copy all noteTags to all tasks in a note.
- Added an onSave trigger command for cnt.
[1.0.0] - 2024-01-?? (@dwertheimer)
🔗 Link Creator
"🧩 Link Creator Change Log
About np.CallbackURLs Plugin
See Plugin README for details on available commands and use cases.
[1.10.0] - 2025-09-23 @dwertheimer
- Add lineLink command
- Fix bug in line+headingLink where the URL was being written to clipboard even if u don't want it
[1.9.2] - 2025-08-29 @dwertheimer
- Fix chooseNote bug in TemplateRunner
[1.9.1] - 2025-08-19 @dwertheimer
- Fix bug in wizard when using showOptions()
[1.9.0] - 2025-08-18 @dwertheimer
- Fix template runner wizard bug
- Add link to run template to frontmatter of template note
- Add open a named folder view to wizard
[1.8.0] - 2025-06-09 @dwertheimer
- Added templating specific commands to wizard to reduce confusion
[1.7.0] - 2025-04-02 @dwertheimer
- Added open a folder selection to wizard
[1.6.2] - 2024-05-28 @dwertheimer
- Bump version to re-release it
[1.6.1] - 2023-09-12 @dwertheimer
- Bug fix for calling np.Templating (can't pull plugin.json)
[1.6.0] - 2023-08-27 @dwertheimer
- Adding passpack for /favorite commands (see Favorites Plugin)
[1.5.0] - 2023-06-10 (@dwertheimer)
- Adding ability to open links in a note for open tasks (under the hood uses new helpers/urls functions for consistency)
[1.4.1] - 2022-01-19 (@dwertheimer)
- Make default pretty link the title
[1.4.0] - 2022-01-19 (@dwertheimer)
- Add dialog box on URL creation for creating pretty links (thx @stacey)
[1.3.0] - 2022-12-21 (@dwertheimer)
- Fix bug when selecting self-running template
- Include ability to create self-running template
- Hide x-success behind a preference field
[1.2.1] - 2022-12-08 (@dwertheimer)
- @jgclark changed self-running templates to use semicolons to separate variables. Updated the URL maker to match
[1.2.0] - 2022-12-04 (@dwertheimer)
- Added links to lines
- Updated the way hashtags in titles are encoded (which changed in NotePlan) -- strip out hashtags in headings
[1.1.2] - 2022-10-02 (@dwertheimer)
- Renamed plugin to Link Creator
[1.1.1] - 2022-09-20 (@dwertheimer)
- Fix bug with parentheses in URL which were not urlencoded
[1.1.0] - 2022-07-16 (@dwertheimer)
- Added TemplateRunner code to run templates from links
[1.0.0] - 2022-07-11 (@dwertheimer)
- Changed plugin Name to: "🧩 External Links, X-Callback-URLs, RunPlugin Creator"
- Added command "Create Link to Current Note+Heading" with direct access from command bar
[0.6.0] = 2022-07-02 (@dwertheimer)
- Added noteInfo command
- Added deleteNote command
- Addex x-success return capability on all commands
- Added DataStore.installOrUpdatePluginsByID to init
[0.5.0] - 2022-07-01 (@dwertheimer)
-
Added addNote command
-
[0.4.0] - 2022-06-28 (@dwertheimer)
-
Added callback URLs for Shortcuts
[0.3.0] - 2022-06-25 (@dwertheimer)
- Add callbacks for FILTER and SEARCH
[0.2.0] - 2022-06-22 (@dwertheimer)
- Add Templating invokePlugin output type
[0.1.2] - 2022-06-05 (@dwertheimer)
Added
- Open documentation URL
[0.1.1] - 2022-06-05 (@dwertheimer)
Fixed
- Endless loop on cancel
- Cancel stops flow
- Improved messaging on arguments dialog
[0.1.0] - 2022-06-05 (@dwertheimer)
- Initial release, includes openNote, addText and runPlugin
🕸 Map of Contents
What's Changed in 🕸 Map of Contents plugin?
For more details see the plugin's README.
[0.3.3] - 2025-09-22
- rebuild to use more advanced folder picker
- adds frontmatter to generated MOC (if running NP 3.18.1 or greater)
[0.3.2] - 2024-12-22
- bump version number to get round a GitHub problem
[0.3.1] - 2023-06-16
- new command /MOC: update plugin settings that allows settings to be changed on iOS/iPadOS.
[0.3.0] - 2023-06-09
- speeded up generation significantly
- added a refresh button to MOC notes
- now supports Chinese character searches (thanks to report by 黑背衝鋒)
[0.2.3] - 2022-09-27
Changed
- Now automatically excludes the special folders (Archive, Templates, Searches) from being included when creating MOCs. The Trash was already excluded.
[0.2.2] - 2022-08-18
Changed
- updated to newer logging framework. No functional changes, I think.
[0.2.1] - 17.7.2022
Added
- fixed problem with #hashtag and @mention in search terms
- Note: there is an issue in NotePlan with created notes with @ or # in the title: they tend to disappear, which makes the refreshing of MOCs into the existing MOC unreliable.
[0.2.0] - 13.6.2022
Added
- new option 'Sort order for results', and now defaults to 'alphabetical', with other options 'createdDate' and 'updatedDate' [requested by @John1]
- new option 'Case insensitive searching?', which defaults to false [suggested by @John1]
Changed
- now matches search terms on whole words, not parts of words
- now ignores matches in paths of markdown links, as well as in file:/... and https://... URLs [suggested by @John1]
[0.1.0] - 9.6.2022
Initial release with new command to create Maps of Content (MOCs) /make MOC. I regard this as experimental feature, and I particularly welcome feedback on its usefulness.
🔁 @repeat Extensions
What's changed in 🔁 Repeat Extensions plugin?
Please see the Readme for this plugin for more details, including the available settings. For this plugin to work, you need to have the 'Append Completion Date' setting turned on in Preferences > Todo.
[1.0.1] - 2025-09-17
Changed
Adds future ability for plugin to auto-update itself.
[1.0.0] - 2025-09-06
New feature: can now sort the section after a repeat has been generated in it. There are 2 new settings:
- "Run Task Sorter after changes?". If set, it will sort the lines in the section after a repeat has been generated in it. The ordering is controlled by the next setting.
- "Order for Task Sorting". This is a comma-separated list of fields to sort the section by, after generating repeats. The choices are any combination of 'content', 'due' (date), 'priority', 'mentions', 'hashtags'. Each field can be preceded by a minus sign to sort in reverse order. This is most useful for '-priority' which will sort from highest to lowest.
Note: This requires @dwertheimer's 'Task Sorting & Tools' Plugin to be installed.
[0.9.1] - 2025-08-29
Changed
- to avoid issues, any sync marker (the blue asterisk) on the completed task is not included on the new version of the task. (Thanks, @laurah + @i_mush. Addresses #672.)
- Further, when a task lives in a regular/project note, and the sync copy is in a Calendar note, then marking it as complete in the Calendar note will make the new repeated task appear in the regular note. (For @laurah. Addresses #672.)
[0.9.0] - 2025-05-26
Changed
- new setting "Don't look for repeats in Done or Archive note sections?", which defaults to false. (Closes #586 for @dbcoyer and @ouhakheme)
Fixed
- new repeats are now indented to the same level as the original line
- not working on notes with just 1 line
[0.8.2] - 2024-11-02
- turn off warning on deleting
@repeat()s -- useful if you have Delete Completed Repeats setting turned on. Note: requires NotePlan v3.15 beta from 2024-11-02 or later.
[0.8.1] - 2024-06-14
- fixed bug and improved logging
[0.8.0] - 2024-06-09
- added setting 'Delete completed item?', which when set deletes rather than keeps the completed repeated item.
- fix detailed logging error in dateTime::cODS
[0.7.1] - 2024-06-07
- can now be run from an x-callback or function, passing in the note to process. This was needed for the new Tidy plugin command, which generate any needed repeats in all recently-changed notes.
[0.7.0] - 2024-03-08
- adjust new date calculation: when there is no task due date, use the note date if it exists, otherwise default to (current behavior) of task completion date. (PR by @ameritrash)
- fix to @repeat(1m) repeats in a monthly note not being written into a monthly note (etc.)
🧩 Todoist Noteplan Sync
Todoist Noteplan Sync Changelog
About this Plugin
See Plugin README for details on available commands and use cases.
[0.4.0] - 2025-09-15 (dbludeau)
- Updated plugin to use new Todoist V1 API.
[0.3.0] - 2024-09-01 (dbludeau)
- Fixed issue caused by "Folder" setting for Sync Everything command.
- If leading or trailing slash was included, the plugin would not recognize the folder as already existing, leading to duplication of notes.
[0.2.0] - 2024-08-30 (dbludeau)
- Added settings to account for Todoist Teams accounts
- Fixed duplication issue that was caused by URL changes in the todoist tasks.
[0.1.0] - 2023-08-18 (dbludeau)
- Initial version with "/todoist sync today", "/todoist sync everything", "/todoist sync project", "/todoist sync all projects" and "/todoist sync all projects and today" commands
📒 Templating
Templating Changelog
About Templating Plugin
See Plugin Documentation for details on available commands and use case.
DBW: REMEMBER THAT IF YOU ADDED ANY HELPERS IMPORTS, ADD THEM TO THE HELPER MODULE TO GIVE SCRIPTS ACCESS TO THEM ALSO
[2.1.0] 2025-08-?? @dwertheimer
New Features
- Add helpers module to provide access to commonly used helper functions in templates. See Helpers for details
- Add
tp:helpcommand to open templating help page in browser - Add ability to skip AI error analysis by adding
disableAIErrorAnalysis: trueto the frontmatter of the template
TemplateRunner Improvements Docs
- Update templateRunner to allow for passing an object as args (e.g.
templateRunnerExecute('templateName', true, { getNoteTitled: 'myNoteTitle' })) - Add
headingLevelandaddHeadingLocationto templateRunner to allow for control over where the heading is added and what level it is - Add
replaceHeadingto templateRunner to allow for replacing the heading and all content under it - Add
createMissingHeading(default true) to templateRunner to allow for overriding and disabling the creation of missing headings (text will be lost if you do this)
Bug Fixes/Stability Improvements
- Automatically close code/comment tags with -%> so that people don't get extra newlines in the output if they forget to add the closing tag with the newline slurping (-%>)
- Add
autoSlurpingCodeTagssetting to allow for turning off the automatic closing of code/comment tags with -%> - Fix YAML validation to allow hyphens and spaces in frontmatter key names (e.g.,
note-tag: #CTI,my key: value) - Fix edge case where new template note was getting template tags in the filename (thx @clayrussell)
- Fix bug where folder in a meeting note button press was not prompting if you had content in the note
- Fix bug where CommandBar.prompt was being caught by the prompt handler regex and showing a listOptions with the code
- Add validation to ensure meeting note templates are run on calendar events and stop if not
- Add validation for meeting note templates to prevent execution without proper event data
Other
- Improve debugging output for frontmatter validation to show exactly why content is considered valid or invalid
- Add some JS error logging at end of console messages to make error finding easier
- Change log level of some log messages to info (variable passing)
- remove evaluation of code in standard prompt handler
[2.0.20] 2025-08-07 @dwertheimer
- Fix folder selection in new note command (adds folder path to chooser)
[2.0.19] 2025-08-06 @dwertheimer
- Fix calendar notes not working right after title searching changes
- Fix edge case where a template had -- frontmatter but no tags and was taking the fast path wrongly
[2.0.18] 2025-08-06 @dwertheimer
- add pluginID for iphone settings editing
[2.0.17] 2025-08-06 @dwertheimer
- Fix bug where non-fm-body templates which started with -- were being treated as frontmatter
[2.0.16] 2025-08-06 @dwertheimer
- Add pivot offset to date.now() method
[2.0.15] 2025-08-06 @dwertheimer
- Fix date module edge cases with timezones
[2.0.14] 2025-08-06 @dwertheimer
- Make it possible for a template to have any level of heading for the title (was previously H1 only)
[2.0.13] 2025-08-05 @dwertheimer
- Fix bug where inline H1 title was not being used in templateNew (thx @crussell)
- Ensure that inline H1 title is not created in frontmatter even if there is other frontmatter being created
- if there is newNoteTitle and also an inline H1 title, the newNoteTitle will take precedence and will be created in frontmatter
[2.0.12] 2025-08-02 @dwertheimer
- Fix templateNew to handle blank meeting note edge case
[2.0.11] 2025-07-31 @dwertheimer
- Fix getFolder to handle and to honor folder attribute in quick-note templates [2.0.10] 2025-07-30 @dwertheimer Fix quick-note with frontmatter [2.0.9] 2025-07-27 @dwertheimer Fix xcallback bug in append and insert [2.0.8] 2025-07-19 @dwertheimer Insert/AppendTemplate on a blank notewith folder will create a new note in the folder and move the current note to the trash Insert/AppendTemplate on a non-blank note with folder will prompt the user whether to move the current note to the folder Fix edge case where getValuesForKey was not working correctly Fix bug with scriptlet slurping tags <%_ and _%> Add web.services to globals to get automatic await stmt Change timeout message for web services to be more helpful (esp for advice, verse, quote, and weather) Fix TemplateRunner bug where it was not finding notes by title [2.0.7] 2025-07-15 @dwertheimer Fix renderTemplate() bug that was showing frontmatter in result [2.0.6] 2025-07-11 @dwertheimer Replace all smart quotes with straight quotes (works around auto-inserted smart quotes in Mac, iOS, and iPadOS) [2.0.5] 2025-07-08 @dwertheimer You can now add properties to a generated note by adding it using three dashes "---" Fix bug where new note frontmatter was not being processed correctly if there were no templating tags [2.0.4] 2025-07-03 @dwertheimer Fix limitation where template strings were not being evaluated in include/import tags [2.0.3] 2025-06-28 @dwertheimer Improve AI error handling analysis to include more context vars/functions in the prompt [2.0.2] 2025-06-26 @dwertheimer Add stoicQuote to globals and web module Add verse to globals and web module Add note.getRandomLine to NoteModule [2.0.1] 2025-06-25 @dwertheimer Fix bug @jgclark found where multi-line JS inside a single tag was not working [2.0.0] 2025-XX-XX @dwertheimer Update Add Frontmatter/Properties to Template command name add tag function getValuesForKey to get all values for a given frontmatter tag add tag function promptKey to prompt user for a value with a lot of flexibility on which folders to search for the value etc. add tag function getNote to get a note by title, filename, or by id add <select XXX> to allow for selecting a folder from a reduced list of folders starting with XXX update date module to use NotePlan's week numbering compatibility with NotePlan's user-configurable week start day preferences fix promises and lack of await keyword in template tags add openTasks, completedTasks, openChecklists, completedChecklists to NoteModule Change documentation links to point to new documentation site Fix the long-standing bug where template errors did not show proper line number, esp. when longer code blocks Improve templating error handling/making suggestions for how to fix on JS code execution errors Add detection/messaging of template function calls called without parentheses Add ability to pass newNoteTitle argument to templateNew command and JSON vars for Shortcuts support Added incrementalRender setting to allow for turning off incremental render debugging of templates when they fail to render Added editSettings command to allow for mobile editing of plugin settings Fix long-standing bug where date.format did not work correctly Fix templaterunner bug where the file was not opening in the Editor Add to templateAppend command for easy testing of templates Add journalingQuestion commands to WebModule per Tim Shaker - https://discord.com/channels/763107030223290449/963950027946999828/1051665188648132648 Add date.daysUntil to DateModule Fix bug in promises in date shorthand codes add note.currentNote() to NoteModule fixed formattedDateTime to work with strftime format (what it was) or moment (what we use everywhere else) added moment to globals fixed now which did not match the documentation -- now works with simple offsetDays fixed date8601 bug in the date module Developer Massively refactored rendering pipeline (NPTemplating) to make it easier to understand and maintain Added a lot of logging to help debug issues with templating that users may encounter Added event methods eventDate and eventEndDate to the templating context object so Meeting Notes could use DataStore.invoke which serializes and otherwise drops functions. this allows Meeting Notes to not need updating but always use the latest Templating Added init method to Templating.js to allow for automatic updates to the plugin (crazy that it was not there before) [1.12.0] 2025-03-09 @dwertheimer Add Add Frontmatter/Properties to Template command Improve template getter to not load every template in the DataStore [1.11.5] 2025-03-09 @dwertheimer Fix: Minor improvements in getTemplate inclusion [1.11.4] 2025-03-07 @dwertheimer Fix: templateRunnerExecute (templateRunner) was failing to process EJS tags in the frontmatter of receiving template (thx @jgclark) [1.11.3] 2025-03-06 @dwertheimer Fix: Improve Template error message (put it in a code block) [1.11.2] 2025-03-06 @dwertheimer Fix: Deal with multiple templates found for title [1.11.1] 2025-03-06 @dwertheimer Workaround for frontmatter UI and CSV strings [1.11.0] 2025-01-26 @dwertheimer Add and to template forms
[1.10.6] 2024-10-10 @dwertheimer
- Fix: Allows letters 'ejs' in text to be left intact
- Feature: Adding template forms (hidden command)
[1.10.5] 2024-02-23 @EduardMe
- Update documentation links
[1.10.4] 2024-02-19 @dwertheimer
- Allow basic templates without frontmatter
[1.10.3] 2024-02-14 @dwertheimer
[1.10.2] 2024-01-30 @jgclark
- fixed issue when using
progressUpdate(...)in template (from Habits & Summaries plugin)
[1.10.1] 2024-01-11 @dwertheimer
- Bug fix to remove spaces after comment ta...
✍️ Meeting Notes
np.MeetingNotes Changelog
About np.MeetingNotes Plugin
See Plugin README for details on available commands and use case.
[2.0.5] - 2025-08-11 @dwertheimer
- Just bumping version to make sure title setting and meeting note validation are happening in MN
[2.0.4] - 2025-08-07 @dwertheimer
- Fix edge case where note had frontmatter but empty body and the template was overwriting the frontmatter
- Add logging
[2.0.3] - 2025-08-06 @dwertheimer
- Make it possible for a template to have any level of heading for the title (was previously H1 only)
[2.0.2] - 2025-08-05 @dwertheimer
- Fix bug where inline H1 title was not being used in templateNew (thx @crussell)
[2.0.1] - 2025-08-02 @dwertheimer
- Add override when inserting a template into a blank note but template has folder or newNoteTitle attribute
[2.0.0] - 2025-05-13 @dwertheimer
- Add to append/prepend frontmatter tag
- prepending a recurring meeting note will now accept a folder argument
- Use Templating 2.0, but...
- call Templating 2.0 commands via DataStore.invokePluginCommandByName() instead of directly calling them and importing all of np.Templating
- removed renderNoteTemplate() function which did not do anything
[1.2.3] - 2024-02-19 @dwertheimer
- Allow for empty template frontmatter
[1.2.2] - 2024-02-07 @dwertheimer
- Update MEETINGNOTE link handling to allow for existing meeting notes to be opened automatically
[1.2.1] - 2023-10-24 @dwertheimer
- hiding plugin from directory
[1.2.0] - 2023-09-25 (@dwertheimer)
- Adding some intelligence to try to pick up existing meeting notes so as to not create them again
[1.1.9] - 2023-03-03 (@dwertheimer)
- no meeting note code changes. just pulling in newest Templating code with fix for promptDate
[1.1.8] - 2023-03-03 (@dwertheimer)
- no code changes. just pulling in newest Templating code with fix for dashes in template
[1.1.7] - 2023-02-24 (@dwertheimer)
- add ability to output meeting note at cursor in note
[1.1.6] - 2022-12-14 (@dwertheimer)
- fix bug that Ed found in newMeetingNote asking you to select from all templates
[1.1.5] - 2022-12-13 (@jgclark)
- fix flow erorrs
[1.1.4] - 2022-12-12 (@EduardMe)
- under the hood changes to allow call by template's title as well as filename
[1.1.2] - 2022-12-06 (@jgclark)
- Further refined error reporting on bad templates to help people fix them
- improved jsdoc a little more
- use np.Templating::getAttributes instead of calling fm() directly
[1.1.1] - 2022-12-06 (@jgclark)
- Make newMeetingNoteFromEventID() better at handling bad template defintions
- improved JSDoc where I could
[1.1.0] - 2022-12-06 (@dwertheimer)
- Added newMeetingNoteFromEventID() to be called via xcallback
- Made newMeetingNote not hidden anymore (allow people to select event/note)
- Changed the order of selection (meeting first then template)
- Fixed a lot of Flow defs
[0.1.2] - 2022-08-16 (@dwertheiemr)
- Commented out DataStore.invokePluginCommandByName
- Other minor changes
[0.1.0] - 2022-08-09 (@codedungeon)
- Fixed linting errors
- Implemented
DataStore.invokePluginCommandByName, replacing intrinsically callingNPTemplatingcommand
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
Plugin Versioning Uses Semver
All NotePlan plugins follow semver versioning. For details, please refer to semver website
🕓 Event Helpers
What's changed in 🕓 Event Helpers?
See website README for more details, and how to configure.
[0.23.0] - 2025-08-22 @jgclark
New
- new command /insert week's events as list, which inserts this week's calendar events in the current note (for @scottc)
- new equivalent
insertWeeksEventsandlistWeeksEventsfunctions for use in automation (templating or x-callbacks)
Changed
- changed setting 'Processed tag name' to 'Processed indicator string' to clarify that you can use any string, not just hashtags. And added a note that if this string contains an emoji then it sometimes triggers a bug in NotePlan where you get some repeated characters at the end of the line.
Fixed
- regression on "/time blocks to calendar" (thanks, @WalterMusings)
- stopped timeblocks being falsely generated from
@done(...)strings under some ssettings
[0.22.2] - 2025-08-19 @jgclark
- add 'add computed final date' setting for '/process date offsets' command. (Previously it always added a final computed date to the relevant section heading. Now this can be turned off.)
[0.22.1] - 2025-01-03
- improve setting defaults and documentation.
[0.22.0] - 2024-09-06 @jgclark
- can now use
events()andmatchingEvents()calls from Templates running on Weekly notes and other non-daily Calendar notes (for @gdrn). - refactored documentation.
[0.21.3] - 2024-06-04 @jgclark
- fix bug when adding time blocks to calendar
- better handle template
<%- events() %>, which has no formatter string
[0.21.2] - 2024-02-13 @jgclark
- /shiftDates now shifts dates in brackets and multiples dates on a single line (to suit Project metadata).
[0.21.1] - 2024-02-06 @jgclark
New
- added 'Yes to all' as an option to the dialog when creating time blocks in "time blocks to calendar" and "process date offsets" commands
- extended 'shift dates' command to work on week dates (
>YYYY-Wnn) as well as day dates - extended 'process date offsets' and 'shift dates' commands to remove any blockIDs from lines before they change
[0.21.0] - 2023-09-29 @jgclark
New
- "/shift dates" and "/process date offsets" now unhook sync'd lines (blockIDs) from others before changing them, to preserve the other copies
- "/shift dates" now deals with checklists as well as tasks, and cancelled items too.
- "/shift dates" can now remove any 'processed tag name' (as set in the "/time blocks to calendar" command) from tasks or checklists. This is controlled by new setting "Remove any 'processed tag name' on tasks or checklists?"
- new "/Events: update plugin settings" command to allow updating settings on iOS/iPadOS devices
Changed
- "/time blocks to calendar" now more sensibly handles time blocks that contain a week reference (
>YYYY-Wnn) as well as day references - "/process date offsets" now will only offer to run "/time blocks to calendar" if there are any time blocks in the note
[0.20.3] - 2023-06-12 @jgclark
Changed
- added 'STOPMATCHING' as a possible placeholder for "/insert matching events". If present it will not process a given event further, so only the first match in the "Events match list" list will be used. (This does not stop remaining events in the day being matched.)
[0.20.2] - 2023-02-13 @jgclark
Added
- the date offset intervals (e.g.
{3d}can now use upper-case letters B,D,W,M,Q,Y as well as the existing lower-case letters - more helpful text in a dialog box
[0.20.1] - 2022-12-30 @jgclark
Added
- added support for time blocks in Checklists (available from NotePlan 3.8)
[0.20.0] - 2022-12-08 @dwertheimer, @jgclark
Added
- added 'MEETINGNOTE' link as a format option, which adds a button to create a meeting note to events in event listings. There's also a new setting 'Meeting Note Template title' which you can use to set which template to pick if you have several; if it isn't set then a list will be presented. (Note: this requires at least v1.1.2 of the separate Meeting Notes plugin.)
[0.19.4] - 2022-12-04
Added
- can now send
calendarsparameter to the commands via Templates. E.g.calendars:"list,of,calendar,names"(for @joepindell)
[0.19.3] - 2022-11-30
Changed
- "/insert events" commands now de-duplicates 'ATTENDEES' and 'ATTENDEENAMES' before writing to notes (for @CDP54321)
- "/process date offsets" command now ignores tasks which have been completed.
[0.19.2] - 2022-10-21
Added
- new setting "Include time blocks from completed tasks?" for the "/time blocks to calendar" command.
[0.19.1] - 2022-10-05
Added
- new setting "Set any completed tasks to not complete?" for the "/shift dates" command.
[0.19.0] - 2022-09-27
Added
- new setting "Remove @done dates?" for the "/shift dates" command.
- "/shift dates" command now also works for weekly dates (e.g.
2022-W34), leaving the date written as a weekly date.
[0.18.0] - 2022-08-31
Added
- new
includeAllDayEventsparameter for theevents()andmatchingEvents()template functions.
[0.17.1] - 2022-08-31
Changed
- the format of
*|DATE|*can now be overridden with the 'Shared Settings > Locale' setting.
[0.17.0] - 2022-08-10
Added
- the location of an event is now available in the output of "/insert day's event as list" and "/insert matching events" commands. It's formatting code is
*|LOCATION|*.
Changed
- the 'Add event ID?' option for "/time blocks to calendar" command now inserts one of the nicely-formatted event links rather than the underlying eventID. The setting has been renamed 'Add event link?' to reflect this.
[0.16.6] - 2022-07-22
Changed
- updated to newer logging framework. No functional changes.
[0.16.5] - 2022-06-17
Fixed
- work around a bug in NP's 'Timeblock text must contain string' setting (tracked down with help by @Stuw)
- code tidy up
[0.16.4] - 2022-06-12
Changed
- now uses NP's 'Timeblock text must contain string' setting (if set) when detecting whether a line has a valid Time block in it.
- improved user messaging when running '/shift dates'
[0.16.3] - 2022-05-26
New
- in /process date offsets, if a controlling date can't be found, then it will now ask the user for one instead
Changed
- removed some whitespace stripping which was useful to me, but not to others.
[0.16.2] - 2022-05-25
Added
*|ATTENDEENAMES|*placeholder, which gives either name or email address of event attendees, but no other details
Fixed
- issue with
*|URL|*placeholder
[0.16.1] - 2022-05-20
Fixed
- bug in calculation of offsets with 'b'usiness days
[0.16.0] - 2022-05-13
Added
- new /shift dates command that takes dates in the selected lines and shifts them forwards or backwards by a given date interval. (It doesn't change dates in `@done(...) mentions, or that are in brackets.)
[0.15.1] - 2022-05-06
Fixed
- typo in default configuration of '' setting
- restored 'template' parameter option
[0.15.0] - 2022-05-03
Added
- Added new 'Events List display format' and 'Events List display format for all-day events' settings to allow user to customise the event lists when run as /commands. This uses the same format as can already be passed as a parameter in the
events()template functions. Defaults are given. - Added support for including the date of an event in the output for calendar events. You can include it in format strings as placeholder
*|DATE|*. - Added more flexibility in the formatting of event lists. So now instead of including (for example)
*|ATTENDEES|*you can now include other text (including line breaks) within the placeholder, for example*|\nwith ATTENDEES|*. If the ATTENDEES is not empty, then it will output the list after a newline and the text 'with '. Here is a fuller example to use in a Template.
<%- events( {format:"### (*|CAL, |**|START|*) *|EVENTLINK|**|\nwith ATTENDEES|**|\nNOTES|**|\nURL|*", allday_format:"- (*|CAL|*) *|EVENTLINK|**|\nNOTES|**|\nURL|*", includeHeadings:true} ) %>- In date offsets, added ability to specify offset dates that work relative to each subsequent line [requested by @george65]
Changed
- Under-the-hood change to register its functions ready for NP 3.5.2. (Means minimum version that it will run with is v3.5.2.)
[0.14.1] - 2022-04-26
Changed
- Improved messaging if a Templating user tries to use this Plugin's functions, without the plugin being installed.
- Removed the version of /insert day's events that simply wrote to the Plugin Console for testing
Fixed
- Fixed events() in a template returning events for the previous day (thanks @dwertheimer for PR)
[0.14.0] - 2022-04-23
Added
- Added support for including list of Attendees in output for calendar events. You can include it in format strings as
*|ATTENDEES|*. This produces a comma-separated list of names or emails (where name isn't given). - Added new
daysToCoverparameter that allows multiple days to be output for the/insert day's events as listand/insert matching eventscommands (request #251 by @Stuw). For example: includedaysToCover: 3to the parameter string to see events for the selected day, plus the following 2. - Added new optional setting 'Matching Events heading', which sets the heading to put before list of matching events when using the
/insert matching eventscommand orlistMatchingEvents()template call
[0.13.0] - 2022-04-20
Added
- Added a new 'Sort order' setting for event lists. It now defaults to 'time' ordering (by start time), unless the 'calendar' option is chosen (which then orders by calendar name then start time). (for @bartmroz)
- Added support for 'Calendar Item Link' in calendar entries. If you add this Markdown link to a note, NotePlan will link the event with the note and show the note in the dropdown when you click on the note icon of the event in the sidebar. You can in...
🖥️ Window Tools
What's changed in 🖥️ Window Tools?
Please also see the Plugin README.
[1.3.0] - 2025-08-15
- updated open note in new split and open note in new window to support Teamspace notes
- updated open note in new split and open note in new window to use the newly-available more decorated note chooser
- worked around open window set not showing previously saved window sets, because of change to what macOS reports
[1.2.1] - 2025-02-01
- open window set command is now smarter with plugin windows:
- won't close an open plugin window if it is part of the set it is about to open
- will run the plugin command even if the correct capitalization isn't used.
[1.2.0] - 2024-03-15
- new swap splits command that swaps the currently-selected split to main, or if no split is currently selected, asks the user which to swap (thanks to suggestion by @antony-skylar)
- fix to main Editor window not being relocated correctly at times (thanks to report by @dwertheimer)
- update automatic trigger name on special Window Sets definition note to make it consistent with others. (If you don't know what this is, you don't need to worry about it!)
[1.1.2] - 2024-03-12
- when it writes example Window Sets it now uses the local machine name, to avoid it appearing that there are no saved Window Sets, and it now automatically syncs it to the pref as well.
- bug fix in /delete window set.
[1.1.1] - 2024-03-12
- improved settings migration from previous 'WindowSets' plugin
- improved documentation on where the Window Set definitions live
[1.1.0] - 2024-02-28
- added x-callbacks for /open window set, /open note in new split and /open note in new window commands
- fixed bugs in test command "/write window set pref to note"
- moved some code around
[1.0.0] - 2024-01-02
Renamed plugin to '🖥️ Window Tools' (at v1.0.0) as it now covers more than just Window Sets:
- new command /move split to main (alias: /mstm) that moves the current split pane to be the first one in the main window
- new command /constrain main window (alias: /cmw) moves the main window to make sure its fully in the screen area, shrinking it if it needs to.
Also the following window-management commands have moved from Note Helpers:
- open note in new split: (alias: /onns) opens a user-selected note in a new split of the main window
- open note in new window (alias: /onnw) opens a user-selected note in a new window
- open current in new split: (alias: /ocns) opens the current note again in a new split of the main window
- open current in new window: (alias: /ocnw) opens the current note again in a new floating window
[0.4.0] - 2023-10-20
This is the first public release. It requires NotePlan v3.9.8.
- wrote most documentation
- now checks that windows live within the visible screen area, and moves them if not, shrinking if necessary
- smarter mechanism for guessing plugin (HTML) windows details by developer convention
- now knows which Mac a WindowSet was defined on, and now will only offer to open WindowSets from that same Mac. This helps users with multiple machines with different sized monitors, including me.
- add update trigger a different way, and fixed it dealing with stale data
- fix problem where regular notes' filenames weren't being saved
[0.3.0] - 2023-09-28 (unreleased; following change of design)
- Window Set definitions now live in a hidden preference, but can be automatically sync'd to/from a user's note to see what's going on. See README for details.
- added a lookup list (held in src/WSHelpers.js::pluginWindowsAndCommands) to automatically identify plugin (HTML) windows where known.
[0.2.0] - 2023-09-10 (unfinished; unreleased -- decided to change design)
- Window Set definitions now live in notes. See README for details. Can now have any number of defined window sets.
- /Save window set command. Now includes window size and position for floating windows. (Incomplete: doesn't yet work for updating existing Window Set definition.)
[0.1.0] - 2023-04-04
- First basic working version. Note: only catering for 5 window sets, due to limitiation of configuration system.