Time Blocking

Time Blocking means you assign a dedicated timeframe in your day to work on a task. This helps you to keep the balance between staying focused and spending too much time on a task by getting into a "rabbit hole" = working too long on a task. 

NotePlan supports Time Blocking by creating visually blocks of time in your timeline on the right, which hosts normally your events and reminders.

How to create a Time Block?

You can define a time block by adding a start and optional end time to various types of paragraphs in your daily notes. Here are some examples:

* Meditate at 8am (Tasks)
- Reply to emails at 9am - 12pm (Bullets)
1. Get lunch at 12:15pm (Numbered Lists)
# 13:00 - 15:00 Team Planning (Headings)

NotePlan detects the time in the sentences using natural language processing. You can use 12h format (e.g. "5pm") and 24h format (e.g. "14:00"). The more detailed you are, the easier it is for NotePlan to detect the time. For example, NotePlan won't detect the time if you just write "15", but "15:00" works or "at 15".

Note: As of version 3.3.1 time blocks are not sent to your calendar, they are only visually available in the calendar sidebar of NotePlan. However, there are plugins that can help with that. See below in this article.

If you are using tasks for time blocking this specific block will have a lower opacity in the sidebar after completing the task:

Why bullets, lists, and headings in addition to tasks?

Defining time frames that are too tight or too loose have both problems. If your time frames are too tight (means planning out down to every 15min) your day can quickly get very crowded and complicated. For example, if you take too long with just one task everything else also slips. On the other hand, if you have just two blocks of time for the whole day, you probably don't need to write that down.
That's where having a Time Block defined inside a heading comes in handy. 

Headings

You can block out some time for a specific type of task and then list them below the heading. For example:
## 09:00 - 11:00 Communications
* Reply to emails
* Reply to messages 
* Check to tweets

Lists and Bullets

Instead of headings, you can also use simple bullets or numbered lists. Similar to headings, you can define a general theme for a Time Block, then add tasks indented below it or just use the bullets for your Time Blocks as guard rails for your day:
- 09:00 - 11:00 Communications
	* Reply to emails
	* Check tweets

Daily Notes vs Regular Notes

If you type a Time Block directly into the daily notes, the date is already implied and the block will be displayed for that day. But if you are inside a regular (project) note, you need to define the date using date tags:
* Reply to emails at 5pm >2022-01-10
Then it will be displayed in the daily note as well.

Community Plugins

Read this first to learn how to install plugins.
  • With the plugin "Event Helpers" you can create calendar events from your Time Blocks (with the /time blocks to calendar command)
  • Using "Event Automations" you can create Time Blocks from tasks which are scheduled to today using the >today tag (with the /atb command).

Themes

Improve how Time Blocks look visually in NotePlan by customizing your theme. For example, change the font and color:
To achieve this effect, add the following style to your custom theme under "styles":
"timeblocks": {
  "regex": "((?:\\d{4}-[01]\\d{1}-\\d{2})?(?:(at|from)\\s*([0-2]?\\d|noon|midnight)(:[0-5]\\d)?(\\s?(AM?|PM?|am?|pm?)?)|\\h+([0-2]?\\d)(:[0-5]\\d)?(\\s?(AM?|PM?|am?|pm?)|(?=\\s*(\\-|\\–|\\~|\\〜|to|\\?)))|\\h+([0-2]?\\d|noon|midnight)(:[0-5]\\d)\\s?(AM?|PM?|am?|pm?)?)(?:\\s*(\\-|\\–|\\~|\\〜|to|\\?)\\s*([0-2]?\\d|noon|midnight)(:[0-5]\\d)?(\\s?(AM?|PM?|am?|pm?)?))?(?=\\h|$))",
  "matchPosition": 1,
  "color": "#005BF0",
  "font": "Menlo-Regular",
  "size": 15
},

(Thanks to Jonathan, @jgclark on Discord, for coming up with the regular expression)

Additionally, you can change the color of the Time Blocks in the right calendar sidebar by adding the following attribute to "editor":

"timeBlockColor": "#d87001",