All My Tasks
Open source · MIT · Working title

All your calendars and tasks, in one calm place.

All My Tasks is a cross-platform desktop app that gathers calendars and task lists from many providers into a single view. Built with .NET and Avalonia for Windows, macOS and Linux.

View on GitHub Build from source

Status: early. Providers are read-only so far: iCalendar feeds, CalDAV calendars and Todoist tasks.

Illustration of the Upcoming view with made-up sample entries. Each calendar or list gets one colour.

One view over everything you already use

You keep your calendars and task lists where they are. All My Tasks reads them, stores a local copy and lays them out side by side.

Day, week, month and upcoming

Four calendar views with filter toggles, plus an All tasks view with filtering, sorting and grouping. Click any entry or task to open its details and subtasks.

Many providers, one model

iCalendar feeds, CalDAV and Todoist work today. Google and Microsoft providers are designed and planned. Events and tasks stay separate types, so task-only services fit naturally.

Works offline

Everything is synced into a local SQLite store. Restart the app without a connection and your data is still there. A sync engine handles scheduling, backoff and per-source status.

Credentials stay in your keystore

Tokens and passwords go to Windows Credential Manager, the macOS Keychain or the Linux Secret Service. Without a keyring on Linux, an opt-in PIN-protected encrypted file is used, never plaintext.

Quiet in the system tray

Closing the window hides it to the tray so syncing carries on. Start with only the tray icon using --tray, or turn the behaviour off in Settings.

Light, dark and cross-platform

One Avalonia codebase runs on Windows, macOS and Linux and follows the operating system's light or dark theme.

Providers

All providers are read-only in this first stage. Write support starts with completing tasks.

iCalendar feeds Paste a public .ics URL. Conditional fetching and full recurrence expansion. Available
CalDAV Calendar events with incremental sync. Checked by hand against Radicale; Nextcloud and hosted services still need verifying. Available
Todoist Tasks, using a personal API token. Available
Google Calendar and Tasks Sign in with OAuth. Designs written, tracked in issues #28 and #26. Planned
Outlook calendar and Microsoft To Do Microsoft Graph for personal and work accounts, one shared sign-in. Tracked in issues #32 and #24. Planned

How it's built

Logic lives in a UI-free core with heavy tests. The Avalonia layer only draws what the core has already worked out.

AllMyTasksThe Avalonia desktop app: views and view models.
AllMyTasks.CoreTasks, events, providers, sync, and the day, week, month and upcoming layout maths.
AllMyTasks.Providers.ICaliCalendar feed and CalDAV providers.
AllMyTasks.Providers.TodoistTodoist task provider.
AllMyTasks.Storage.SqliteLocal store, migrations, settings.
AllMyTasks.SecretsPer-OS secret backends.
tests/xUnit tests for Core and each provider.

Everything comes from a provider

There are no local-only items. The app is a lens over the services you already use.

Time zones and recurrence get real tests

All-day and timed values are distinct types, one shared expander built on Ical.Net, and fixtures cover DST days, overlaps and multi-day events.

Calm by default

Each source gets one colour. Red is reserved for what needs attention: overdue items and sync problems.

Roadmap

Each milestone ships on its own with tests green and the design docs kept current.

Done

  • Domain model and provider abstraction
  • Calendar views and All tasks over sample data
  • Local SQLite storage and per-OS secret stores
  • Sync engine with scheduling, backoff and source status
  • iCalendar feed provider with recurrence expansion
  • Read-only CalDAV, Todoist and a system tray icon

Later, not committed

  • Google and Microsoft providers
  • VTODO tasks over CalDAV
  • Write support, starting with completing tasks
  • Reminders, notifications and a compact upcoming widget
  • Saved filters and global search
  • Database encryption

Read the full roadmap and design docs

Get started

There are no packaged releases to download yet, so build it from source. You need the .NET 10 SDK.

git clone https://github.com/jkruza/allmytasks
cd allmytasks
dotnet build AllMyTasks.slnx
dotnet test --solution AllMyTasks.slnx
dotnet run --project src/AllMyTasks

On Linux the tray icon needs a StatusNotifier or AppIndicator host. KDE, Xfce, Cinnamon and MATE include one; GNOME needs the AppIndicator extension.

Contributions are welcome

Read the contributing guide first, then open an issue or a pull request. Security reports follow the policy in SECURITY.md. Released under the MIT licence.

Contributing guide Open issues