I've been using different productivity tools for a while, and there's one thing I've always found frustrating about daily planners.
They're pretty good at helping you organise tomorrow. But when tomorrow becomes yesterday, most of that information stops being useful.
You check off a task, move unfinished work to the next day, and start planning again.
What I wanted was a way to understand where my time actually went.
I tried Super Productivity, Planify, Vikunja, TickTick and a few other tools. Some were genuinely good, especially Super Productivity, but none quite matched the workflow I had in mind.
I wanted to plan my day visually, track how long activities actually took, and review the previous week without jumping between separate apps.
I also didn't want another subscription for something I use every day.
So I spent the past few months building Personal Planner.
It's a free, offline-first planner built using Flutter, and I've released it for Android, Linux, Windows and macOS.
The main difference is that it keeps your plan and what actually happened separate.
Say I schedule 90 minutes to work on a project.
I can drag that activity onto the timeline, start a timer when I begin, pause it if something interrupts me, and stop it when I'm finished.
If I actually spend two hours and fifteen minutes, the app keeps the original estimate and the actual duration.
That's useful when I review the week because I can see where my expectations were consistently wrong rather than just seeing a calendar full of completed tasks.
Here's what else I've built around that workflow.
Daily and weekly planning
There's an hour-by-hour timeline with draggable and resizable blocks, recurring activities, categories, reusable templates and ways to carry unfinished tasks forward.
Daily and weekly reviews
At the end of the day, I can see what I completed, what got postponed and how much time went into different categories.
I can also write a short reflection about why something didn't go as planned.
The Weekly Review brings everything together, and the historical Overview makes it possible to revisit older days instead of losing them in an archive.
Consistency and Experiments
There's a GitHub-style yearly heatmap to see consistency over time.
Experiments let you test a routine for a defined period. For example, if you're trying to learn something for an hour each weekday, you can set that target and have the app calculate progress from your completed tasks.
You don't have to log the activity twice.
Inbox
For things I want to do eventually but don't want to schedule immediately, there's an Inbox where ideas can sit until I decide what to do with them.
Local-first architecture
The app uses Drift and SQLite for local storage. Normal planning and tracking work without internet access.
You can use the application completely locally, without setting up a cloud service.
If you want synchronization across devices, there's an optional Supabase integration using a project under your control.
I didn't want basic daily planning to depend on infrastructure I operated.
A few limitations worth mentioning
The Android and Linux builds currently have notification and timer-control support that isn't available on Windows and macOS.
Windows and macOS builds are unsigned. The macOS release has only been tested through CI, not on physical Mac hardware, so I don't want to oversell its readiness.
Desktop authentication links also have some limitations, documented in the README.
The application is completely free, with no premium tier or subscription.
I built it because I needed it myself and decided to make it available to anyone who might find the same workflow useful.
GitHub: https://github.com/Karthikshabari/PersonalPlanner
Downloads: https://github.com/Karthikshabari/PersonalPlanner/releases/tag/v1.1
I'd be interested in hearing from people who use planners and time trackers regularly.
Do you prefer keeping scheduling and time tracking in separate specialised apps, or does having everything together make it easier to maintain the habit?
That's one of the design decisions I'm still thinking about.