Matt Lundin wrote: >Nathaniel Flath writes: >> I have a todo state, PENDING, that I organize tasks that I cannot >> perform immediately.  Is there a way to configure org-todoconfigure so >> that when a task is switched to PENDING, if it has a scheduled date >> that date is removed? >You could use the hook org-after-todo-state-change-hook. E.g. >--8<---------------cut here---------------start------------->8--- >(defun my-org-pending-remove-deadline () > (when (equal (org-entry-get nil "TODO") "PENDING") > (org-remove-timestamp-with-keyword org-deadline-string))) >(add-hook 'org-after-todo-state-change-hook 'my-org-pending-remove-deadline) >--8<---------------cut here---------------end--------------->8--- You can actually skip the `org-entry-get' as "The new state (a string with a TODO keyword, or nil) is available in the Lisp variable `state'"[1]. ,---- | (defun my-org-pending-remove-deadline () | (when (string= state "PENDING") | (org-remove-timestamp-with-keyword org-deadline-string))) `---- Another solution: use `org-trigger-hook' and `org-schedule': ,---- | (defvar dmj/org-pending-keywords '("PENDING") | "List of keywords denoting pending state of an headline.") | | (defun dmj/org-remove-schedule-when-pending (plist) | "Remove schedule when todo state changes to pending." | (let ((type (plist-get plist :type)) | (to (plist-get plist :to))) | (when (and (eq type 'todo-state-change) | (member to dmj/org-pending-keywords)) | (org-schedule 'remove)))) `---- HTH -- David [1] http://orgmode.org/worg/org-configs/org-hooks.php#sec-1.13 -- OpenPGP... 0x99ADB83B5A4478E6 Jabber.... dmjena@jabber.org Email..... maus.david@gmail.com