Você deve poder usar o function
formulário de destino para fazer isso:
(defun my/org-file-by-date ()
"Create an Org file with current time as name."
(find-file (format-time-string "~/org/%Y-%m-%d--%H-%M-%S.org")))
(add-to-list 'org-capture-templates
'("x" "Template Name" plain
(function my/org-file-by-date)
"Capture template contents"))
Edição 2 : o código passado para um file
formulário ou similar não é avaliado até o tempo de captura, portanto, há uma maneira mais compacta de fazer isso. Veja a resposta de Erik Sjöstrand para um exemplo.
Editar 1 : para obter funcionalidades semelhantes sem passar pela interface de captura, você pode usar funções semelhantes a estas.
(defun my/org-file-by-date-with-inline-skeleton ()
"Create Org file from skeleton with current time as name."
(interactive)
(find-file (format-time-string "~/org/%Y-%m-%d--%H-%M-%S.org"))
(insert "Skeleton contents"))
(defun my/org-file-by-date-with-file-skeleton ()
"Create Org file from skeleton file with current time as name."
(interactive)
(let ((filename (format-time-string "~/org/%Y-%m-%d--%H-%M-%S.org")))
(copy-file "path/to/skeleton/file" filename)
(find-file filename)))