Using template file with file+head+olp

Hello,

I find that specifying a template file doesn’t work. I get an org file with only the Log heading, with the capture going under the heading.


        ("y" "Daily Log Entry" entry "** %<%I:%M %p>: %?"
         :target (file+head+olp "%<%Y-%m-%d>.org"
                               (file "~/org/roam/templates/daily_template.org")
                                ("Log"))
         :unnarrowed t)

However, when I have a string specifying the template contents like as this:

        ("y" "Daily Log Entry" entry "** %<%I:%M %p>: %?"
         :target (file+head+olp "%<%Y-%m-%d>.org"
                              "#+title: %<%Y-%m-%d>\n\n* Short List\n\n* Log\n:PROPERTIES:\n:VISIBILITY: children\n:END:\n"
                                ("Log"))
         :unnarrowed t)

the file is populated with that string.

Is it not possible to use a template file with file+head+olp?

Hi @troam

I’m also interested in a single daily file, or one per year.

Any success using datetree + olp?

Regards, Ralf

ofcourse it is possible - I do it too and I think its a very rational way to organise.

(add-to-list 'org-roam-dailies-capture-templates
	     '("d" "day-entry" entry
	       "* %<%d-%m-%Y> \n\n%?"
	       :target (file+datetree "%<%Y>.org" month)
	       :empty-lines 1
	       :unnarrowed t
	       :jump-to-captured t))

Does this work for you? If you use the latest version of org-roam it will put id on every captured entry. We can ofcourse even tune this to our desire.

Hi @akashp ,

thanks for your fast reply. Meanwhile I did the setup on myself:

#+begin_src emacs-lisp;; Caution: creates timestamps with Dayname: 2025-10-10 Friday;; (setq org-datetree-add-timestamp-format “%Y-%m-%d”)

(setq org-roam-dailies-capture-templates
    '((“d” “default” plain
       “**** %?”
       :target (file+datetree “%<%Y>.org” day))))
#+end_src

I also creates a script to convert my old dailies into the new file-format yyyy.org:

org-roam_convert_dailies.py on CodeBerg cu, ramon

1 Like