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.
Status: early. Providers are read-only so far: iCalendar feeds, CalDAV calendars and Todoist tasks.
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.
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
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.