Back to blog
FILE 0x71·DATE-SCOPED VIEWS ON A TODO LIST, WITH A SENSIBLE DEFAULT

Date-scoped views on a todo list, with a sensible default

May 13, 2026 · ios, ux

I migrated from Todoist to my own todo app a few weeks ago. The single biggest thing I missed: Todoist's Today / Upcoming views. So I built them.

What the views are

The selected view persists in UserDefaults so the app opens to whatever you were last using. Today is the default on first launch.

The reason every view above "All" includes overdue: an overdue item isn't a "yesterday" item, it's a right now item. Hiding overdue behind a separate filter would let it slip out of mind. Surfacing it at the top of every date-scoped view keeps it where I can see it.

How the rendering changes

Date-scoped views show a flat list, sorted by due date, with an "OVERDUE" subheader for the items that are past due. No category grouping — the question being asked is "what is on fire today?" not "what's the shape of my mortgage category?"

The All view keeps the collapsible-per-category structure, because when you're triaging everything, categories are the navigation.

The sidebar

There's now a VIEWS rail above CATEGORIES. Tap a view, you're in that view. Tap a category, you filter the current view to that category. So "Today, in Bills" is a two-tap query, not three.

This kind of layered filtering is the part of Todoist I missed most. The categories aren't enough; the dates aren't enough; together they're a real query language.

What I'd do differently

I should have shipped date-scoped views from day one. I told myself the All view was sufficient because "everything's right there." It wasn't. The first time you accumulate ~30 tasks across multiple categories, "everything's right there" stops being a feature and starts being a wall of text. The Today view is the single most useful thing in the app now. Should have been v1.