In December 2020, we introduced the Routine dashboard.

This system-wide overlay provides all the information you need to focus on what is happening right now: your upcoming events, the tasks of the day along with a console.

Routine’s console was introduced to allow you to capture a thought, idea or task as quickly as possible and save it for later.

Quickly though, we decided to equip the console with natural language processing in order to allow you to very easily express more.

The first applications were to offer the ability to schedule a captured task for a day and to block time for your most important tasks:

Routine’s advanced capabilities

New console interface: actions and summary

As detailed below, Routine’s new console allows for performing various operations.

The console has been reworked to list the operations available depending on the properties (date, time, duration, frequency etc.) the user enters.

Every operation comes with a summary of what the console understood was your intent for you to easily check before validation.

In addition, whenever the console displays suggestions, a helper is provided on the right-hand side in order to clarify its meaning while preventing ambiguities.

More control for recurrent tasks

Routine is equipped with the ability to create recurring tasks since its early days.

Unfortunately, the functionality suffered some limitations that made it unusable at times, such as the ability to indicate a specific day of the month as the recurrence.

With Routine Desktop 0.7, it is now possible to express when a recurrence starts and ends, allowing for a lot more control while making the cases mentioned above possible.

Meeting scheduling

Routine Desktop 0.7 also introduces the ability to schedule meetings right through the use of the with keyword.

Even though still very basic, this functionality will continue to evolve, support more scheduling constraints and conferencing options.

Postpone to batches

The latest version of Routine (0.7) has introduced a number of new concepts related to time management, more specifically the notion of batches and the postpone operation. You can read a detailed description in this blog post.

In a nutshell, a batch is a week-specific list of tasks that you want to complete. Because your schedule is chaotic, you cannot decide exactly when those tasks will get done. Postponing simply refers to act of assigning a task to a later batch for reconsideration.

Those concepts are essential for overcoming the shortcomings of existing task management products like Todoist,, Things etc. which automatically roll over your uncompleted tasks to the next day.

As before, the console allows you to capture a task that will be stored in your inbox. The inbox acts as a second memory, allowing you to get it out of your brain as quickly as possible. You can process your inbox from time to time, being every day, once a week or even once a month.

With the console’s new postpone functionality, you can now decide where to put a task depending on its importance and urgency:

  • If the task is not urgent, you can save it in the inbox
  • If the task should however be taken care soon but you do not know exactly when, you can postpone it to the current or next batch

Smart scheduling

Since the early days, Routine has been designed with the notion of smart scheduling a.k.a finding the best possible time according to a number of factors.

We started introducing the slots (a.k.a time preferences) early on but disabled the feature during Y Combinator to focus on a smaller set of functionalities so as to ship quickly.

Even though the slots have not been put back, Routine continues to consider times as ranges.

As a result, telling Routine to create a task or event within a range automatically turns on smart scheduling, requesting Routine’s engine to find the best possible time.

This functionality is triggered whenever you refer to a range, from morning/afternoon/evening to this Monday, in 3 weeks, next month or even on 2032.

You will notice that the summary reads “as soon as possible” when trying to find an opening in your schedule.

Noteworthy is that only active events are taken into accounts when considering conflicts. For more information on what are primary/secondary calendars and active/passive events, please refer to this blog post.

Specify the object’s parent

Another functionality that we are very excited about is the ability to specify where the object you are currently creating will live.

We sometimes refer to this functionality as redirection because we use the same syntax UNIX systems have been using for decades object > parent.


The first, and obvious, use case is to tell Routine in which calendar to create an event or allocate time.

Task & note to any other object: page, event, task or person

Thanks to redirection, you can also tell Routine to create a task in a specific page.

But Routine does not stop with tasks redirected to pages. In addition to tasks, you can add text (more to come later) in any object (page, task, event, person etc.) of your personal knowledge graph.

The object created will be stored in the notes of the parent object you specify. This opens up a lot of use cases:

When you think of something that needs to be discussed during your next one-on-one, just add it to the person’s notes:

Thinking of something precise in a task’s description? Just add it to the task directly:

Want to add information to a specific event such as a point to be discussed during a meeting? Just add it directly in the event:

Section selection

Routine does not stop here and allows you to further specify the section in which the object should be added.

Take the example above with a page that has two H1 sections: Movies and Series. When using the console, you can select specifically in which section the new entry (in this case “The Shining”) should be added:

Finally, Routine’s console now takes into account which operations you perform the most. Even though this will be further improved in the future, it can already be quite handy.

For instance, you could use a page as a second “inbox”. Just type something to capture >  and Routine will suggest first the page you have been using the most.

What next?

Even though all of those improvements make Routine’s console the most advanced on the market, we do not intend to stop here.

Next we will reintroduce the slots, also known as time preferences. By defining your ideal schedule, it will become extremely easy to tell Routine to schedule time in your preferred slot (e.g Focus) or to group tasks of the same nature together (e.g Administrative).