# Dailies capture templates best practices

**URL:** <https://org-roam.discourse.group/t/dailies-capture-templates-best-practices/1043>\
**Category:** Troubleshooting\
**Created:** [December 9, 2020, 2:24am UTC](https://org-roam.discourse.group/t/dailies-capture-templates-best-practices/1043 "2020-12-09T02:24:24Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![joshrule](https://avatars.discourse-cdn.com/v4/letter/j/6bbea6/32.png) [@joshrule](https://org-roam.discourse.group/u/joshrule)\
**Post date:** [December 9, 2020, 2:24am UTC](https://org-roam.discourse.group/t/dailies-capture-templates-best-practices/1043/1 "2020-12-09T02:24:24Z")

</div>

Hi, all—just getting my feet wet with `org-roam`. Thanks for creating something so wonderful.

I’ve used `org-mode` for a few years and am intrigued by both zettelkasten and Roam Research but don’t really have experience with either.

My question: **what best practices are there for adding content to daily notes?**

In particular, I currently have a capture template for `org-mode` that sets up a daily note that gets dumped into a date tree with slots for a gratitude journal, making a plan for the day, collecting random notes, and a brief daily review. I create the entire day’s template at the beginning of the day and then fill it in as I go along. This template is a few dozen lines of text, so I maintain it in a [template file](https://orgmode.org/manual/Template-elements.html#Template-elements) (i.e. instead of something like `"%?"`, the template definition is `(file "path/to/template.org")`).

It looks like I could replicate something along these lines with a really complex `:head` tag in a `org-roam-dailies-capture-templates` entry, but that feels a bit kludgy. I’m wondering if the recommended practice would be to:

1. use a template file (tried this, but I keep getting errors about using the wrong argument type)
2. factor each item (i.e. gratitude journal entry, daily plan, daily review, etc.) into a separate capture template; OR
3. put these kinds of things somewhere else (this isn’t really what people are discovering to be the best use for dailies; OR
4. Something else entirely 🙂

I realize any one of these probably _could_ work, but I’m interested in best practices here regarding how to add to dailies and really, any sorts of developing best practices for using dailies. Thanks!

---

<div class="post-metadata">

**Author:** ![brab](https://yyz2.discourse-cdn.com/free1/user_avatar/org-roam.discourse.group/brab/32/531_2.png) [@brab](https://org-roam.discourse.group/u/brab)\
**Post date:** [December 9, 2020, 7:33am UTC](https://org-roam.discourse.group/t/dailies-capture-templates-best-practices/1043/2 "2020-12-09T07:33:00Z")

</div>

I use the `:head` argument here:

```lisp
    (setq org-roam-dailies-capture-templates
          (let ((head "#+title: %<%Y-%m-%d (%A)>\n#+startup: showall\n* [/] Do Today\n* [/] Maybe Do Today\n* Journal\n"))
            `(("j" "journal" entry
               #'org-roam-capture--get-point
               "* %<%H:%M> %?"
               :file-name "daily/%<%Y-%m-%d>"
               :head ,head
               :olp ("Journal"))
              ("t" "do today" item
               #'org-roam-capture--get-point
               "[] %(princ as/agenda-captured-link)"
               :file-name "daily/%<%Y-%m-%d>"
               :head ,head
               :olp ("Do Today")
               :immediate-finish t)
              ("m" "maybe do today" item
               #'org-roam-capture--get-point
               "[] %(princ as/agenda-captured-link)"
               :file-name "daily/%<%Y-%m-%d>"
               :head ,head
               :olp ("Maybe Do Today")
               :immediate-finish t))))

```

I have factored the `head` in a `let` binding, and you could use elisp code to fetch your template at that point.

---

<div class="post-metadata">

**Author:** ![joshrule](https://avatars.discourse-cdn.com/v4/letter/j/6bbea6/32.png) [@joshrule](https://org-roam.discourse.group/u/joshrule)\
**Post date:** [December 9, 2020, 10:49pm UTC](https://org-roam.discourse.group/t/dailies-capture-templates-best-practices/1043/3 "2020-12-09T22:49:15Z")

</div>

Thanks! I saw [your earlier post](https://org-roam.discourse.group/t/daily-task-management-with-org-agenda-and-org-roam-dailies/989) about this setup, but I really like the way you’ve refactored the `:head` argument out using `let` to clean things up. It looks like you create top-level headings as buckets for each kind of content and then use `:olp` to drop things into each bucket as needed. That seems like a cleaner approach than the template I’m using now.

Also, I like your suggestion to use the `let` statement to read in a file template. It would be nice if dailies allowed file templates like `org-roam-capture-templates` does. I’ve started [another thread](https://org-roam.discourse.group/t/using-template-files-in-dailies-capture-templates/1044/2) to figure out why there’s a difference there.

edit: second paragraph
