Open-source project
alainm23/planify avatar
alainm23/planify

Planify: a GNOME task manager with Todoist, Nextcloud and CalDAV sync

Task manager with Todoist, Nextcloud & CalDAV support designed for GNOME

5,718 stars341 forksValaGPL-3.0

At a glance

What is it?
Planify is a Vala and GTK4 task manager for Linux desktops that keeps a local SQLite store and syncs with Todoist, Nextcloud or any CalDAV server. The design choices are clear, and so are the limits.
Who is it for?
Adopt Planify if you run a GNOME or GTK4 desktop, want your tasks in a local SQLite database, and sync to Todoist, Nextcloud or a CalDAV server you control. Do not adopt it if you need a Windows or macOS client, or if you expect the README to tell you how Todoist conflicts are resolved; it does not.
Can I use it commercially?
Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository last received commits 9 days ago.
What is it written in?
Mainly Vala, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 29, 2026, and from our analysis. They are not legal advice.

Editorial analysis

The problem Planify solves for Linux desktop users

Most task managers assume a browser or a phone. A Linux desktop user who wants a native window, keyboard-driven input and a local database has fewer options than the platform deserves, and the ones that exist often push everything through a vendor's server. Planify targets that gap. It is a GTK4 and libadwaita application written in Vala, packaged for GNOME, and its README describes the core promise as a task manager you can use offline and sync when you are back online.

The intended user is someone who already has a task account somewhere else. The README lists Todoist, Nextcloud and CalDAV as sync targets, and the repository topics add gtd, todoist-api and caldav. That combination matters: Planify is not trying to be your only task service. It is a client that speaks to services you may already pay for or host yourself, which is why the offline mode is described as a first-class feature rather than a fallback.

The README carries a note that Planify is not created by, affiliated with, or supported by Doist. That sentence tells you how the Todoist integration works in practice: it is an independent client against a public API, and it can break when that API changes.

How Planify stores and syncs your tasks

The repository layout is the clearest statement of the architecture. There is a core/ directory, a src/ directory, a cli/ directory, a quick-add/ directory and a search-provider/ directory, with an ARCHITECTURE.md at the top level. The README points contributors at that file before they write code. What the visible pieces imply is a layered design: a core library that owns the task model and the sync logic, a GTK4 application on top of it, and separate small binaries for command line use, quick capture and desktop search integration.

SQLite is the local store. The build dependency table lists sqlite3 at version 3.45.1 or later, and the README's offline mode claim only makes sense if writes land in a local database first. The same table lists libecal-2.0 and libedataserver-1.2, which are the Evolution Data Server calendar libraries, and libsoup-3.0 for HTTP. That is the shape of the sync path: CalDAV and Nextcloud traffic goes through the Evolution Data Server stack, Todoist traffic goes over libsoup, and both write into the same local model.

Credentials are handled through libsecret, which is listed as a build dependency. The README does not describe the token storage model, so anyone evaluating Planify for a shared workstation should read the source rather than assume.

The README lists recurring tasks, labels and filters, attachments, multiple reminders per task, a calendar view and analytics. Those are application features, not sync features, and the README does not explain how a recurring task is represented when it is pushed to a CalDAV server versus a Todoist account. That is the kind of detail that decides whether a client is usable across two providers at once.

Installing Planify from Flathub or building it with meson

The README gives two installation paths. The official distribution is a Flatpak on Flathub, under the application ID io.github.alainm23.planify. For most users that is the whole story, and it avoids the dependency list entirely.

After installation the application appears in the desktop menu as Planify. Launch it, and the first screen is an empty task list with an option to add an account. Adding a Todoist account or a Nextcloud or CalDAV server is what turns the empty list into something useful.

Building from source is a meson and ninja job. The README's build instructions assume the dependencies are already present, so install them first. On Fedora or RHEL the README gives this command:

bash
sudo dnf install vala meson ninja-build gtk4-devel libadwaita-devel libgee-devel libsoup3-devel libportal-devel libportal-gtk4-devel evolution-devel libspelling-devel gtksourceview5-devel libicu-devel

On Ubuntu or Debian the equivalent is:

bash
sudo apt install valac meson ninja-build libgtk-4-dev libadwaita-1-dev libgee-0.8-dev libjson-glib-dev libecal2.0-dev libsoup-3.0-dev libportal-dev libportal-gtk4-dev libspelling-1-dev libgtksourceview-5-dev libicu-dev

With the dependencies in place, the README's build sequence is:

bash
git clone https://github.com/alainm23/planify.git
cd planify
meson build --prefix=/usr
cd build
ninja
sudo ninja install
io.github.alainm23.planify

The last line runs the installed binary. Note the prefix: installing to /usr means the binary and its data files land in system directories, and uninstalling later is not covered by the README. A prefix under your home directory is the safer choice if you are only trying the build. The README also documents a GNOME Builder workflow: install Builder, clone the repository, open the project and press Run. For anyone who just wants to test a patch, that path skips the manual dependency installation.

The README lists minimum requirements of a Linux distribution with GTK4 support, 2GB of RAM and 500MB of disk space, and a build dependency table with minimum versions for meson, valac, gio, glib, gtk4, libadwaita, libecal, libedataserver and the rest. There is no Windows or macOS build described anywhere in the README.

Where Planify is the wrong tool

Planify is a Linux application. The README's system requirements begin with a Linux distribution with GTK4 support, the installation section offers a Flatpak and a meson build, and nothing in the repository describes a Windows or macOS client. A team that needs the same task manager on Windows laptops and MacBooks cannot standardize on Planify for the desktop, whatever the sync backend supports.

The mobile story is equally thin. There is no Android or iOS application described in the README. If you sync through Nextcloud or CalDAV you can reach the same tasks from a phone using another client, but that is a different application with its own quirks, and the README does not claim otherwise.

The second limitation is scope. Planify is a client, not a service. It has no server component, so if you do not already have a Todoist account, a Nextcloud instance or a CalDAV server, Planify gives you a local task list and nothing else. The README does not describe any hosted sync offering from the project.

The third is the integration risk that comes with being an independent client. The README's own note about Doist makes it explicit: Planify is not affiliated with or supported by the company behind Todoist. When a third-party API changes, the fix has to come from this project. The release history shows a steady cadence of patch releases, but the README does not document how sync conflicts are resolved when the same task is edited in two places, and that silence is a real gap for anyone running two clients against one account.

Planify compared with Evolution and Thunderbird

The obvious alternative for a Linux user who wants CalDAV tasks is Evolution, or Thunderbird with a calendar add-on. Both use the same underlying stack that Planify depends on: libecal and libedataserver, the Evolution Data Server libraries. The difference is what sits on top.

Evolution is a full personal information manager. It handles mail, contacts, calendars and tasks in one window, and its task list is a panel inside that larger application. If you already live in Evolution for mail, adding tasks there costs nothing extra. If you do not, you are installing a mail client to get a to-do list.

Planify inverts that. The task list is the application, and the calendar view is a feature inside it. The README describes a GTK4 and libadwaita interface with drag and drop, sections, labels, filters and a quick search, which is a narrower and more focused surface than Evolution's. It also adds Todoist as a sync target, which Evolution does not have, and it ships a separate CLI and a desktop search provider, both visible in the repository layout.

The trade-off is coverage. Evolution has years of CalDAV edge cases behind it and a mail client attached. Planify is the newer, smaller application, and for a CalDAV-only user the practical question is whether its CalDAV handling is as complete. The README does not answer that, and the ARCHITECTURE.md is the place to look before migrating a large task database.

Licence, maintenance and the cost of upgrading

Planify is licensed under GPL-3.0, and the README carries the standard GPL v3 badge. For individual desktop use the licence is not a practical constraint. For anyone embedding Planify's code in another product, the copyleft terms apply to the combined work, and that is a question for a lawyer rather than a review. The README also links a stopthemingmy.app badge, which is a request that distributions not restyle the application; it is a social convention, not a licence term.

The repository is not archived. The last push was on 2026-09-21, and the most recent release is v4.20.0 from 2026-09-10. Before that, v4.19.5 landed on 2026-07-17 and v4.19.4 on 2026-05-20. That is a maintained project with a release roughly every two months and small patches in between.

Upgrade cost depends on how you installed it. The Flatpak updates through the usual Flatpak mechanism, and that is the low-effort path. A source build means re-running the meson and ninja sequence above for each release, plus keeping the Vala toolchain and the GTK4, libadwaita and Evolution Data Server development packages current. The dependency table has minimum versions, not pinned ones, so a distribution that ships older libecal or libadwaita will block the build until those packages move.

Translation is handled through Weblate, and the README links a translation project and a po/README.md guide. Contributions are governed by the GNOME Code of Conduct, and the repository includes an AI_POLICY.md that sets expectations for AI-assisted patches.

Editorial conclusion

Adopt Planify if you run a GNOME or GTK4 desktop, want your tasks in a local SQLite database, and sync to Todoist, Nextcloud or a CalDAV server you control. Do not adopt it if you need a Windows or macOS client, or if you expect the README to tell you how Todoist conflicts are resolved; it does not. Before committing, install the Flatpak, connect one account, and check that recurring tasks and multiple reminders survive a round trip, then read ARCHITECTURE.md and meson_options.txt to see how much of the build you are taking on.

Frequently asked questions

Is Planify free to use?

The repository is licensed under GPL-3.0 and the README offers the application through Flathub, with no paid tier described in the README. Support links to Patreon, PayPal, Ko-fi and Liberapay are donations, not a subscription.

Which sync services does Planify support?

The README lists Todoist, Nextcloud and CalDAV, and the repository topics include caldav, nextcloud and todoist-api. It also describes an offline mode where you work without internet and sync when you are back online.

Does Planify run on Windows or macOS?

The README's system requirements start with a Linux distribution with GTK4 support, and the installation section covers a Flatpak and a meson build only. No Windows or macOS build is described.

How do I build Planify from source?

Install the dependencies listed for Fedora or Ubuntu, then run meson build --prefix=/usr, cd build, ninja, sudo ninja install and launch io.github.alainm23.planify. The README also documents opening the project in GNOME Builder and pressing Run.

What is Planify Pro?

The README does not describe a Pro tier, a price or a paid plan for this project. The name Planify is also used by unrelated financial services, so search results about a Pro subscription may refer to a different company.

Official sources

  1. alainm23/planify on GitHub
  2. License: GPL-3.0
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/alainm23-planify.svg)](https://hysenlabs.com/projects/alainm23-planify)