GTD Tasks

approved

by unpreditable

A dedicated panel to organize tasks across the vault using the Getting Things Done methodology (Today, This Week, Someday…) - This plugin has not been manually reviewed by Obsidian staff.

6 stars832 downloadsUpdated 20d agoGPL-3.0

GTD Tasks

Your tasks are scattered across hundreds of notes. This Obsidian plugin gathers them into one sidebar panel, sorted by when you'll actually do them: Today, This Week, Next Week, This Month, Someday (the Getting Things Done time horizons).

Your notes stay the source of truth. A bucket is just a tag on the task line, like #gtd/today.

Have the Tasks plugin? The two work together. This panel reads the fields Tasks writes on your task lines and puts them to use.

Downloads Obsidian Report a bug · Request a feature · Ask a question

Demo


Features

  • Time-horizon buckets — Today ⚡, This Week 📌, Next Week 🔭, This Month 📅, Someday / Maybe 💭. Rename them, swap the emoji, reorder them, or write your own date rules.
  • To Review inbox 📥 — every task without a bucket lands here, so nothing slips through.
  • Three ways to move a task — quick-move buttons on the row, drag-and-drop between buckets, or right-click.
  • Subtask-aware — indented tasks track with their parent, with a count badge and a prompt to move them along.
  • Overdue and misfiled flagsoverdue once a due date has passed, misfiled when a task sits in a bucket that will make you miss it.
  • Reads Tasks plugin fields — due dates, priority, recurrence and the rest show up as badges and on hover.
  • Celebration animations — confetti, a pixel creature, both, or nothing.
  • 13 languages, matching your Obsidian UI language.

Also: search, scoping to folders or files, Dataview-friendly inline fields, per-bucket status bar counts, and a compact view. See Configuration.


Works with the Tasks plugin

Run both, since they solve different problems.

The Tasks plugin adds structure to a task: a due date, a priority, a repeat rule. It also searches your vault and lists the matching tasks inside a note.

This plugin is for one view you keep open all day. Drag tasks between buckets, or reorder them inside one, and your plan for the day changes in seconds.

How they work together

The plugin assigns each task to a bucket based on its 📅 due date or scheduled date, depending on the Auto-assignment date setting. Defaults to scheduled date first, with fallback to due date.

Pin a task (via the right-click menu, a quick-move button, or dragging it to another bucket) to keep it in that bucket and ignore the dates. Unpin (via the right-click menu) to let automatic assignment take over again.

Checking a task off in the panel does what checking it off in the editor does, including the Tasks plugin's recurrence and completion-date setting.

As of v0.2.0, panel completions don't write a date. Install Tasks if you want one.


Default Buckets

BucketEmojiDate rule
To Review📥Tasks with no date and no pin (system bucket)
TodayToday or earlier
This Week📌Tomorrow → end of this week
Next Week🔭All of next week
This Month📅Tomorrow → end of this calendar month
Someday / Maybe💭Everything the buckets above didn't claim

Weeks run Monday through Sunday by default. Set First day of the week in settings if yours starts on another day — it moves the This Week and Next Week boundaries and leaves the other rules alone.

Ranges overlap on purpose — This Month contains This Week. The first bucket from the top whose rule matches wins.


Installation

Open Settings → Community plugins → Browse, search for GTD Tasks, then click Install and Enable.

Or add via Obsidian community plugin page.

Beta releases via BRAT
  1. Install the <a href=https://github.com/TfTHacker/obsidian42-brat>BRAT community
  2. In BRAT settings, click Add Beta Plugin and enter: Unpreditable/GettingThingsDone
  3. Enable GTD Tasks in Community plugins

Usage

Open the panel

Click the checklist icon in the left ribbon, or run Open GTD Panel from the Command Palette (Ctrl/Cmd + P).

Move a task

Three ways to move a task to a different bucket:

MethodHow
Quick-move buttonsClick the small bucket buttons on the right side of the task row
Drag-and-dropDrag a task row to any bucket, including collapsed ones
Context menuRight-click a task row → Move to…

The plugin writes the assignment back to the source markdown file immediately. If the task has subtasks that each have their own bucket assigned, you'll be asked whether to move them along with it.

Pin a task

Moving a task by hand pins it to that bucket, so its dates no longer move it.

  • Right-click → Pin to Today to pin a task where it already sits.
  • Right-click → Unpin to let the task follow its date again.

Search

Type in the search box at the top of the panel to filter down to matching tasks. The status line below it shows how many tasks are currently visible; click it (or the × in the search box) to clear the search.


Configuration

Annotation style

Controls how bucket assignments are stored on the task line:

ModeExample
Inline tag (default)- [ ] Buy milk #gtd/today
Inline field- [ ] Buy milk [gtd:: today]
You can migrate all existing assignments between modes from the settings tab.

Tag / field name

The prefix used in both storage modes. Default: gtd. Changing this also changes the tag/field name written to your files.

Files to scan

Choose which files the plugin indexes.

  • Entire vault, except… scans every *.md file except the ones you list.
  • Selected paths only scans only the folders and files you list.

Add an entry with + Add folder/+ Exclude folder or + Add file/+ Exclude file.

Show completed tasks until midnight

Keeps a checked-off task in the panel, struck through, until midnight or until you reload Obsidian, whichever comes first. Clear them sooner with the broom icon in the panel header. Turn the setting off and each task disappears the moment you check it.

Repeating tasks are the exception. Checking one off hides it right away, because its next occurrence is already in the list.

Flag overdue and misfiled tasks

When enabled, two badges call out tasks that need attention:

  • overdue — the task's 📅 due date has passed.
  • misfiled — a bucket higher up is a better placement, and leaving this task as is risks missing it. A task due today but sitting in This Week belongs in Today.

Neither badge appears on a completed task. Only a 📅 due date makes a task overdue. A scheduled date that has passed doesn't. Both can apply at once. The row shows the overdue badge, the more urgent of the two, and hovering the task spells out both reasons along with the bucket the misfiled badge points at.

Compact view

Reduces padding on bucket headers and task rows for a denser layout.

Celebration animations

Choose what plays when you check off a task:

SettingEffect
Confetti (default)Confetti burst only
CreaturePixel creature only
AllConfetti burst + pixel creature
OffNo animation

Auto-assignment date

Controls which date drives bucket assignment and ordering within a bucket.

OptionUses
Ignore datesNothing. Every task waits in To Review until you file it
Due📅 only. A task without one stays in To Review
Due, else scheduled📅, falling back to
Scheduled, else due, falling back to 📅. The default
Scheduled only. A task without one stays in To Review
Earliest of the twoWhichever comes first

Pinned tasks ignore this setting.

Tasks plugin fields

Control how the Tasks plugin fields show up in the panel:

  • Show priority (default all) — which priority levels get an emoji badge (🔺⏫🔼🔽⏬) on the task row.
  • Show recurrence badge (default on) — mark repeating tasks with 🔁 on the task row.
  • Show Tasks fields in popover (default on) — list due date, priority, recurrence and the other Tasks fields when hovering a task.

Status bar

Each bucket can optionally show its task count in Obsidian's status bar. Toggle per bucket in the bucket list at the bottom of settings.


Bucket Date Rules

Each bucket can have an optional date range rule that files tasks by whichever date Auto-assignment date selects:

RuleCovers
NoneNothing. The bucket collects pinned tasks only
TodayToday or earlier
This weekTomorrow through end of this week
Next weekAll of next week
This monthTomorrow through end of this calendar month
Next monthFirst through last day of next calendar month
Within N daysThe next N days
Within day rangeBetween day M and day N from today
Beyond N daysMore than N days from today
EverythingEvery date the buckets above it didn't claim

Note: Beyond N days is not a catch-all. Set it to 180 and a task 90 days out matches nothing.

Everything only makes sense on the last bucket, since the first matching rule from the top wins.

A task lands in To Review when it has no date and no pin, or when its date matches no rule at all.


To Review Bucket

The To Review bucket is a permanent system bucket that always appears first in the panel. It collects every task that has no manual assignment and no matching due date rule. Use it as a GTD-style inbox: process tasks from here by moving them into the appropriate time-horizon bucket.


Subtasks

A task indented under another task in your markdown file is tracked as its subtask. Parent rows show an active-subtask count badge, and a subtask that's been moved to a different bucket than its parent gets a small indicator pointing back to it. Moving a parent that has subtasks with their own bucket assignments will ask whether to move those subtasks along with it, or leave them where they are.


Localization

The panel and settings UI are available in German, Spanish, Estonian, French, Japanese, Korean, Lithuanian, Latvian, Portuguese, Russian, Ukrainian, and Chinese, in addition to English, matching Obsidian's UI language automatically. If you change Obsidian's language, default bucket names update to match on next load, with a one-time notice in the panel.


Network Use

This plugin opens github.com in your default browser when you click Share feedback & ideas in settings, after you confirm a dialog. No background connections, and your data never leaves your machine.


License

GPL-3.0 © 2026 Vitaly Ditman

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.