Adam Porter <a...@alphapapa.net> writes: > org-ql would make this pretty easy, I think. Use an org-ql query to > select entries, and for the :action function, use a simple function that > copies the entry or subtree and yanks it into a buffer. Then save that > buffer to a file.
Yes, it is. Although just picking some entries from huge org-mode base and write them into separate file is a base feature of org-mode itself. org-ql package just making the process of finding entries of interest much easier and faster. John Sturdy <jcg.stu...@gmail.com> writes: > I'd like to be able to export agendas as org-mode files If you're looking into the pure org-mode approach, then what you're looking for ~org-agenda-write~ function or custom agenda view written with exporting in mind. In order to export to org all you need to do is to specify .org extension. https://orgmode.org/manual/Exporting-agenda-views.html I was using this small snippet to export some of my agenda seacrhes: #+begin_src emacs-lisp (org-agenda nil "a") (org-agenda-write "~/example.org" nil t "*Org Agenda*") #+end_src Be aware that this will regenerate your *Org Agenda* buffer, so either use sticky agendas or export agendas in separate emacs process. But I would highly recommend using org-ql for these purpouses. Besides pretty solid and easy-to-use interface it is noticably faster. Here is the snippet I am currently using to export all subtress directly tagged with :info: to the separate file. (Sorry for the lack of proper parametrisation). #+begin_src emacs-lisp (defun org-user/store-info () (let ((file "~/org/cals/info.org") (heading (org-format-outline-path (org-get-outline-path t)))) (save-excursion (org-copy-subtree) (find-file file) (end-of-buffer) (org-paste-subtree) (org-edit-headline heading)))) (defun org-user/export-info () "Export all information entries into one file." (find-file "~/org/cals/info.org") (erase-buffer) (insert "#+TITLE: Information") (org-ql-select (org-agenda-files) '(tags-local "info") :action #'org-user/store-info) (save-buffer)) #+end_src You need to invoke (org-user/export-info), obviosuly.