Photo by Nick Morrison / Unsplash

My Life OS in Obsidian: Part 6 - Review

Life OS Series Feb 8, 2024

Unlock the potential of your life with the sixth installment of the Life OS Series! Dive into the transformative power of regular reviews, gaining clarity, celebrating achievements, and mastering time management. Discover my personalized review schedules for enhanced productivity. Don't miss the chance to elevate your life โ€“ expand the Life OS journey now!

Welcome to the sixth part of the Life OS Series. In this article I'm going to describe the Review process.

The Power of Reflection

In the hustle and bustle of our daily lives, it's easy to get caught up in the relentless cycle of tasks, goals, and projects without taking a moment to pause and reflect. However, carving out time to review and assess our personal lives is a crucial practice that can lead to increased productivity, fulfillment, and overall well-being. In this blog post, we'll explore the importance of regularly reviewing your goals, projects, and tasks, and how this simple yet profound habit can positively impact various aspects of your life.

๐Ÿ‘“ Clarity and Focus

One of the primary benefits of reviewing your personal life, goals, projects, and tasks is gaining clarity and focus. Life is filled with distractions, and it's easy to lose sight of the bigger picture when immersed in day-to-day activities. Regular reviews help you reassess your priorities, ensuring that your efforts align with your long-term objectives. By maintaining focus, you can make informed decisions about where to direct your time and energy, avoiding the trap of busyness without true progress.

๐ŸŽฏ Goal Alignment and Adjustments

Setting goals is an integral part of personal development, but as circumstances change, so too may your objectives. Regular reviews provide an opportunity to assess whether your goals are still relevant and aligned with your values. If necessary, adjustments can be made to ensure that your aspirations reflect your current aspirations and the evolving nature of your life.

๐ŸŽ‰ Celebrating Achievements

In the relentless pursuit of progress, it's easy to overlook the achievements and milestones you've reached along the way. Regular reviews allow you to celebrate your successes, no matter how small. Taking stock of your accomplishments not only boosts your confidence but also serves as a motivating factor, propelling you forward with a positive mindset.

๐Ÿ“ˆ Learning from Setbacks

Life is full of challenges and setbacks, but viewing them as opportunities for growth is key. By reviewing your personal and professional experiences, you can identify areas where improvement is needed and extract valuable lessons from setbacks. This reflective process enables you to develop resilience and adaptability, crucial qualities for navigating life's unpredictable journey.

โฐ Enhanced Productivity and Time Management:

Efficiency in both personal and professional spheres often hinges on effective time management. Regularly reviewing your tasks and projects allows you to identify time-wasting activities and make adjustments to streamline your workflow. This, in turn, enhances your overall productivity and helps you make the most of your valuable time.

My Review Schedules

I review my life on different intervals, there's a weekly, a monthly, a quarterly and and annual review.

Weekly Review

Set aside 30 minutes once a week (I do it on Sunday evening) to reflect on the previous week and plan for the week ahead. My weekly review consists of five parts:

  1. Collect: Collect all loose papers, sticky notes, etc. and capture them in my organization system.
  2. Clear Space: Clear all physical spaces such as my in-tray in the office, my wallet, etc. and also all digital spaces such as my Obsidian inbox, my mailbox, my smartphone, etc.
  3. Review: Review my daily journal entries, my readings, my habits progress and the food for the previous week.
  4. Reflect: Reflect and note down on what went well and what went not so well the previous week.
  5. Plan: Check my calendar for the upcoming week, set 3 focus goals for the next week and plan when to do which tasks.

It's helpful to create a checklist to remember all the things for the weekly review. For this purpose I created a template (see below in the Obsidian Setup part) that I can go through every week. The template grabs the information from my daily files such as my journal entries or progress on my habits (Journaling and the Daily Template will be covered in my next blog post).

Monthly Review

Set aside 1-2 hours at the end of the month to reflect on the previous month and plan for the month ahead. My monthly review works as follows:

  1. Reflect on the previous month, check which goals/milestones I achieved and which ones I missed and ask myself why I missed them.
  2. Review my habits, celebrate the progress for habits with good progress and adjust cues/rewards for habits with lacking progress.
  3. Read the summaries of my weekly reviews, reflect and note down what went well and what went not so well in the previous month.
  4. Plan for the next month. I check the upcoming goals and milestones, adjust deadlines of projects as needed, add new projects if necessary and adjust the status of existing projects.

These steps make sure that I stay on track with my plans. Again, see my templates below in the Obsidian Setup part.

Quarterly Review

Set aside at least 2 hours at the end of every quarter to reflect on the previous quarter and plan for the quarter ahead. My quarterly review is pretty similar to the monthly review:

  1. Reflect on the previous quarter, check which goals/milestones I achieved and which ones I missed and ask myself why I missed them.
  2. Read the summaries of my monthly reviews, reflect and note down what went well and what went not so well in the previous quarter.
  3. Plan for the next quarter. I check the upcoming goals and milestones, adjust deadlines of goals/milestones as needed and add new milestones as needed.

Again, see my templates below in the Obsidian Setup part.

Annual Review

Set aside at least 4 hours, better a full day at the end of the year to reflect on the previous year and plan for the upcoming year. My annual review works as follows:

  1. Reflect on the previous year, check which goals/milestones I achieved and which ones I missed and ask myself why I missed them.
  2. Read the summaries of my quarterly reviews, reflect and note down what went well and what went not so well in the previous quarter.
  3. Plan for the next year. I check the upcoming goals and milestones for the future, choose and add goals for the next year and add needed milestones/projects.

Again, see my templates below in the Obsidian Setup part.


Obsidian Setup

Prerequisites

Follow the video below to install and configure the Periodic Notes plugin.

Follow the video below to install and configure the Calendar plugin.

Dashboards

First we create the various dashboards, which provide a summary of the respective reviews and act as a base to access the individual reviews.

Example of the Monthly Review Dashboard

Dashboard - Weekly Reviews

Create a file called Weekly Review ๐Ÿ“‘ in the folder 2 Journal/Weekly Review and add the following content:

Code
---
banner: "https://preview.redd.it/arqa352ph7x61.jpg?width=960&crop=smart&auto=webp&s=84f9245d607b029667d5bfc4abf36547fc6213de"
banner_x: 0.5
---
###### [[Home|Home]]
###### tags:: #atlas/view๐Ÿ‘“
# Weekly Reviews
```dataviewjs
let groups = dv.pages('"2 Journal/Weekly Review" and !#atlas/view๐Ÿ‘“').groupBy(p => p.month)

for (let group of groups.sort(g => g.key, 'desc')) { 
	dv.header(2, group.key); 
	dv.table( 
		["๐Ÿ“… Week", "๐Ÿ’ช Proud", "โ†—๏ธ Improve", "๐ŸŽฏ Focus Goals"], 
		group.rows 
			.sort(k => k.month, 'desc')
		    .map(k => [
		        k.file.link,
		        k.proud,
		        k.improve,
		        k.focusgoal
		    ])
	)
}
```

Dashboard - Monthly Reviews

Create a file called Monthly Review ๐Ÿ“† in the folder 2 Journal/Monthly Review and add the following content:

Code
---
banner: "https://preview.redd.it/arqa352ph7x61.jpg?width=960&crop=smart&auto=webp&s=84f9245d607b029667d5bfc4abf36547fc6213de"
banner_x: 0.5
---
###### [[Home|Home]]
###### tags:: #atlas/view๐Ÿ‘“
# Monthly Reviews
```button
name + New Monthly Review
type command
action QuickAdd: Add Monthly Review
```

```dataviewjs
let groups = dv.pages('"2 Journal/Monthly Review" and !#atlas/view๐Ÿ‘“').groupBy(p => p.year)

for (let group of groups.sort(g => g.key, 'desc')) { 
	dv.header(2, group.key); 
	dv.table( 
		["๐Ÿ“… Month", "๐Ÿ’ช Proud", "โ†—๏ธ Improve"], 
		group.rows 
			.sort(k => k.month, 'desc')
		    .map(k => [
		        k.file.link,
		        k.proud,
		        k.improve
		    ])
	)
}
```

Dashboard - Quarterly Reviews

Create a file called Quarterly Review ๐Ÿ“… in the folder 2 Journal/Quarterly Review and add the following content:

Code
---
banner: "https://preview.redd.it/arqa352ph7x61.jpg?width=960&crop=smart&auto=webp&s=84f9245d607b029667d5bfc4abf36547fc6213de"
banner_x: 0.5
---
###### [[Home|Home]]
###### tags:: #atlas/view๐Ÿ‘“
# Quarterly Reviews
```button
name + New Quarterly Review
type command
action QuickAdd: Add Quarterly Review
```

```dataviewjs
let groups = dv.pages('"2 Journal/Quarterly Review" and !#atlas/view๐Ÿ‘“').groupBy(p => p.year)

for (let group of groups.sort(g => g.key, 'desc')) { 
	dv.header(2, group.key); 
	dv.table( 
		["๐Ÿ“… Quarter", "๐Ÿ’ช Proud", "โ†—๏ธ Improve"], 
		group.rows 
			.sort(k => k.quarter, 'desc')
		    .map(k => [
		        k.file.link,
		        k.proud,
		        k.improve
		    ])
	)
}
```

Dashboard - Annual Reviews

Create a file called Annual Review ๐Ÿ“… in the folder 2 Journal/Annual Review and add the following content:

Code
---
banner: "https://preview.redd.it/arqa352ph7x61.jpg?width=960&crop=smart&auto=webp&s=84f9245d607b029667d5bfc4abf36547fc6213de"
banner_x: 0.5
---
###### [[Home|Home]]
###### tags:: #atlas/view๐Ÿ‘“
# Annual Reviews
```button
name + New Annual Review
type command
action QuickAdd: Add Annual Review
```

```dataviewjs
let groups = dv.pages('"2 Journal/Annual Review" and !#atlas/view๐Ÿ‘“').groupBy(p => p.year)

for (let group of groups.sort(g => g.key, 'desc')) { 
	dv.header(2, group.key); 
	dv.table( 
		["๐Ÿ“… Year", "๐Ÿ’ช Proud", "โ†—๏ธ Improve"], 
		group.rows 
			.sort(k => k.year, 'desc')
		    .map(k => [
		        k.file.link,
		        k.proud,
		        k.improve
		    ])
	)
}
```

Templates

Next we create the templates to be used for the various reviews.

Weekly Review

Create a file called Review - Weekly Template in the folder 999 Templates and add the following content:

Code
---
full-date: <% tp.date.now("YYYY-MM-DD", 6, tp.file.title, "YYYY-[W]ww") %>
week: <% tp.date.now("YYYY-[W]ww", 0, tp.file.title, "YYYY-[W]ww") %>
month: <% tp.date.now("YYYY-MM MMMM", 0, tp.file.title, "YYYY-[W]ww") %>
year: <% tp.date.now("YYYY", 0, tp.file.title, "YYYY-[W]ww") %>
banner: "https://preview.redd.it/arqa352ph7x61.jpg?width=960&crop=smart&auto=webp&s=84f9245d607b029667d5bfc4abf36547fc6213de"
cssClass: embed-strict
---
###### [[<% tp.date.now("gggg-[W]ww", -7, tp.file.title, "gggg-[W]ww") %>|โ†ถ PREVIOUS WEEK]] โ [[<% tp.date.now("gggg-[W]ww", 7, tp.file.title, "gggg-[W]ww") %>|FOLLOWING WEEK โ†ท]]
# โ—Œ <% tp.file.title %>
```dataview
TABLE WITHOUT ID
	file.link as "Day",
	week as "Week"
FROM "2 Journal/Daily Log"
WHERE week = "<% tp.file.title %>"
```
---
# Weekly Review
## Collect
Collect all loose papers, sticky notes etc. and capture them in Obsidian

---
## ๐Ÿงน Clear Space
### Physical Space
- [ ] Desk, bag, wallet
- [ ] Office in-tray

### Digital Space
- [ ] Clear E-Mail inbox
- [ ] Clear computer: Desktop, download folder, empty trash
- [ ] Clear smartphone: Whatsapp, pictures, messages
- [ ] Clear Obsidian Inbox

---
## ๐Ÿ—ƒ๏ธ Review
### ๐Ÿ“ Journal
- [[<% tp.date.weekday("YYYY-MM-DD", 0, tp.date.now("YYYY-MM-DD")) %>|Monday]]
		![[<% tp.date.weekday("YYYY-MM-DD", 0, tp.date.now("YYYY-MM-DD")) %>#^life-link]]
- [[<% tp.date.weekday("YYYY-MM-DD", 1, tp.date.now("YYYY-MM-DD")) %>|Tuesday]]
		![[<% tp.date.weekday("YYYY-MM-DD", 1, tp.date.now("YYYY-MM-DD")) %>#^life-link]]
- [[<% tp.date.weekday("YYYY-MM-DD", 2, tp.date.now("YYYY-MM-DD")) %>|Wednesday]]
		![[<% tp.date.weekday("YYYY-MM-DD", 2, tp.date.now("YYYY-MM-DD")) %>#^life-link]]
- [[<% tp.date.weekday("YYYY-MM-DD", 3, tp.date.now("YYYY-MM-DD")) %>|Thursday]]
		![[<% tp.date.weekday("YYYY-MM-DD", 3, tp.date.now("YYYY-MM-DD")) %>#^life-link]]
- [[<% tp.date.weekday("YYYY-MM-DD", 4, tp.date.now("YYYY-MM-DD")) %>|Friday]]
		![[<% tp.date.weekday("YYYY-MM-DD", 4, tp.date.now("YYYY-MM-DD")) %>#^life-link]]
- [[<% tp.date.weekday("YYYY-MM-DD", 5, tp.date.now("YYYY-MM-DD")) %>|Saturday]]
		![[<% tp.date.weekday("YYYY-MM-DD", 5, tp.date.now("YYYY-MM-DD")) %>#^life-link]]
- [[<% tp.date.weekday("YYYY-MM-DD", 6, tp.date.now("YYYY-MM-DD")) %>|Sunday]]
		![[<% tp.date.weekday("YYYY-MM-DD", 6, tp.date.now("YYYY-MM-DD")) %>#^life-link]]
<br>

### ๐Ÿ“— Reading
```dataview
TABLE WITHOUT ID
	file.link as "Day",
	reading as "Log"
FROM "2 Journal/Daily Log"  
WHERE week = this.week
SORT file.name DESC
```
<br>

### ๐Ÿฝ๏ธ Food:
- [[<% tp.date.weekday("YYYY-MM-DD", 0, tp.date.now("YYYY-MM-DD")) %>|Monday]]
		![[<% tp.date.weekday("YYYY-MM-DD", 0, tp.date.now("YYYY-MM-DD")) %>#^food-link]]
- [[<% tp.date.weekday("YYYY-MM-DD", 1, tp.date.now("YYYY-MM-DD")) %>|Tuesday]]
		![[<% tp.date.weekday("YYYY-MM-DD", 1, tp.date.now("YYYY-MM-DD")) %>#^food-link]]
- [[<% tp.date.weekday("YYYY-MM-DD", 2, tp.date.now("YYYY-MM-DD")) %>|Wednesday]]
		![[<% tp.date.weekday("YYYY-MM-DD", 2, tp.date.now("YYYY-MM-DD")) %>#^food-link]]
- [[<% tp.date.weekday("YYYY-MM-DD", 3, tp.date.now("YYYY-MM-DD")) %>|Thursday]]
		![[<% tp.date.weekday("YYYY-MM-DD", 3, tp.date.now("YYYY-MM-DD")) %>#^food-link]]
- [[<% tp.date.weekday("YYYY-MM-DD", 4, tp.date.now("YYYY-MM-DD")) %>|Friday]]
		![[<% tp.date.weekday("YYYY-MM-DD", 4, tp.date.now("YYYY-MM-DD")) %>#^food-link]]
- [[<% tp.date.weekday("YYYY-MM-DD", 5, tp.date.now("YYYY-MM-DD")) %>|Saturday]]
		![[<% tp.date.weekday("YYYY-MM-DD", 5, tp.date.now("YYYY-MM-DD")) %>#^food-link]]
- [[<% tp.date.weekday("YYYY-MM-DD", 6, tp.date.now("YYYY-MM-DD")) %>|Sunday]]
		![[<% tp.date.weekday("YYYY-MM-DD", 6, tp.date.now("YYYY-MM-DD")) %>#^food-link]]
<br>

### ๐Ÿ” Habits
```dataview
TABLE WITHOUT ID
	link(file.name) as "Day",
	choice(read >= 15, "โœ… " + read + " min", "โŒ " + read + " min") AS "๐Ÿ“š >15 min",
	choice(business >= 30, "โœ… " + business + " min", "โŒ " + business + " min") AS "๐Ÿ’ผ >30 min",
	choice(italian >= 10, "โœ… " + italian + " min", "โŒ " + italian + " min") AS "๐Ÿ‡ฎ๐Ÿ‡น >10 min",
	choice(phone <= 120, "โœ… " + phone + " min", "โŒ " + phone + " min") AS "๐Ÿ“ฑ < 120 min",
	choice(exercise >= 5, "โœ… " + exercise + " min", "โŒ " + exercise + " min") AS "๐Ÿ‹๏ธ >5 min",
	choice(water >= 1.5, "โœ… " + water + " l", "โŒ " + water + " l") AS "๐Ÿ’ง >1.5l",
	choice(sleep >= 6, "โœ… " + sleep + " h", "โŒ " + sleep + " h") AS "๐Ÿ’ค >6h",
	choice(veggies >= 200, "โœ… " + veggies + " g", "โŒ " + veggies + " g") AS "๐Ÿฅฆ >200g",
	choice(fruits >=1, "โœ… " + fruits + " pcs", "โŒ " + fruits + " pcs") AS "๐ŸŽ >1pcs"
FROM "2 Journal/Daily Log"
WHERE week = this.week
SORT file.name DESC
```
<br>

### ๐Ÿ““ New Notes
```dataview
TABLE WITHOUT ID
	file.link,
	file.cday as "Date Created"
WHERE file.cday <= date("<% tp.date.now('YYYY-MM-DD') %>") AND file.cday > date("<% tp.date.now('YYYY-MM-DD', -7, tp.date.now('YYYY-MM-DD'), 'YYYY-MM-DD') %>")
SORT file.cday DESC
```
---
## ๐Ÿ‘“ Reflect
### ๐Ÿ† Milestones Achieved
```dataview
TABLE without ID
	file.link AS "๐Ÿ Milestone",
	goal as "๐ŸŽฏ Goal",
	choice(completeddate != "In Progress", "โœ… " + completeddate, "In Progress") AS "โœ… Completed",
	dateformat(deadline,"d MMMM, yyyy") AS "๐Ÿ“… Deadline"
FROM #life/milestone AND !"999 Templates"
WHERE 
	completeddate != "In Progress" AND
	completeddate < this.full-date AND
	(this.full-date - completeddate).days < 7
SORT completeddate ASC, deadline ASC
```
<br>

### โœ… Tasks Completed
```tasks
done
done before <% tp.date.now("YYYY-MM-DD", 7, tp.file.title, "YYYY-[W]ww") %>
done after <% tp.date.now("YYYY-MM-DD", -1, tp.file.title, "YYYY-[W]ww") %>
path includes 5 Life
short mode
```
<br>
### ๐Ÿ‘“ Weekly Reflection

>[!question] What went well this week?

Proud::

>[!question] What did not go well this week?

Improve::

---
## ๐Ÿ”ญ Plan
- [ ] Check calendar next 2-3 weeks

###  ๐ŸŽฏ Focus Goals
#### This Month
```dataview
TABLE without ID
	file.link AS "๐Ÿ Milestone",
	goal as "๐ŸŽฏ Goal",
	dateformat(deadline,"d MMMM, yyyy") AS "๐Ÿ“… Deadline"
FROM #life/milestone AND !"999 Templates"
WHERE
	completeddate = "In Progress" AND
	deadline.year = date(this.full-date).year AND
	deadline.month <= date(this.full-date).month
SORT deadline ASC
```
<br>

#### This Week
```dataview
TABLE WITHOUT ID
	file.link AS "Week",
	focusgoal AS "๐ŸŽฏ Goals"
FROM "2 Journal/Weekly Review"
WHERE week = "<% tp.date.now("YYYY-[W]ww", -7, tp.file.title, "YYYY-[W]ww") %>"
```
<br>

#### Upcoming Week
- [ ] Define focus goals for next week
	- FocusGoal::
	- FocusGoal::
	- FocusGoal::
	- FocusGoal::
	- FocusGoal::
- [ ] Check overdue and unplanned [[Tasks โœ”๏ธ|tasks]] and schedule them for the upcoming week

This template grabs various information from the daily notes (see upcoming blog post) and puts them on a single page for an easy review of your week. In detail it grabs the journal entries, the reading entries, the food entries and the habits. In addition there is a section showing all notes that have been created in the last week, and a list of achieved milestones and completed tasks. Having it all on one page makes it easier to get an overview of your week instead of opening every daily file.

Monthly Review

Create a file called Review - Monthly Template in the folder 999 Templates and add the following content:

Code
---
full-date: <% tp.date.now("YYYY-MM-DD", 0, tp.file.title, "YYYY-MM") %>
month: <% tp.date.now("YYYY-MM MMMM", 0, tp.file.title, "YYYY-MM") %>
year: <% tp.date.now("YYYY", 0, tp.file.title, "YYYY-MM") %>
banner: "https://preview.redd.it/arqa352ph7x61.jpg?width=960&crop=smart&auto=webp&s=84f9245d607b029667d5bfc4abf36547fc6213de"
---

###### [[<% tp.date.now("YYYY-MM","P-1M", tp.file.title, "YYYY-MM") %>|โ†ถ PREVIOUS MONTH]] โ [[<% tp.date.now("YYYY-MM", "P1M", tp.file.title, "YYYY-MM") %>|FOLLOWING MONTH โ†ท]]
# โ—Œ <% tp.file.title %>
## ๐Ÿ‘“ Reflect
### ๐Ÿ† Goals/Milestones Achieved
```dataview
TABLE without ID
	file.link AS "๐Ÿ Goal/Milestone",
	replace(tags, "#life/", "") as "๐ŸŽฏ Type",
	"โœ… " + completeddate AS "โœ… Completed",
	dateformat(deadline,"d MMMM, yyyy") AS "๐Ÿ“… Deadline"
FROM (#life/goal OR #life/milestone) AND "5 Life" AND !"999 Templates"
WHERE 
	completeddate != "In Progress" AND
	completeddate.month = this.full-date.month AND
	completeddate.year = this.full-date.year
SORT completeddate ASC, deadline ASC
```

### ๐Ÿ”„ Habits
- [ ] Review [[Habit Tracker ๐Ÿ”|Habits]]
	- [ ] Adjust cues/rewards for habits with bad progress

### ๐Ÿ—ƒ๏ธ Weekly Reviews
- [ ] Review [[Weekly Review ๐Ÿ“‘|Weeklies]]

### ๐Ÿ‘“ Monthly Reflection

>[!question] What went well this month?

Proud::

>[!question] What did not go well this month?

Improve::

---
## ๐Ÿ”ญ Plan
- [ ] Check the upcoming [[Plan - This Quarter ๐Ÿ”ญ|goals and milestones]] for the current quarter
- [ ] Adjust deadline of projects as needed
- [ ] Add new projects as needed
- [ ] Adjust the [[Projects - KanBan ๐Ÿ—‚๏ธ|status of projects]] as needed

The monthly template shows all the goals/milestones that you achieved during the month, a section about your habits (covered in a future blog post), a section with a link to the weekly reviews and a section with a checklist for planning the upcoming month.

Quarterly Review

Create a file called Review - Quarterly Template in the folder 999 Templates and add the following content:

Code
---
full-date: <% moment(tp.date.now("YYYY-MM-DD", 0, tp.file.title, "YYYY-[Q]Q"), "YYYY-MM-DD").endOf('quarter').format('YYYY-MM-DD') %>
quarter: <% tp.date.now("YYYY-[Q]Q", 0, tp.file.title, "YYYY-[Q]Q") %>
year: <% tp.date.now("YYYY", 0, tp.file.title, "YYYY-[Q]Q") %>
banner: "https://preview.redd.it/arqa352ph7x61.jpg?width=960&crop=smart&auto=webp&s=84f9245d607b029667d5bfc4abf36547fc6213de"
---

###### [[<% tp.date.now("YYYY-[Q]Q","P-1M", tp.file.title, "YYYY-[Q]Q") %>|โ†ถ PREVIOUS QUARTER]] โ [[<% tp.date.now("YYYY-[Q]Q", "P1M", tp.file.title, "YYYY-[Q]Q") %>|FOLLOWING QUARTER โ†ท]]
# โ—Œ <% tp.file.title %>
## ๐Ÿ‘“ Reflect
### ๐Ÿ† Goals/Milestones Achieved
```dataview
TABLE without ID
	file.link AS "๐Ÿ Goal/Milestone",
	replace(tags, "#life/", "") as "๐ŸŽฏ Type",
	"โœ… " + completeddate AS "โœ… Completed",
	dateformat(deadline,"d MMMM, yyyy") AS "๐Ÿ“… Deadline"
FROM (#life/goal OR #life/milestone) AND "5 Life" AND !"999 Templates"
WHERE 
	completeddate != "In Progress" AND
	completeddate >= date("<% moment(tp.date.now("YYYY-MM-DD", 0, tp.file.title, "YYYY-[Q]Q"), "YYYY-MM-DD").startOf('quarter').format('YYYY-MM-DD') %>") AND
	completeddate <= date("<% moment(tp.date.now("YYYY-MM-DD", 0, tp.file.title, "YYYY-[Q]Q"), "YYYY-MM-DD").endOf('quarter').format('YYYY-MM-DD') %>")
SORT completeddate ASC, deadline ASC
```

### ๐Ÿ—ƒ๏ธ Monthly Reviews
[[<% moment(tp.date.now("YYYY-MM-DD", 0, tp.file.title, "YYYY-[Q]Q"), "YYYY-MM-DD").startOf('quarter').format('YYYY-MM') %>]]
๐Ÿ’ช `$= dv.page("<% moment(tp.date.now("YYYY-MM-DD", 0, tp.file.title, "YYYY-[Q]Q"), "YYYY-MM-DD").startOf('quarter').format('YYYY-MM') %>").proud`
๐Ÿ“‰ `$= dv.page("<% moment(tp.date.now("YYYY-MM-DD", 0, tp.file.title, "YYYY-[Q]Q"), "YYYY-MM-DD").startOf('quarter').format('YYYY-MM') %>").improve`

[[<% moment(tp.date.now("YYYY-MM-DD", 0, tp.file.title, "YYYY-[Q]Q"), "YYYY-MM-DD").endOf('quarter').subtract(1, "M").format('YYYY-MM') %>]]
๐Ÿ’ช `$= dv.page("<% moment(tp.date.now("YYYY-MM-DD", 0, tp.file.title, "YYYY-[Q]Q"), "YYYY-MM-DD").endOf('quarter').subtract(1, "M").format('YYYY-MM') %>").proud`
๐Ÿ“‰ `$= dv.page("<% moment(tp.date.now("YYYY-MM-DD", 0, tp.file.title, "YYYY-[Q]Q"), "YYYY-MM-DD").endOf('quarter').subtract(1, "M").format('YYYY-MM') %>").improve`

[[<% moment(tp.date.now("YYYY-MM-DD", 0, tp.file.title, "YYYY-[Q]Q"), "YYYY-MM-DD").endOf('quarter').format('YYYY-MM') %>]]
๐Ÿ’ช `$= dv.page("<% moment(tp.date.now("YYYY-MM-DD", 0, tp.file.title, "YYYY-[Q]Q"), "YYYY-MM-DD").endOf('quarter').format('YYYY-MM') %>").proud`
๐Ÿ“‰ `$= dv.page("<% moment(tp.date.now("YYYY-MM-DD", 0, tp.file.title, "YYYY-[Q]Q"), "YYYY-MM-DD").endOf('quarter').format('YYYY-MM') %>").improve`

### ๐Ÿ‘“ Quarterly Reflection

>[!question] What went well this quarter?

Proud:

>[!question] What did not go well this quarter?

Improve::

---
## ๐Ÿ”ญ Plan
- [ ] Check the upcoming [[Plan - This Year ๐Ÿ”ญ|goals and milestones]] for the current year
- [ ] Adjust deadline of milestones as needed
- [ ] Add new milestones as needed

The quarterly template shows all the goals/milestones that you achieved during the quarter, a section showing the good and bad stuff you noted in the respective monthly files and a section with a checklist for planning the upcoming quarter.

Annual Review

Create a file called Review - Annual Template in the folder 999 Templates and add the following content:

Code
---
year: <% tp.date.now("YYYY", 0, tp.file.title, "YYYY-[Q]Q") %>
banner: "https://preview.redd.it/arqa352ph7x61.jpg?width=960&crop=smart&auto=webp&s=84f9245d607b029667d5bfc4abf36547fc6213de"
---

###### [[<% tp.date.now("YYYY","P-1Y", tp.file.title, "YYYY") %>|โ†ถ PREVIOUS YEAR]] โ [[<% tp.date.now("YYYY", "P1Y", tp.file.title, "YYYY") %>|FOLLOWING YEAR โ†ท]]
# โ—Œ <% tp.file.title %>
## ๐Ÿ‘“ Reflect
### ๐Ÿ† Goals/Milestones Achieved
```dataview
TABLE without ID
	file.link AS "๐Ÿ Goal/Milestone",
	replace(tags, "#life/", "") as "๐ŸŽฏ Type",
	"โœ… " + completeddate AS "โœ… Completed",
	dateformat(deadline,"d MMMM, yyyy") AS "๐Ÿ“… Deadline"
FROM (#life/goal OR #life/milestone) AND "5 Life" AND !"999 Templates"
WHERE 
	completeddate != "In Progress" AND
	completeddate.year = this.year
SORT completeddate ASC, deadline ASC
```

### ๐Ÿ—ƒ๏ธ Quarterly Reviews
[[<% tp.date.now("YYYY-[Q1]", 0, tp.file.title, "YYYY-[Q]Q") %>]]
๐Ÿ’ช `$= dv.page("<% tp.date.now("YYYY-[Q1]", 0, tp.file.title, "YYYY-[Q]Q") %>").proud`
๐Ÿ“‰ `$= dv.page("<% tp.date.now("YYYY-[Q1]", 0, tp.file.title, "YYYY-[Q]Q") %>").improve`

[[<% tp.date.now("YYYY-[Q2]", 0, tp.file.title, "YYYY-[Q]Q") %>]]
๐Ÿ’ช `$= dv.page("<% tp.date.now("YYYY-[Q2]", 0, tp.file.title, "YYYY-[Q]Q") %>").proud`
๐Ÿ“‰ `$= dv.page("<% tp.date.now("YYYY-[Q2]", 0, tp.file.title, "YYYY-[Q]Q") %>").improve`

[[<% tp.date.now("YYYY-[Q3]", 0, tp.file.title, "YYYY-[Q]Q") %>]]
๐Ÿ’ช `$= dv.page("<% tp.date.now("YYYY-[Q3]", 0, tp.file.title, "YYYY-[Q]Q") %>").proud`
๐Ÿ“‰ `$= dv.page("<% tp.date.now("YYYY-[Q3]", 0, tp.file.title, "YYYY-[Q]Q") %>").improve`

[[<% tp.date.now("YYYY-[Q4]", 0, tp.file.title, "YYYY-[Q]Q") %>]]
๐Ÿ’ช `$= dv.page("<% tp.date.now("YYYY-[Q4]", 0, tp.file.title, "YYYY-[Q]Q") %>").proud`
๐Ÿ“‰ `$= dv.page("<% tp.date.now("YYYY-[Q4]", 0, tp.file.title, "YYYY-[Q]Q") %>").improve`

### ๐Ÿ‘“ Annual Reflection

>[!question] What went well this year?

Proud::

>[!question] What did not go well this year?

Improve::

---
## ๐Ÿ”ญ Plan
- [ ] Check the upcoming [[Plan - Future ๐Ÿ”ญ]] for the next few years
- [ ] Add new goals as needed
- [ ] Choose goals for the next year
- [ ] Add milestones to chosen goals and adjust deadlines
- [ ] Add projects to chosen milestones and adjust deadlines

The annual template shows all the goals/milestones that you achieved during the year, a section showing the good and bad stuff you noted in the respective quarterly files and a section with a checklist for planning the upcoming year.

QuickAdd

Nowe we configure three macros with the QuickAdd plugin. These macros will be called from the buttons in the respective review dashboards (Annual, Quarterly, Monthly) and will use the templates defined above to create new review files.

For the weekly reviews we will use the calendar plugin directly to create the files for the respective weeks.

Stay Tuned

In the next installment of the Life OS Series, we'll delve into the power of daily notes and journaling. Learn how these practices can deepen self-awareness, foster personal growth, and enhance productivity in your daily life.

Don't miss out on valuable insights and practical tips to optimize your journaling routine and maximize its benefits. Subscribe to my newsletter to receive updates on new blog posts straight to your inbox.

Stay inspired, stay organized, and stay tuned for the latest installment in your journey towards a more fulfilling life with Obsidian Life OS!

Tags