Simple string template
(setq denote-templates
'((meeting . "* Agenda\n\n* Notes\n\n* Action items\n")))
Use concat to make long strings easier to read and maintain
;;
(setq denote-templates
`((report . ,(concat "* Introduction\n\n"
"* Methodology\n\n"
"* Results\n\n"
"* Conclusion\n\n"))))
Use a function that returns a string
(defun my-denote-template-for-todo ()
"Return a todo list template."
(concat "* Tasks\n\n"
"- [ ] Task 1\n"
"- [ ] Task 2\n"
"- [ ] Task 3\n\n"
"* Notes\n\n"))
(setq denote-templates
`((todo . my-denote-template-for-todo)))
Use a function with dynamic content
(defun my-denote-template-with-date ()
"Return a template with today's date."
(concat "* Created: " (format-time-string "%Y-%m-%d") "\n\n"
"* Notes\n\n"))
(setq denote-templates
`((dated-note . my-denote-template-with-date)))