This advice is gold, and really makes for a useful running to-do list in Obsidian. One thing I've found personally though, is that showing only tasks that are "due today" means that if I miss a day, the task is also missing on the next day... which effectively means that I will not see anything that's also past due. I revised your query, and included three sections in my Daily Note Template. The first shows "tasks due today" as you've shown, the second shows "tasks due soon" which includes the next two days, and the third is "overdue tasks" which includes any before today. This way, if I don't know what date to put on a task, I can maintain a rolling to-do list by simply adding any date, which keeps it separate from other to-do items, and letting the date define where it fits. The script for "tasks due soon" is: ```dataviewjs const today = new Date(); today.setHours(0, 0, 0, 0); const twoDays = new Date(today); twoDays.setDate(today.getDate() + 2); function isDateSoon(dateStr) { const taskDate = new Date(dateStr); return taskDate > today && taskDate !t.completed) .where(t => { const dateRegex = /\d{4}-\d{2}-\d{2}/g; const dates = t.text.match(dateRegex) || []; return dates.some(date => isDateSoon(date)); }) ); ``` And the script for "Overdue Tasks" is: ```dataviewjs const today = new Date(); today.setHours(0, 0, 0, 0); function isDateOverdue(dateStr) { const taskDate = new Date(dateStr); return taskDate < today; } dv.taskList( dv.pages() .file.tasks .where(t => !t.completed) .where(t => { const dateRegex = /\d{4}-\d{2}-\d{2}/g; const dates = t.text.match(dateRegex) || []; return dates.some(date => isDateOverdue(date)); }) ); ```
The Tasks plugin also works well to collect tasks from the vault by context, e.g. tasks under a particular heading (headings like # idea, # for later, # interesting) or tasks from a particular folder.
OMG!!! I have searched for SO LONG to find the js to do this very thing!! I've been looking for a way to have unfinished tasks to show up on newer daily notes and IDKY it took so long to find this vid. tysm I wish you had more dataviewjs or js content in general for obsidian
Again I've been trying to figure out this problem on my own and look through hundreds of forms just to stumble on one of your videos that encapsulates and answers my questions perfectly. You've been a great help to me with my Obsidian journey. So thanks yet again! Here is another +1 point you can use for the annual Obsidian presidential election.
Finally got me to enable dataview. Had been sitting in my community plugins for a while but I had no idea where/how to start using it. Now my Tasks note is much much much more useful. Thank you
Obsidian is really changing my life. I'm just so grateful to live in this information era when I can just learn for free how to use this powerful tool . Thank you Nicole!
@@Gekitsuu there are two. I recommend using the "todoist sync plugin" it works like dataview with a rendered code block and gives you the least hassle. It also has a quickadd command to quickly add todoist tasks using hotkeys
So many things to learn from this video! Ended up setting up everything except dataviewjs. Wanted to tweak some sorting, and i'm not skilled enough to figure it out. Luckily, Tasks for Obsidian has simpler setup (less code) so that works for me.
I just learn obsidian in less than a week. I subscribed to your youtube channel. At first, it is a Notetaker for me. I want a task manager, then I study Logseq. After trying for a while, it is so rigid for me. At last, I go back to you. Viola, it is what I need. Thx. I like your clear present and nice voice. Thx from my heart.
Thank you! Can you maybe help me with figuring out how to use that same snippet but altering it to show non-completed tasks that are due *before* {{today}}? (So you get a view of overdue tasks for each daily note) thx!
Hi Karel, thank you for the compliment! I would eventually like to make a course for sure. It's just a matter of time-- I have a full-time day job so I struggle just to find the time to get videos out in my spare time (luckily I enjoy it)! I was thinking of making an introductory course to Obsidian, but I never considered jumping ahead to tackle something like Dataview. Maybe I should! Thanks for the idea!
Thanks! Glad to hear you like it. I don't actually use that plugin-- I prefer the YYYY-MM-DD format. :) Also didn't want to add a fourth plugin! I thought requiring three plugins was already a lot, hehe.
@@nicolevdh But the plugin NLD is just to use a shortcut to create the link with the daily note...like, ex: the Note A has a due day task to @tomorrow or @5 days from now(with NLD) - its just a lazy way to type the link. 😅 Just a tip if you ever consider!
@@luiseduardovalente9875 Thanks! I've actually used it before, but I didn't really find a need for it. I just like seeing the date, I guess! :) But I'm glad you like it! I know many people do.
Using Obsidian for task management, very interesting. I am also surprised how with a few plugins, obsidian is able to add this functionality. What about recurring tasks? Is there a special trick for that?
Awesome. I discovered that tasks cannot be indented for this to work, so no indenting subtasks. I also had to change the format to match the titling of my daily notes, but I knew I would have to do that.
Unfortunately, another commenter here reported the same thing - that the Dataview query can't work when indented. I had never tried that! Glad you were able to make it work for your situation anyway! :)
Dataview is great for this type of stuff I use it daily as it has really helped me organise, what I really wanted to do was to break the tasks based on their tag, as I use the tag to associate it to a project, however, the default behaviour is breaking it based on the page they were made in...
@@nicolevdh Thank you for this. I had seen this but as I read this it is looking through the yaml metadata for doing the grouping (genre) and not on the content of the task? So ideally I would want something that say ...groupBy(p => p.tags) but it doesn't work for me...
@@stamatispsarras I think I understand. Dataview works primarily on page metadata, not task metadata, and there doesn't seem to be a task.tags endpoint. The best you could do would be to use tags.text, but that would not allow you to group by tag. Maybe consider turning your tags into pages?
Thanks for this, Nicole. It’s very helpful. I would also love to see more on dataviewjs. I’ve been trying to figure out how to use your script but exclude a folder. In my case I want exclude my templates folder as I like to add tasks to templates but only want to see them when the template is applied. I can’t seem get my head around how to access objects, their functions and properties.
Glad to hear it! For the situation you describe, I would include it in the "where" clause, so that you only get results where the file path does not contain the folder you'd like to exclude. The Dataview documentation is a great help when trying to put together a query as well! blacksmithgu.github.io/obsidian-dataview/
@@nicolevdh Thanks again. It took me a little while to find the correct syntax but I got there. For anyone else following at home I excluded the templates folder with the following: dv.taskList(dv.pages('!"templates"').file.tasks
Thanks for the video. When I create a new note using a template, following your instructions, the title (date) appears twice. Is there a specific reason to use "# {{title}}" instead of leaving this line out of the template? At 8:37 you show the template without the title, "Daily", but not sure how I can maintain the template name under the "templates" folder but not have the template itself not show the name (i.e., "Daily"). - Newbie question, I know.
Hey! It's just down to personal preference. The first title that is shown by default is actually the filename, so it's not part of the body of the file itself. If you have to open up the note or publish it outside of Obsidian, there's no guarantee the filename will always be shown as a title, so I prefer to keep to standard practices for Markdown and include the title as an h1. It's a purely aesthetic thing, so you can definitely decide otherwise.
Would love to see you do a video on the pros & cons of using Daily Notes. Is it basically to use it as a running Daily Log vs inserting your date link when in a note? Benefits of Daily Notes (starting from) vs inserting (IE Natural Language plug in) Great video
Thanks for this comment! I've saved it for future use. It's helpful to know what you'd like to see. :) But just to answer you briefly here, I use Daily Notes as a running log, yes, but I also use it in conjunction with Templates/Templater to prompt myself to remember things. For example, I have things that I'd like to keep track of (such as the quality of my sleep, or whether I got any exercise that day) and things that I'd like to do as a daily habit (like meditating, cultivating gratitude, and processing notes). It's not as much about linking notes to a date; it's more about building daily habits and routines. But I don't think everyone needs to have it. So if what you're doing is working for you, I'd say keep doing it! :)
I really like the general approach here but what I am missing is 1. A way of seeing which tasks you completed today 2. (a reference to the day it was completed on the old note)
Hey! I don't believe this is possible just yet with the Dataview task integration, but it may be better to ask the developer himself-- perhaps a GitHub issue would persuade him to include that functionality.
I've multiple task under more than one header for the same page. Is it possible to filter only specific header, and show the result via Dataviewjs. Thanks in advance
Hello Nicole, thank you for your teaching. I recently found one plugin can display weekly and monthly plan nicely called "Obsidian-Tasks-Calendar". I am not sure if this plugin is worth for you to generate a tutorial. I cannot understand how that plugin work with different task files. If you have time, you can have a look. Thank you!
Hmmm, I'd never tried that until you mentioned it, but you're right! I don't know of a fix for it, unfortunately. Perhaps consider using a different plugin like Checklist instead?
Hello, thank you very much. I use the Weekly Notes to collect my ToDos of the week. Behind the ToDos I always put the DuDate in [[]] My time setting is: DD.MM.YYYY unfortunately Dataview does not show any results. When I use ``dataviewjs dv.taskList(dv.pages().file.tasks .where(t => !t.completed) it works. Only the time filtering does not work. Do you have any idea?
Hey Nicole, I am at the beginning of the video and can’t help but marvel at the beautiful theme you are using. Would love to use it. Is it something custom you are using or is it available in the community themes?
Hi! I'm responding via mobile and I don't quite know what theme I used here off the top of my head, but if you check the first (pinned) comment on this video, I usually put the theme there. It's definitely not a custom theme - it's a community theme that anyone can download. :)
Thank you! Yes, I did, heh. I was using Primary before I realised that that theme doesn't show checkboxes well, so I switched to the default Obsidian theme (light version). I usually use Primary on that demo vault, but on my main vault, I change themes A LOT. I most often use Sanctum, Moonlight, and Everforest (all dark mode).
Good Preso. Most task lists I have seen are presented in a Grid, outlook, notion, ios etc. Is there a way to show tasks in a Grid/table and with relevant data points, like create. date, done date etc.?
Yes! Check out Database Folder right now. There's also another developer I know who is working on rotating views to go back and forth between table view and, say, board view.
I'm having problems with checkboxes from all pages using the plugin 'Checklist' on my Android Phone in the right side menu (Obsidian crashes) so this may help me + it has so much more in it. Thx!
Yep, keyboard shortcuts between desktop and mobile apps are not always the same. Best to check your Hotkeys in Settings to see what they are for you (or to assign your own)!
I'm trying to learn more about Obsidian and Nicole's videos are great. One question from this topic, it says that you need tree plugins to manage task like in this video, but do you use something else also, like Checklist-plugin to get this system to work?
Glad you like my videos! :) You CAN use Checklist, but you don't have to. This one just used the Dataview plugin. And welcome to the Obsidian community!
Thanks so much Nicole, You make things so clear and easy to follow - I've just added the query to my template and it's working beautifully. Question is there a javascript to Query tasks that have passed their due date but not being checked ? Ie overdue tasks and also could you javascript a range of dates (Rather than just one day) i.e. all the tasks due this week..? Thanks Glenn
Hello Nicole , it's a great video as usual ! i have an issue with the date format in the dataviewjs request . it seems to not work ! when i create a new daily note it still appears as {{date:YYYY-MM-DD} in the request. The actual daily notes date is not captured in the request and so the due tasks are not displayed ! when i change the request manually it's working . Am i missing something ? thx!
When you have multiple types of tags, where you want to combine them into a single dataview, that makes it complicated. One would not create a new view every time you want to pick different tags. How could you overcome that ?
Hi, I'm not sure exactly what you mean. If you want multiple tags to be returned, you can keep adding them to the same Dataview query using the OR keyword.
👋 Nicole. Obsidian looks pretty cool but it seems that in order to get the most out of it, many plug-ins are required. Does too many plug-ins performance?
I think "getting the most out of it" is really subjective. For me, I definitely feel that the plugins add needed functionality to Obsidian and without them, I wouldn't like Obsidian as much. I'm actually a performance engineer in my day job, so performance is very important to me. Here are some benchmarks and tests run on Obsidian, as well as some other tools: www.goedel.io/p/tft-performance-obsidian . As for the effect of the plugins on performance... it depends what combination of plugins you're using, but no, I haven't found that to be an issue at all, but then I make sure to only install trusted plugins into my main vault. I encourage you to try it out for yourself! :)
@@nicolevdh I appreciate the reply. I realized my question was incomplete, but you knew exactly what I was talking about 🙂. Thanks for the link to the benchmarks. I will take a look.
Hi Nicole, I love your videos. I am new to Obsidian and using it for my medical studies. Is there a specific way I can allocate a task for an item to be reviewed in (for example) 3 days after the note was created? And then in 1 week after it was originally created, and then 4 weeks later?? This would be good to ensure adequate review of notes!! Thanks 🙏
Thank you for this video! This is so awesome. :) But I have a question. Is there a way to set up the code so that once I check off a task, it goes to a "Weekly Accomplishments" and review page? So I want to be able to generate a page at the end of the week that shows all the tasks I've completed that week, and then journaling questions. I have the Weekly Journal set up with a template, and I can get it to do a running list of tasks, but I don't want all of them, just for a certain week, like Week 52 of said year. I researched this and I am finding code that doesn't work. Also, they appear to be using just dataview and not dataviewjs. I know just enough to break things so I'm running in the dark here. :)
```dataviewjs dv.tasklist(dv.pages().file.tasks .where (t => t.completed) .where (t => t.text.includes("#Sick"))) ``` I am trying to search my students folders and find who has been absent by being sick, vacation, appointment etc but I can't get around this error and I don't know what I'm doing wrong.
Question: in addition to posting TASKS with DUE DATES, how do you recommend tracking specific tasks for specific projects? That is - do you create a separate note for each project (Project Master Project List) and keep them all in one place, or is there a way in which to easily "tag" a task on-the-fly, in any note, and see it in a Task List elsewhere? Thanks in advance --
Hi Jeff! I tend to use the Kanban plugin for projects, and then I do, as you mentioned, tag tasks with the project name. Then, on each project page, I use a Dataview query to pull in all uncompleted tasks with a certain tag.
Thank you so much! I have been looking everywhere for this. I do not know how to code. Do you know if it would be possible to generate a code for tasks that must be completed each Monday, Tuesday etc, so when I open the daily note, they are automatically there?
Hi! I'm glad you liked it, Luciana! Yes, you can do that with Dataview. Do you mean you want to have recurring tasks shown in the Dataview query according to the day of the week? You could do something like this: 1. First, in your recurring task, add a tag #monday or #tuesday. 2. In your Daily Note template, put the following Dataviewjs script: ```dataviewjs dv.taskList(dv.pages().file.tasks .where(t => !t.completed) .where(t => t.text.includes("#{{date:dddd}}"))) ``` When you apply the template to your daily note, you should see the recurring tasks for that day. Hope that helps!
@@nicolevdh Hey Nicole! I was wondering how I could make a recurring task? For example, I need to create a daily recurring task for checking e-mails and add it to the Daily Notes template so that dataviewjs always adds that task to every Daily Note.
Hey! I know this is a late reply, but I still wanted to say that in that specific use case, the easiest way would probably be to add that task to your Daily template. That way, it will be added to every daily note. Good luck!
How to create the checkbox in Obsidian. 1. Create the hot-key goto settings => hot keys and search for "Cycle bullet/checkbox" => click on the plus and create a hotkey. in my case 'ctrl+enter' or 'cmd+enter' 2. How to use it goto a note a press 'ctrl+enter' once you get a bullet, press twice you get a checkbox
Hello. One question. I am currently using Notion. I want to write articles and use ideas more strategic. Which one do you think offers the best way Logseq, Obsidian, Roam. I'm undecided between the three. Which one do you recommend?
Hi! I personally went from using TiddlyWiki > Evernote > Notion > Roam > Obsidian, just to give you an idea of what I've tried. Right now, nothing comes close to Obsidian for my use cases, and it is absolutely the tool I would recommend most. Here's a video I made on Notion vs Obsidian: ruclips.net/video/AhhFLXfldJQ/видео.html And here's a video I made on Obsidian vs Roam: ruclips.net/video/AWUk8-6yG2g/видео.html However, in the end, nobody can/should decide for you. I suggest you try all three for a short amount of time, and then use the one you like the most! Good luck!
Oeh Oeh Oeh I have one I am trying to figure out. I am trying to get a dataviewjs List from a specific tag (in yaml) but grouped by a different yaml property. In these lists I would like the yaml property by wich it's grouped to be a header I will also try to puzzle it out myself And thank you for the video 🙂
Hey! Have you seen this example from the documentation? blacksmithgu.github.io/obsidian-dataview/api/code-examples/ I also implemented this here, in case it's useful: notes.nicolevanderhoeven.com/Obsidian+Dataview#Display+game+sessions+that+need+processing
@@nicolevdh yeah I came across that as well, have tweeked it a bit to suit my needs and now it's like a charm.😇 I hope the dataview to obsidian publish will be released soon. Then I can say goodbye to notion and only have a calander, obsidian and todoist
The "Tasks" community plugin can pretty much do the same thing without requiring the dataviewjs. Have you tried using it? I'm interested to know how they compare but the Tasks plugin seems easier to use.
Hey! I haven't used it, no. I already have Dataview installed, and Dataview is going to be way more flexible in that you can have it display exactly what you want, how you want it, so I prefer that approach. But you should use whatever works for you! :)
Thanks for the videos. Can you autopopulate Kanban with dataviewjs ? I tried putting this on a card dv.taskList(dv.pages().file.tasks .where(t => t.text.includes("#todo"))) but it don't work. The card looks good at first but once I try to check it off it don't work.
Hey Ritchie, I tried it too and you're right, it doesn't get checked off! I'm releasing a video this week about another plugin that might be interesting for you -- it's called Checklist.
Thanks Nicole. I don't use daily notes but could I add inline metadata to give me a dueDate? Like - [ ] Task to do dueDate:: 2022-04-11 Then I could query for overdue, due, and past-due tasks and present them in a tasks note?
Metadata for Dataview works on the page level, unfortunately, not the task/block level. So putting the inline metadata the way you did would apply to everything on that page, not just that task. What you could do is search for text in the task, kind of what I did: `where(t => t.text.includes("dueDate: {{date:YYYY-MM-DD}}")))` If you want to show overdue tasks, you can do that within the js too, but you'll need to parse the date yourself.
Hmmm... Sounds like you may be accessing your vault on different devices? It seems your notes might not be synced correctly. What are you using to sync your notes across devices?
They dataview query only shows todays tasks... so yesterdays notes will show todays tasks.. To me that isn't really useful. specifically if you go to a journal entry of the past.. you will see todays tasks. Can the query be updated to reflect the title of the note? Then it would always show the tasks that were assigned to that day. I love your vids, btw
THEME: Primary (light mode)! :)
Thanks, I'll try it. Great tutorial btw
This advice is gold, and really makes for a useful running to-do list in Obsidian. One thing I've found personally though, is that showing only tasks that are "due today" means that if I miss a day, the task is also missing on the next day... which effectively means that I will not see anything that's also past due. I revised your query, and included three sections in my Daily Note Template. The first shows "tasks due today" as you've shown, the second shows "tasks due soon" which includes the next two days, and the third is "overdue tasks" which includes any before today. This way, if I don't know what date to put on a task, I can maintain a rolling to-do list by simply adding any date, which keeps it separate from other to-do items, and letting the date define where it fits.
The script for "tasks due soon" is:
```dataviewjs
const today = new Date();
today.setHours(0, 0, 0, 0);
const twoDays = new Date(today);
twoDays.setDate(today.getDate() + 2);
function isDateSoon(dateStr) {
const taskDate = new Date(dateStr);
return taskDate > today && taskDate !t.completed)
.where(t => {
const dateRegex = /\d{4}-\d{2}-\d{2}/g;
const dates = t.text.match(dateRegex) || [];
return dates.some(date => isDateSoon(date));
})
);
```
And the script for "Overdue Tasks" is:
```dataviewjs
const today = new Date();
today.setHours(0, 0, 0, 0);
function isDateOverdue(dateStr) {
const taskDate = new Date(dateStr);
return taskDate < today;
}
dv.taskList(
dv.pages()
.file.tasks
.where(t => !t.completed)
.where(t => {
const dateRegex = /\d{4}-\d{2}-\d{2}/g;
const dates = t.text.match(dateRegex) || [];
return dates.some(date => isDateOverdue(date));
})
);
```
I need a video for me, but this seems genuinely solving something I may encounter
One of the best demo's I've seen on RUclips for Obsidian - thank you!
Wow, thank you, Jeff! I appreciate that! Glad this one was useful for you. :)
Hi Nicole. I'm a beginner at Obsidian user but watching your videos makes me feel like I'm a pro. Thank you for the instructive videos.
Thanks so much, Nicole! Just what I was looking for.
The Tasks plugin also works well to collect tasks from the vault by context, e.g. tasks under a particular heading (headings like # idea, # for later, # interesting) or tasks from a particular folder.
I prefer Checklist for this, but yes, there are lots of other ways to do task management in Obsidian. This is just the Dataviewjs way. :)
@@nicolevdh Checklist, yeah, but it makes Obsidian crash on my phones, this may help although I also like the Checklist way
@@nicolevdh I just wish Checklist was integrated with Full Calendar... I need the TiimeBlocking by hour that Full Calendar has..
OMG!!! I have searched for SO LONG to find the js to do this very thing!! I've been looking for a way to have unfinished tasks to show up on newer daily notes and IDKY it took so long to find this vid. tysm
I wish you had more dataviewjs or js content in general for obsidian
Neato!
One tip I've learned is to label certain folders starting with an underscore like "_templates" or "_seedbox" that way I can easily reach them.
Ah, right. I actually rarely look at my folders! I'm always using the Quick Switcher to get from one note to another.
Again I've been trying to figure out this problem on my own and look through hundreds of forms just to stumble on one of your videos that encapsulates and answers my questions perfectly. You've been a great help to me with my Obsidian journey. So thanks yet again!
Here is another +1 point you can use for the annual Obsidian presidential election.
Really happy to hear that, and I LOLed when I read about the +1. ;)
Thank you Nicole. This was super helpful. Really appreciate you taking the time to make these videos!
Happy to hear that, Daniel! :) I enjoy making them so it's nice that others get some use out of them too.
omg these videos are so wonderful! much easier to follow than the medium posts and hopefully faster to put together too!
Oh, yeah, sometimes it's just easier to watch someone do it than to read about it! :) Glad you're liking the videos!
YESS!!! Thanks Nicole! It's a VERY useful code snippet for the non coder like me
Thanks for the inspiration! :)
Finally got me to enable dataview. Had been sitting in my community plugins for a while but I had no idea where/how to start using it. Now my Tasks note is much much much more useful. Thank you
Yay! Happy I convinced you to enable it. :) It's definitely a bit difficult to get started with it, but it's not too bad once you do.
Your videos are always clear, concise and full of value. Thanks for making these
Obsidian is really changing my life.
I'm just so grateful to live in this information era when I can just learn for free how to use this powerful tool .
Thank you Nicole!
You and me both! We are lucky to be alive right now. You have a great day!
This is such a timely video. I've recently been trying out using tasks + dataview in Obsidian to replace Todoist.
Yay! I used to use Todoist too! Hope this helps you out!
I use the todoist community plugin so I have todoist on the road but see the tasks in my daily note
@@senseibas8199 I didn't check to see if there was a community plugin, thanks I'll check this out!
@@Gekitsuu there are two. I recommend using the "todoist sync plugin" it works like dataview with a rendered code block and gives you the least hassle.
It also has a quickadd command to quickly add todoist tasks using hotkeys
Thanks! This will be very helpful and you always explain things so clearly.
Nicole - thanks a lot for sharing - your videos are clear and concise. Obsidian is an excellent tool and you videos are helping me make the most of it
Glad to hear it, David! Thanks for watching! :)
So many things to learn from this video!
Ended up setting up everything except dataviewjs. Wanted to tweak some sorting, and i'm not skilled enough to figure it out. Luckily, Tasks for Obsidian has simpler setup (less code) so that works for me.
I'm just going through all your videos and clicking LIKE! Thank you for the amazing content!
Awww, that's so sweet of you. Thanks! I'm glad you are liking the videos! :)
I love your videos, you create a great content. I am just starting my obsidian journey, and your videos are definitely the best!
You are outstanding... really grateful for your useful and specific tips. My Obsidian is day by day becoming really attractive... thanks
Awesome automation step… now if I can stop procrastinating 😂
This is exactly what I was looking for, thank you so much for providing the code! It is very convenient when combined with the Kanban plugin👍
I just learn obsidian in less than a week. I subscribed to your youtube channel. At first, it is a Notetaker for me. I want a task manager, then I study Logseq. After trying for a while, it is so rigid for me. At last, I go back to you. Viola, it is what I need. Thx. I like your clear present and nice voice. Thx from my heart.
Yay! Thanks for the compliments. I'm very happy I could help you, and welcome to the Obsidian community!
Thank you!
Can you maybe help me with figuring out how to use that same snippet but altering it to show non-completed tasks that are due *before* {{today}}? (So you get a view of overdue tasks for each daily note)
thx!
Hi Nicole, you have awesome videos, why don't you create a full Udemy course about Obsidian paired with DataView (or perhaps the other way around)
Hi Karel, thank you for the compliment! I would eventually like to make a course for sure. It's just a matter of time-- I have a full-time day job so I struggle just to find the time to get videos out in my spare time (luckily I enjoy it)! I was thinking of making an introductory course to Obsidian, but I never considered jumping ahead to tackle something like Dataview. Maybe I should! Thanks for the idea!
@@nicolevdh A basic intro would be good, too, but I suspect more Obsidian users need the next level - a 201, if you will, if not higher.
This is awesome! I didn't know you could add daily note variables into your dataview query. Definitely stealing this idea.
Yeah it's really cool! Dataview just keeps getting better.
Thank you Nicole, youre a life savior! If you use the plugin Natural Language Dates you can optimize even better this idea. :D
Thanks! Glad to hear you like it. I don't actually use that plugin-- I prefer the YYYY-MM-DD format. :) Also didn't want to add a fourth plugin! I thought requiring three plugins was already a lot, hehe.
@@nicolevdh But the plugin NLD is just to use a shortcut to create the link with the daily note...like, ex: the Note A has a due day task to @tomorrow or @5 days from now(with NLD) - its just a lazy way to type the link. 😅
Just a tip if you ever consider!
@@luiseduardovalente9875 Thanks! I've actually used it before, but I didn't really find a need for it. I just like seeing the date, I guess! :) But I'm glad you like it! I know many people do.
Loved this video!
Thanks for sharing your knowledge!
Thank you for the source code…exactly what I’m looking for!
This video covers a lot of ground quickly. Good stuff! 👏👏👏
Thanks! That's what I was hoping to do, so thanks for noticing and letting me know! :)
Using Obsidian for task management, very interesting. I am also surprised how with a few plugins, obsidian is able to add this functionality. What about recurring tasks? Is there a special trick for that?
How do you make the notes have a different title in the tab and in the body of the note? they look the same to me... greetings and thanks
Awesome. I discovered that tasks cannot be indented for this to work, so no indenting subtasks. I also had to change the format to match the titling of my daily notes, but I knew I would have to do that.
Unfortunately, another commenter here reported the same thing - that the Dataview query can't work when indented. I had never tried that!
Glad you were able to make it work for your situation anyway! :)
I really like your videos and the way you explain. You should teach more topics
Thanks so much! :) I plan to keep explaining things about Obsidian for sure. Thanks for the encouragement!
so so useful, I would loooove to se other use cases for dataviewJS!
Thank you! I will put it on the list! Anything in particular you were hoping to see?
@@nicolevdh Oh dunno, really! I believe it is so powerful, but any integration between notes, especially dailies like this, may inspire something!
You Rock! Thanks for these tips!
Dataview is great for this type of stuff I use it daily as it has really helped me organise, what I really wanted to do was to break the tasks based on their tag, as I use the tag to associate it to a project, however, the default behaviour is breaking it based on the page they were made in...
I do that as well-- you can use `groupBy()` for that. There's an example in the docs: blacksmithgu.github.io/obsidian-dataview/api/code-examples/
@@nicolevdh Thank you for this. I had seen this but as I read this it is looking through the yaml metadata for doing the grouping (genre) and not on the content of the task? So ideally I would want something that say ...groupBy(p => p.tags) but it doesn't work for me...
@@stamatispsarras I think I understand. Dataview works primarily on page metadata, not task metadata, and there doesn't seem to be a task.tags endpoint. The best you could do would be to use tags.text, but that would not allow you to group by tag. Maybe consider turning your tags into pages?
Just what I needed. Thanks!
Thanks for this, Nicole. It’s very helpful. I would also love to see more on dataviewjs. I’ve been trying to figure out how to use your script but exclude a folder. In my case I want exclude my templates folder as I like to add tasks to templates but only want to see them when the template is applied. I can’t seem get my head around how to access objects, their functions and properties.
Glad to hear it! For the situation you describe, I would include it in the "where" clause, so that you only get results where the file path does not contain the folder you'd like to exclude. The Dataview documentation is a great help when trying to put together a query as well! blacksmithgu.github.io/obsidian-dataview/
@@nicolevdh Thanks again. It took me a little while to find the correct syntax but I got there. For anyone else following at home I excluded the templates folder with the following: dv.taskList(dv.pages('!"templates"').file.tasks
Thanks for the video. When I create a new note using a template, following your instructions, the title (date) appears twice. Is there a specific reason to use "# {{title}}" instead of leaving this line out of the template? At 8:37 you show the template without the title, "Daily", but not sure how I can maintain the template name under the "templates" folder but not have the template itself not show the name (i.e., "Daily"). - Newbie question, I know.
Hey! It's just down to personal preference. The first title that is shown by default is actually the filename, so it's not part of the body of the file itself. If you have to open up the note or publish it outside of Obsidian, there's no guarantee the filename will always be shown as a title, so I prefer to keep to standard practices for Markdown and include the title as an h1. It's a purely aesthetic thing, so you can definitely decide otherwise.
@@nicolevdh Got it, thanks for the reply.
Hi Nicole. Tried the script in pc and not working. Can you point me to a resource to help me with the syntax? Also, ideas to include overdue tasks.
Merci pour ta chaîne Nicole!
Would love to see you do a video on the pros & cons of using Daily Notes. Is it basically to use it as a running Daily Log vs inserting your date link when in a note? Benefits of Daily Notes (starting from) vs inserting (IE Natural Language plug in)
Great video
Thanks for this comment! I've saved it for future use. It's helpful to know what you'd like to see. :) But just to answer you briefly here, I use Daily Notes as a running log, yes, but I also use it in conjunction with Templates/Templater to prompt myself to remember things. For example, I have things that I'd like to keep track of (such as the quality of my sleep, or whether I got any exercise that day) and things that I'd like to do as a daily habit (like meditating, cultivating gratitude, and processing notes). It's not as much about linking notes to a date; it's more about building daily habits and routines. But I don't think everyone needs to have it. So if what you're doing is working for you, I'd say keep doing it! :)
This theme at 1:00 minute of the video is simple yet enjoyable. Which one is that please?
It's Primary, on light mode! :)
@@nicolevdh Thanks. I'll check it out.
@2:28 "I'm going to go 'comand-o' here" 🤣
I really like the general approach here but what I am missing is
1. A way of seeing which tasks you completed today
2. (a reference to the day it was completed on the old note)
Really nice tool. I'll give it a try!
Hi , is there a way to remove headers from the tasks while using dataviewjs. I just need to remove headings at 7:40
Hey! I don't believe this is possible just yet with the Dataview task integration, but it may be better to ask the developer himself-- perhaps a GitHub issue would persuade him to include that functionality.
I've multiple task under more than one header for the same page. Is it possible to filter only specific header, and show the result via Dataviewjs. Thanks in advance
Hello Nicole, thank you for your teaching. I recently found one plugin can display weekly and monthly plan nicely called "Obsidian-Tasks-Calendar". I am not sure if this plugin is worth for you to generate a tutorial. I cannot understand how that plugin work with different task files. If you have time, you can have a look. Thank you!
When the task is indented inside another block, it doesn't show up in the dataviewjs. Is there a fix for this?
Hmmm, I'd never tried that until you mentioned it, but you're right! I don't know of a fix for it, unfortunately. Perhaps consider using a different plugin like Checklist instead?
Enjoy your vids.. you had me at kapla
Beautiful
hi, do you still use this way of managing tasks or switched to something else?
I do have some tasks in Obsidian but I don't use Dataview-- I use the Checklist plugin.
Hello, thank you very much.
I use the Weekly Notes to collect my ToDos of the week. Behind the ToDos I always put the DuDate in [[]]
My time setting is: DD.MM.YYYY
unfortunately Dataview does not show any results.
When I use
``dataviewjs
dv.taskList(dv.pages().file.tasks
.where(t => !t.completed)
it works. Only the time filtering does not work. Do you have any idea?
Hi, I tried on v1.0.3 and doesn't work, could be change dataviewjs query mode?
Hey Nicole, I am at the beginning of the video and can’t help but marvel at the beautiful theme you are using. Would love to use it. Is it something custom you are using or is it available in the community themes?
Hi! I'm responding via mobile and I don't quite know what theme I used here off the top of my head, but if you check the first (pinned) comment on this video, I usually put the theme there. It's definitely not a custom theme - it's a community theme that anyone can download. :)
Instead of typing on keyboard is it possible to do the same by using stylus on a tablet ?
Nicole, I love this video. You switched between two themes. Which ones did you use? Also, what are the themes you use most often? Thank you!😀
Thank you! Yes, I did, heh. I was using Primary before I realised that that theme doesn't show checkboxes well, so I switched to the default Obsidian theme (light version). I usually use Primary on that demo vault, but on my main vault, I change themes A LOT. I most often use Sanctum, Moonlight, and Everforest (all dark mode).
Good Preso. Most task lists I have seen are presented in a Grid, outlook, notion, ios etc. Is there a way to show tasks in a Grid/table and with relevant data points, like create. date, done date etc.?
Yes! Check out Database Folder right now. There's also another developer I know who is working on rotating views to go back and forth between table view and, say, board view.
@@nicolevdh thank you
I'm having problems with checkboxes from all pages using the plugin 'Checklist' on my Android Phone in the right side menu (Obsidian crashes) so this may help me + it has so much more in it. Thx!
Hello, what is the code to filter by PREFIXES? Thank you
Hay Nicole cmd+enter to paste a checkbox dose not work for me. I’m in Germany and on a Tablet is that why ? I got a keyboard connected to it though
Yep, keyboard shortcuts between desktop and mobile apps are not always the same. Best to check your Hotkeys in Settings to see what they are for you (or to assign your own)!
Hi Nicol,
Thanks for the great Video.
I gave each file in the yaml header a project name. Is there a way to group task by project?
Hi Marc! Yes, you can. Check out the `GROUP BY` command in the Dataview docs here: blacksmithgu.github.io/obsidian-dataview/query/queries/#group-by
@@nicolevdh Hey Nicole, now it works perfectly, thx
how would I make the list display to-dos for the next 14 days
I'm trying to learn more about Obsidian and Nicole's videos are great. One question from this topic, it says that you need tree plugins to manage task like in this video, but do you use something else also, like Checklist-plugin to get this system to work?
Glad you like my videos! :) You CAN use Checklist, but you don't have to. This one just used the Dataview plugin.
And welcome to the Obsidian community!
Thanks so much Nicole, You make things so clear and easy to follow - I've just added the query to my template and it's working beautifully.
Question is there a javascript to Query tasks that have passed their due date but not being checked ? Ie overdue tasks
and also could you javascript a range of dates (Rather than just one day) i.e. all the tasks due this week..?
Thanks Glenn
I really like your videos they are always really helpful and I like the theme you use here. What theme is it?
Thank you, Maxwell! Glad to help. :) This theme is Primary, on light mode. Enjoy!
Hello Nicole , it's a great video as usual ! i have an issue with the date format in the dataviewjs request . it seems to not work ! when i create a new daily note it still appears as {{date:YYYY-MM-DD} in the request. The actual daily notes date is not captured in the request and so the due tasks are not displayed ! when i change the request manually it's working . Am i missing something ? thx!
When you have multiple types of tags, where you want to combine them into a single dataview, that makes it complicated. One would not create a new view every time you want to pick different tags. How could you overcome that ?
Hi, I'm not sure exactly what you mean. If you want multiple tags to be returned, you can keep adding them to the same Dataview query using the OR keyword.
I like the theme you are using what is it called? or where can I get it? Thank you and love your content!
Thanks for watching! :) It's Primary.
This is good,
But seems I did something wrong,
Till hardcoded JS was there it worked once I used `includes("{{date:YYYY-MM-DD}}"` it failed
Thx, great video!
Fantastic! But now I have to figure out how to make it work when I don't get everything done the day before 😆
👋 Nicole. Obsidian looks pretty cool but it seems that in order to get the most out of it, many plug-ins are required. Does too many plug-ins performance?
I think "getting the most out of it" is really subjective. For me, I definitely feel that the plugins add needed functionality to Obsidian and without them, I wouldn't like Obsidian as much.
I'm actually a performance engineer in my day job, so performance is very important to me. Here are some benchmarks and tests run on Obsidian, as well as some other tools: www.goedel.io/p/tft-performance-obsidian . As for the effect of the plugins on performance... it depends what combination of plugins you're using, but no, I haven't found that to be an issue at all, but then I make sure to only install trusted plugins into my main vault. I encourage you to try it out for yourself! :)
@@nicolevdh I appreciate the reply. I realized my question was incomplete, but you knew exactly what I was talking about 🙂. Thanks for the link to the benchmarks. I will take a look.
How come i cant see the "Daily Note" plugin in my obsidian. I am using the new v1.0
Hi, Daily Note is a core plugin - maybe you're looking for it under Community Plugins?
Thank you making the video. is there a way to collect all open task in single view?
No worries! Yes, you can do that using "WHERE !completed" for tasks. :)
Febens Lordeus Thank you!
Hi Nicole, I love your videos. I am new to Obsidian and using it for my medical studies. Is there a specific way I can allocate a task for an item to be reviewed in (for example) 3 days after the note was created? And then in 1 week after it was originally created, and then 4 weeks later?? This would be good to ensure adequate review of notes!! Thanks 🙏
Hi Penelope! Try the Spaced Repetition plugin. That sounds like it may be what you're looking for!
Thank you for this video! This is so awesome. :) But I have a question. Is there a way to set up the code so that once I check off a task, it goes to a "Weekly Accomplishments" and review page? So I want to be able to generate a page at the end of the week that shows all the tasks I've completed that week, and then journaling questions. I have the Weekly Journal set up with a template, and I can get it to do a running list of tasks, but I don't want all of them, just for a certain week, like Week 52 of said year. I researched this and I am finding code that doesn't work. Also, they appear to be using just dataview and not dataviewjs. I know just enough to break things so I'm running in the dark here. :)
Hi Nicole I get TypeError: dv.tasklist is not a function What am I doing wrong?
```dataviewjs
dv.tasklist(dv.pages().file.tasks
.where (t => t.completed)
.where (t => t.text.includes("#Sick")))
```
I am trying to search my students folders and find who has been absent by being sick, vacation, appointment etc but I can't get around this error and I don't know what I'm doing wrong.
Question: in addition to posting TASKS with DUE DATES, how do you recommend tracking specific tasks for specific projects? That is - do you create a separate note for each project (Project Master Project List) and keep them all in one place, or is there a way in which to easily "tag" a task on-the-fly, in any note, and see it in a Task List elsewhere? Thanks in advance --
Hi Jeff! I tend to use the Kanban plugin for projects, and then I do, as you mentioned, tag tasks with the project name. Then, on each project page, I use a Dataview query to pull in all uncompleted tasks with a certain tag.
@@nicolevdh awesome -- is that Dataview code simple? (cough cough)
Thank you so much! I have been looking everywhere for this.
I do not know how to code. Do you know if it would be possible to generate a code for tasks that must be completed each Monday, Tuesday etc, so when I open the daily note, they are automatically there?
Hi! I'm glad you liked it, Luciana! Yes, you can do that with Dataview. Do you mean you want to have recurring tasks shown in the Dataview query according to the day of the week? You could do something like this:
1. First, in your recurring task, add a tag #monday or #tuesday.
2. In your Daily Note template, put the following Dataviewjs script:
```dataviewjs
dv.taskList(dv.pages().file.tasks
.where(t => !t.completed)
.where(t => t.text.includes("#{{date:dddd}}")))
```
When you apply the template to your daily note, you should see the recurring tasks for that day. Hope that helps!
@@nicolevdh Great! I will try this. Thank you very much :)
@@nicolevdh Hey Nicole! I was wondering how I could make a recurring task? For example, I need to create a daily recurring task for checking e-mails and add it to the Daily Notes template so that dataviewjs always adds that task to every Daily Note.
Hey! I know this is a late reply, but I still wanted to say that in that specific use case, the easiest way would probably be to add that task to your Daily template. That way, it will be added to every daily note. Good luck!
How to create the checkbox in Obsidian.
1. Create the hot-key
goto settings => hot keys and search for "Cycle bullet/checkbox" => click on the plus and create a hotkey.
in my case 'ctrl+enter' or 'cmd+enter'
2. How to use it
goto a note a press 'ctrl+enter' once you get a bullet, press twice you get a checkbox
Thanks, Kribo! For others who don't care too much about the hotkey, you can also create a checkbox by typing - [ ] in a new line. :)
@@nicolevdh Ik vertelde gewoon hoe omdat ik op linux it met obsidian en mijn hotkeys zijn niet aangemaakt, allemaal blanko
Ja, geen probleem, ik vind het nuttig voor anderen die Linux/Windows gebruiken. :)
Hello. One question.
I am currently using Notion.
I want to write articles and use ideas more strategic.
Which one do you think offers the best way
Logseq,
Obsidian,
Roam.
I'm undecided between the three.
Which one do you recommend?
Hi! I personally went from using TiddlyWiki > Evernote > Notion > Roam > Obsidian, just to give you an idea of what I've tried. Right now, nothing comes close to Obsidian for my use cases, and it is absolutely the tool I would recommend most.
Here's a video I made on Notion vs Obsidian: ruclips.net/video/AhhFLXfldJQ/видео.html
And here's a video I made on Obsidian vs Roam: ruclips.net/video/AWUk8-6yG2g/видео.html
However, in the end, nobody can/should decide for you. I suggest you try all three for a short amount of time, and then use the one you like the most! Good luck!
i don't know if i'm doing something wrong or the video is outdated but y can't do the dataviewjs
Great video Nicole! Quick question: I didn't find Daily notes plugin. Do you know why? or which other plug in can I use instead?
I found it in Core Plugins :)
Great, yes, it is a core plugin! You beat me to it. Glad you found it anyway. :)
Thank you VERY MUCH ! Works like a charm
Hi Nicole, thank you for your videos! May you please give me a reference for do that but with dataview only, not dataviewjs. Thanks!
Oeh Oeh Oeh I have one I am trying to figure out.
I am trying to get a dataviewjs List from a specific tag (in yaml) but grouped by a different yaml property.
In these lists I would like the yaml property by wich it's grouped to be a header
I will also try to puzzle it out myself
And thank you for the video 🙂
Hey! Have you seen this example from the documentation? blacksmithgu.github.io/obsidian-dataview/api/code-examples/
I also implemented this here, in case it's useful: notes.nicolevanderhoeven.com/Obsidian+Dataview#Display+game+sessions+that+need+processing
@@nicolevdh yeah I came across that as well, have tweeked it a bit to suit my needs and now it's like a charm.😇
I hope the dataview to obsidian publish will be released soon. Then I can say goodbye to notion and only have a calander, obsidian and todoist
The "Tasks" community plugin can pretty much do the same thing without requiring the dataviewjs. Have you tried using it? I'm interested to know how they compare but the Tasks plugin seems easier to use.
Hey! I haven't used it, no. I already have Dataview installed, and Dataview is going to be way more flexible in that you can have it display exactly what you want, how you want it, so I prefer that approach. But you should use whatever works for you! :)
is there a way to create subtasks?
How to put the tasks with upcoming dates in ascending or descending order? If you could show that; then this video will be of a great help
Thanks for the videos. Can you autopopulate Kanban with dataviewjs ? I tried putting this on a card dv.taskList(dv.pages().file.tasks
.where(t => t.text.includes("#todo"))) but it don't work. The card looks good at first but once I try to check it off it don't work.
Hey Ritchie, I tried it too and you're right, it doesn't get checked off! I'm releasing a video this week about another plugin that might be interesting for you -- it's called Checklist.
Thanks Nicole. I don't use daily notes but could I add inline metadata to give me a dueDate?
Like - [ ] Task to do dueDate:: 2022-04-11
Then I could query for overdue, due, and past-due tasks and present them in a tasks note?
Metadata for Dataview works on the page level, unfortunately, not the task/block level. So putting the inline metadata the way you did would apply to everything on that page, not just that task.
What you could do is search for text in the task, kind of what I did: `where(t => t.text.includes("dueDate: {{date:YYYY-MM-DD}}")))`
If you want to show overdue tasks, you can do that within the js too, but you'll need to parse the date yourself.
@@nicolevdh gotcha, I'll have a play with it when semester ends
Hi Nicole, I've got an issue where conflicted duplicate notes are coming up regularly. Just wondering if you knew why that's happening and any fixes?
Hmmm... Sounds like you may be accessing your vault on different devices? It seems your notes might not be synced correctly. What are you using to sync your notes across devices?
@@nicolevdh I'm using drive sync to save all my notes locally on my phone and on Google drive. However, I'm currently only using the one device. ?
@@kieranwhite4856 Hmmm, it might be a Google Drive thing! Maybe try Obsidian Sync or iCloud?
@@nicolevdh I turned off auto sync and it's fix the problem I think. I'll just sync manually every now and then.
They dataview query only shows todays tasks... so yesterdays notes will show todays tasks.. To me that isn't really useful. specifically if you go to a journal entry of the past.. you will see todays tasks. Can the query be updated to reflect the title of the note? Then it would always show the tasks that were assigned to that day.
I love your vids, btw
Great video ! How would code change if one were to use Templater instead of Templates ????
Hey, thanks! Instead of `{{date:YYYY-MM-DD}}`, it would be ``. :)