Files
memex/ellama-sessions/Emacs function for org-mode (Open AI).org
2026-03-15 14:37:05 -04:00

2.0 KiB

User:

Write an emacs function that takes an org header with a property :CREATED: [2009-07-27 Mon 17:12] and moves the header to an org-roam-dailies node with the same date 2009-07-27

Ellama:

Here's a basic Emacs Lisp function named move-org-header-to-daily-node you could use as a starting point. The function first extracts the :CREATED: property from the current org mode header, then navigates to a file with the same date under your org-roam-dailies directory, and finally moves the selected subtree to that file.

(defun move-org-header-to-daily-node ()
  "Find an org header's :CREATED: property and move it to an org-roam-dailies node with the same
  date."
  (interactive)
  (let* ((created-prop (org-entry-get nil "CREATED"))
         (date (when created-prop (substring created-prop 1 11)))
         (org-roam-dir (file-truename (expand-file-name "~/org-roam-dir")))  ;; replace with your
         actual org-roam directory
         (daily-file-path (concat org-roam-dir "/daily/" date ".org")))
    (if (and created-prop date (file-exists-p daily-file-path))
        (progn
          (org-cut-subtree)
          (find-file daily-file-path)
          (goto-char (point-max))
          (org-paste-subtree))
      (error "Cannot move header because :CREATED: property or corresponding org-roam-dailies file
      is missing"))))

This function assumes that you're at the header you want to move when you call it, and it can't handle situations where the :CREATED: property is missing or malformed, or if the corresponding date's file doesn't exist in the org-roam-dailies directory. You will need to replace "~/org-roam-dir" with your actual org-roam directory.

Remember that custom Lisp functions can be bound to a key in your Emacs configuration so you easily can call them whenever you want without having to type M-x and the function name every time.

In a real-world usage case, tweaking this function or writing other functions to add error handling and to create the missing dailies nodes would likely be a good idea.