obsidian plugins

daily notes template

my daily notes consist of:

  • an ASCII weather forecast (pulled from wttr.in with curl)
  • a link to the previous note (code from ben’s garden)
  • a quote of the day (randomly pulled from a file compiling a bunch of weird twitter shitposts using fortune)
  • a task list (using tasks for obsidian) that i add the following base tasks to every day:
    • take medication
    • eat food
    • take multi-vitamin
  • a list of “things that happened today” that i add anything even semi-significant to (it helps with my memory)
  • calendar items, local (AKA from full calendar notes) & remote (ICS files)
  • a list of “three good things” that i fill out the next day before opening my new note

full template

last updated

<%*
tR += "---" + "\n"
 
let title = tp.file.creation_date("YYYY-MM-DD")
tR += "title: " + title + "\n"
 
let weeklytag = "daily_notes"
tR += "tags: " + weeklytag + "\n"
 
tR += "---"
%>
# <% tp.file.creation_date("dddd, MMMM DD, YYYY") %>
<% tp.file.rename(tp.date.now("YYYY-MM-DD")) %>
<%*
try { d = await tp.user.sh(`curl -s "https://wttr.in/New+York?TuF0"`)
}  catch (e) {
  d = "Cannot fetch weather forecast"
};
tR += '```\n' + d.out + '\n```\n';
-%>
<%*
const previousNote = await tp.user.findDailyPreviousNote(tp);
-%>
 
[[ <% previousNote %> |previous note]]
 
## QOTD
<%*
const w = await tp.user.sh(`fortune /home/kat/.local/fortune/weird_twitter/weird_twitter`);
-%>
 
> <% w.out %>
 
# simple tasks
 
# things that happened today
 
# calendar
 
## today's events
 
```dataview
table without ID
	link(file.link, title) as "Event",
	startTime as "Start", 
	endTime as "End"
from "daily/calendar"
FLATTEN dateformat(date(this.file.day), "EEE") AS wDay
FLATTEN ((x) => { Mon: "M", Tue: "T", Wed: "W", Thu: "R", Fri: "F", Sat: "S" , Sun: "U" }[x])(wDay) AS sDay
where 
	contains(daysOfWeek, sDay)
	or
	file.day = this.file.day
sort startTime ASC
```
 
## upcoming events
 
### local
 
```dataview
table without ID
	link(file.link, title) as "Event",
	startTime as "Start", 
	endTime as "End"
from "daily/calendar"
FLATTEN dateformat(date(this.file.day), "EEE") AS wDay
FLATTEN ((x) => { Mon: "M", Tue: "T", Wed: "W", Thu: "R", Fri: "F", Sat: "S" , Sun: "U" }[x])(wDay) AS sDay
where 
	date >= date(today) AND date <= date(today) + dur(3d)
sort startTime ASC
```
 
### remote
 
```dataviewjs
var date = dv.date(dv.current().file.name);
var dur = Duration.fromObject({ days: 1 });
var events = await app.plugins.getPlugin('ics').getEvents(date + dur || date);
var mdArray = [];
var obj = {};
events.forEach((e) => {
  mdArray.push({"time": e.time, "name": e.summary });
})
 
dv.table(["name", "time"], mdArray.map(r => [r.name, r.time]));
```
 
# three good things
````