Oh dear, I shouldn't have used `atomic-chrome' to format the message in Gmail. So here's a revised version. Dear All, This patch adds the option to provide function and symbol for headline and olp for org-capture-templates. By that, I mean you can set the org-capture-templates in the following manner: (org-capture-templates `(("t" "Todo" entry (file+headline ,file (lambda () "A")) "** H1 %?"))) (org-capture-templates `(("t" "Todo" entry (file+headline ,file test-org-capture/entry/headline) "** H1 %?"))) Where `test-org-capture/entry/headline' is a variable/symbol. (org-capture-templates `(("t" "Todo" entry (file+olp ,file (lambda () '("A" "B"))) "* H1 %?"))) (org-capture-templates `(("t" "Todo" entry (file+olp ,file test-org-capture/entry/file+olp) "* H1 %?"))) Where `test-org-capture/entry/file+olp' is a variable/symbol. I also added a few more unit tests for the targets `file+olp' and `file+olp+datetree' to verify my new features and existing features. However, I just realized that the suggestion provided in https://lists.gnu.org/archive/html/emacs-orgmode/2024-05/msg00216.html might not work how I was hoping for. Basically, I wanted it to be possible to search for headlines and even outline paths in the buffer while in the function. But, by expanding outline-path before setting the buffer (by calling outside of `org-find-olp') that becomes infeasible.