The Challenge of Consistency
We've all been there: you start a new habit with enthusiasm — meditation, exercise, reading, maybe just getting some morning sunlight. The first week goes great. Then life happens. You miss a day. Then another. Soon you're wondering: "When was the last time I actually did this?"
Org mode users have long had a powerful solution to this problem: org-habit, a consistency graph that shows your habit completion history at a glance. And now, we're thrilled to announce that organice brings this feature to your browser and mobile device!
Here's what it looks like:
What Are Org Habits?
If you're new to Org mode, here's the concept: a "habit" is a TODO item that repeats on a schedule. Each time you complete it, the task reschedules itself. Over time, your LOGBOOK fills with completion timestamps.
The magic happens in the Agenda view. Instead of just showing today's tasks, Org habits display a consistency graph — a row of colored squares representing each day. At a glance, you can see your streak, your gaps, and how you're doing overall.
Color code
- Blue: If the task was not to be done yet on that day.
- Green: If the task could have been done on that day.
- Yellow: If the task was going to be overdue the next day.
- Red: If the task was overdue on that day.
And for comparison, here's the same data displayed in Emacs org-mode:
Setting Up Your First Habit
Creating a habit is straightforward. Here's a complete example:
* TODO I will get sunlight, in the morning, so that I can become an awake person SCHEDULED: <2026-01-08 Thu .+1d> :PROPERTIES: :STYLE: habit :END:
Let's break down the key parts:
STYLE: habit- This property tells organice to treat this as a habit and show the consistency graphSCHEDULED: <2026-01-08 Thu .+1d>- The timestamp with a repeater. The.means "shift from today when marked DONE"—perfect for habits
Understanding Repeaters
The repeater syntax is worth understanding, as it changes how tasks reschedule:
=+ (plus repeater): Shifts from the original date. If you miss multiple days, all missed instances appear as overdue. Useful for deadlines but less ideal for daily habits.
=++ (plus-plus repeater): Shifts to a future occurrence while preserving certain properties (like day of week). Good for "every Tuesday" style tasks.
. (dot repeater): Shifts from today when you mark it DONE. This is the sweet spot for habits—if you miss a few days, the next occurrence is always tomorrow.
Min/Max Ranges
Here's something clever that's unique to habits: the min/max slash syntax. Lets say you want to do your weekly GTD (Getting things Done) review every week, but you know life gets busy. You might aim for weekly but accept every other week:
SCHEDULED: <2026-01-08 Thu .+1d/2d>
This means "at most every 1 week, at least every 2 weeks." The consistency graph will show green for weekly consistency, but won't mark you red for the occasional off week.
Configuring Your Graph
The consistency graph has three configurable settings in organice:
- Org habit preceding days (default: 21) - How many days back to show
- Org habit following days (default: 7) - How many days forward to show
- Show all habits today - Whether to show all habits regardless of due date
Adjust these based on your preference. A longer preceding window gives you more historical context. A longer following window helps you see what's coming.
Try It Out
Ready to build better habits? Here's how to get started:
- Open https://organice.200ok.ch
- Create a new TODO item
- Add a SCHEDULED timestamp with a repeater (try
.for habits) - Add the property
STYLE: habit - Open the Agenda view and watch your consistency graph appear!
For more details on habit configuration, check out the full documentation.
Acknowledgments
Org habits in organice builds on the excellent work of the Org mode community. The original org-habit implementation was created by the Org mode developers, and we're grateful for their pioneering work in this space.
Feedback and Contributions
As with all organice features, we welcome feedback! Find us on:
- #organice on Matrix
- GitHub Discussions
Happy habit building!
If you liked this post, please consider supporting our Free and Open Source software work – you can sponsor us on Github and Patreon or star our FLOSS repositories.