← All Addons

Agenda Task

widget

Agenda Task

A right-pane widget for a note's start/due dates, duration, recurrence, and an Actions section with Complete Task and a row of reschedule buttons. Split out from agenda@beatlink (which still ships Overview and Note Actions) so Task can be installed, updated, and configured independently — the two addons no longer share any code or settings.

Dates and Duration and Actions are collapsible disclosures, open by default. Recurrence is a single button reading the current rule back in plain English ("Every 2 weeks on Monday", or "Does not repeat"); clicking it opens the recurrence picker in a popover. The pane scrolls vertically when its sections outgrow the window.

How it works

The widget appears in the right pane on any note whose type is marked actionable (#agendaTaskWidget inheritable label, set by the item's template). It edits four kinds of note labels — start/due datetime, duration, recurrence — via configurable label names, plus fires agenda:tasksChanged after any change so agenda@beatlink's Overview widget (if installed) re-files the note.

Completing a task with a recurrence rolls its start date forward instead of leaving it done; the reschedule buttons offer a configurable set of quick date jumps (fixed days-from-now or a recurrence rule evaluated from now). The stock set is Today, Tomorrow, Next Weekend (FREQ=WEEKLY;BYDAY=SA) and End of Month (FREQ=MONTHLY;BYMONTHDAY=-1).

Configuration

Task owns its own settings note (taskSchema.json/taskDefaults.json/taskConfig.json) tagged #agendaTaskConfig — the label names it reads/writes (start/due date/time, duration, recurrence) and the reschedule buttons' option registry. Its own Task Settings page (TAM's "Addon Settings" button) is the only place that edits it.

Task used to live inside agenda@beatlink (task/ folder), sharing its #agendaConfig settings note. The two are now fully decoupled in both directions: neither ships the other's code, neither reads the other's settings note, and neither declares the other as a TAM dependency. Either one runs on its own.

What they still share is a vocabulary, not a wire:

Convention Who writes it Who reads it
start/due datetime + recurrence label names this addon agenda@beatlink and agenda-myday@beatlink, each from their own copy of the setting
durationDisplay / recurrenceDisplay this addon agenda@beatlink's overview columns, if installed
agenda:tasksChanged (api.triggerEvent) this addon, after any change agenda@beatlink's Overview, if installed
#agendaTaskWidget (inheritable, from the item's template) template-picker@beatlink's templates this addon, to decide whether the pane shows

The cost of that independence: renaming a label name here means renaming it in each other installed addon that reads it. Nothing detects the drift for you.

Upgrading from 2.x

Version 3.0.0 removes the one-time migration that copied label names and Reschedule Options out of agenda@beatlink's #agendaConfig note. Any install that ran a 2.x version at least once has already migrated and is unaffected. Installing 3.0.0 fresh onto a pre-4.0.0 agenda gets the default label names instead of the old shared ones — re-enter them on the Task Settings page if you had customized them.