emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] Adding an item to the agenda from the agenda view


From: Manuel Hermenegildo
Subject: Re: [O] Adding an item to the agenda from the agenda view
Date: Mon, 5 Mar 2018 18:50:09 +0100

I enclose some code that I find quite useful for this purpose (i.e.,
to get a similar "feel" to inserting tasks in a traditional
agenda). It basically uses capture but speeds things up a bit and
allows taking times from an agenda time grid. Cheers, --Manuel


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; A handy shortcut to use capture in today in agenda
;; 
;; The idea is that you type "+" while at an agenda day, fill in the
;; TODO that pops up, and type "C-CC-c": the TODO gets added to the
;; first file in your org-agenda-files, after an "* Auto-inserted
;; tasks" entry. It also tries to capture the time if you are on an
;; agenda schedule.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Use the current date when possible
(setq org-capture-use-agenda-date t)
;; Recalculate agenda after captures
(add-hook 'org-capture-after-finalize-hook 'org-agenda-redo)
;; Key binding (+)
(add-hook 
 'org-mode-hook
 (lambda ()
   (define-key org-agenda-keymap   "+" 'my-org-agenda-capture-in-date-at-point)
   (define-key org-agenda-mode-map "+" 'my-org-agenda-capture-in-date-at-point)
 ))
;; Quick interface to capture
(defun my-org-agenda-capture-in-date-at-point ()
  "Call parts of `org-capture' with the date at point (and time if available)."
  (interactive)
  (if (not (eq major-mode 'org-agenda-mode))
      (user-error "You cannot do this outside of agenda buffers")
    (let ((org-overriding-default-time (org-get-cursor-date t)))
      ; (print (concat "*** " (format-time-string "%F %T" 
org-overriding-default-time)))
      (org-capture 1 "+")
      )))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Connection w/org-capture
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; The org file in which tasks are inserted. An entry:
;; "* Auto-inserted tasks"
;; should exist in that file. 
;; In this case we take the first org file in org-agenda-files:
(setq org-default-notes-file (car org-agenda-files))
;; The capture template (You may have other org-capture-templates --
;; in that case simply add this one to the list)
(setq org-capture-templates 
'(("+" "Special template used by + keybinding" entry 
   (file+headline "" "Auto-inserted tasks")
   "** TODO %? %(if (string= (substring \"%T\" 16 21) \"00:00\") \"%t\" \"%T\")"
   :prepend t :empty-lines-after 1)
  ))


On Monday, March 5, 2018 at 10:31:28 (+0000), Eric S Fraga wrote:
 > On Monday,  5 Mar 2018 at 09:05, Neil Jerram wrote:
 > > Eric,
 > >
 > > IIUC, that would add an entry to the 'diary' file.
 > 
 > Hi Neil,
 > 
 > You are correct.  However, if you have defined org-agenda-diary-file, an
 > org entry is added via org-agenda-diary-entry-in-org-file.
 > 
 > > I thought perhaps that Shérab meant something different, namely to
 > > capture a new TODO item that was scheduled for that date.
 > 
 > Maybe.  The post was vague.  I read it the other way.  Shérab?
 > 
 > For TODO, org-agenda-capture (bound to "k" I believe?) already does what
 > you think Shérab wanted, I would have thought?  What is missing?
 > 
 > For me, looking at dates in the agenda is about checking availability
 > and this usually means I am looking at creating a new appointment.  "i
 > d" is perfect for this.
 > 
 > 
 > -- 
 > Eric S Fraga via Emacs 27.0.50, Org release_9.1.6-191-g90607d
 > x[DELETED ATTACHMENT signature.asc, application/pgp-signature]

-- 
-------------------------------------------------------------------------
 Manuel Hermenegildo                       address@hidden
-------------------------------------------------------------------------



reply via email to

[Prev in Thread] Current Thread [Next in Thread]