TaskNotes is a mature Obsidian plugin that implements a full task-management system on top of Markdown notes. Each task is a note with YAML frontmatter; the plugin provides natural-language creation, recurring tasks (RRULE), dependencies, projects/contexts/tags, time tracking, Pomodoro, reminders, and custom user fields. It registers custom Bases views — task list, Kanban, calendar, and mini-calendar — and extends the editor with CodeMirror widgets and reading-mode overlays for task links and inline task cards. Architecturally, the plugin is an event-driven TypeScript codebase with a clear service layer: TaskService/TaskUpdateService and VaultMutationService handle file mutations; FieldMapper abstracts frontmatter-field naming; FilterService and TaskManager index and query tasks from the Obsidian metadata cache; OAuthService plus GoogleCalendarService/MicrosoftCalendarService/ICSSubscriptionService manage calendar sync; NaturalLanguageParser converts free text into structured task data. It also exposes an HTTP API built with OpenAPI decorators, an MCP server, webhooks, and CLI commands. All external integrations share the same core services, and many modules use dependency-injection or pure planning functions to stay testable. External dependencies include Obsidian's internal APIs, FullCalendar, chrono-node, rrule, ical.js, YAML, @modelcontextprotocol/sdk, @tasknotes/model, and tasknotes-nlp-core. The repository is heavily issue-driven: there are hundreds of regression tests, a Playwright e2e suite that launches real Obsidian, and a conformance runner pinned to a spec submodule. Maintenance is active, but technical drift is medium: several regression tests are skipped/fixme, some tests assert source/CSS text rather than behavior, there are known version mismatches with @tasknotes/model, and the plugin relies on Obsidian's fast-moving Bases internals.