Gabriel Ribeiro452 downloadsA Today's Timeline window for TaskNotes — stats, date-grouped tasks, optional calendar events (ICS / Google / Microsoft), and quick task entry, for a sidebar pane or embedded in a note.
Companion plugin for TaskNotes that shows an agenda-style Today's Timeline: incomplete tasks grouped by day, optional calendar events, quick task creation, and filters — in a sidebar pane or embedded in a note.
It does not own the task model. Reads and writes go through the TaskNotes JavaScript Runtime API (api.tasks.list, create, complete, uncomplete, and related UI helpers). That keeps behavior aligned with TaskNotes settings: templates, file naming, recurrence, time tracking, custom fields, excluded folders, and tag or property task identification.
minAppVersion in manifest.json)tasks.read / tasks.writeIf TaskNotes is missing or the API is incompatible, the timeline shows a clear error instead of scanning the vault by tag.
status:todo, tag:work, and due:today (also due:overdue, due:tomorrow, or due:YYYY-MM-DD)api.tasks.create; the chevron opens the TaskNotes creation modal.base file + view (query.tasks)tasknotes-timeline-wrapper code block with per-block options```tasknotes-timeline-wrapper
title: This Week
days: 7
events: true
```
With a Bases filter:
```tasknotes-timeline-wrapper
title: Work timeline
base: TaskNotes/Views/tasks-default.base
view: Work Context
```
| Option | Meaning |
|---|---|
title |
Header under the date line (default: Today's Timeline) |
days |
Sets both task and event lookahead (default from settings; 0 = unlimited) |
taskDays |
Task lookahead override |
eventDays |
Event lookahead override |
events |
true / false — show calendar events in this block |
base |
Path to a TaskNotes .base file |
view |
View name inside that base (filters combined with file-level filters) |
Search filters can be combined with each other and with regular text, for example report status:todo tag:work due:today. status:todo means any incomplete task; other status values match the task's configured status. Tags match exactly, ignoring case and an optional leading #.
api.tasks.list (non-archived). No local “must have #task” filter, so property-based identification works.api.tasks.create with your TaskNotes defaults (folder, templates, identification).api.tasks.complete / uncomplete. Undo after completion calls uncomplete with the previous status.api.ui.taskMenu when available.api.tasks.update or the TaskNotes field-specific setters.completedDate; reopening calls api.tasks.uncomplete.where, then api.query.tasks.Calendar feeds are loaded through the adapter (listCalendarEvents), which feature-detects TaskNotes ICS / Google / Microsoft services (there is no public Runtime calendar namespace yet). The plugin does not touch cacheManager, modal DOM selectors, or document.execCommand.
Settings → Community plugins → Browse → TaskNotes Timeline Wrapper → Install → Enable.
main.js, manifest.json, and styles.css from the latest release.<vault>/.obsidian/plugins/tasknotes-timeline-wrapper/.Add Grmglib/tasknotes-timeline-wrapper in BRAT.
npm install
npm test
npm run build # production → main.js
npm run dev # development bundle with inline sourcemap
| Module | Role |
|---|---|
src/main.js |
Plugin lifecycle, TaskNotes integration, caches, and actions |
src/agenda-controller.js |
Timeline state, rendering flow, search debounce, and interactions |
src/agenda-model.js |
Pure search, sorting, focus, collapse, quick-edit, and render-state helpers |
src/agenda-renderers.js |
Task and calendar-event rows |
src/agenda-settings.js |
Plugin settings tab |
src/agenda-event-modal.js |
Calendar event details modal |
src/tasknotes-adapter.js |
Runtime API gate, tasks/UI/lifecycle, calendar wrappers |
src/task-mapper.js |
TaskInfo → timeline row shape |
src/bases-filters.js |
Bases → runtime where |
src/calendar-helpers.js |
Day bucketing, recurring caps, sort |
src/calendar-providers.js |
Calendar id / label / color helpers |
src/block-options.js |
Code-block options |
src/frontmatter.js |
Tag/project helpers (mapping / filters) |
src/constants.js / src/utils.js |
Defaults and small utilities |