[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Orgmode] org-mode and appointments
From: |
Bernt Hansen |
Subject: |
[Orgmode] org-mode and appointments |
Date: |
Mon, 25 Feb 2008 18:09:20 -0500 |
User-agent: |
Gnus/5.11 (Gnus v5.11) Emacs/22.1 (gnu/linux) |
Hi Bastien,
I'm using your function for creating appointments:
,----[ my-org-agenda-to-appt in .emacs ]
| ;; Make appt aware of appointments from the agenda
| (defun my-org-agenda-to-appt (&optional filter)
| "Activate appointments found in `org-agenda-files'.
| When prefixed, prompt for a regular expression and use it as a
| filter: only add entries if they match this regular expression.
|
| FILTER can be a string. In this case, use this string as a
| regular expression to filter results.
|
| FILTER can also be an alist, with the car of each cell being
| either 'headline or 'category. For example:
|
| '((headline \"IMPORTANT\")
| (category \"Work\"))
|
| will only add headlines containing IMPORTANT or headlines
| belonging to the category \"Work\"."
| (interactive "P")
| (require 'org)
| (require 'calendar)
| (if (equal filter '(4))
| (setq filter (read-from-minibuffer "Regexp filter: ")))
| (let* ((cnt 0) ; count added events
| (today (org-date-to-gregorian
| (time-to-days (current-time))))
| (files org-agenda-files) entries file)
| ;; Get all entries which may contain an appt
| (while (setq file (pop files))
| (setq entries
| (append entries
| (org-agenda-get-day-entries
| file today
| :timestamp :scheduled :deadline))))
| (setq entries (delq nil entries))
| ;; Map thru entries and find if they pass thru the filter
| (mapc
| (lambda(x)
| (let* ((evt (org-trim (get-text-property 1 'txt x)))
| (cat (get-text-property 1 'org-category x))
| (tod (get-text-property 1 'time-of-day x))
| (ok (or (null filter)
| (and (stringp filter) (string-match filter evt))
| (and (listp filter)
| (or (string-match
| (cadr (assoc 'category filter)) cat)
| (string-match
| (cadr (assoc 'headline filter)) evt))))))
| ;; FIXME Shall we remove text-properties for the appt text?
| ;; (setq evt (set-text-properties 0 (length evt) nil evt))
| (when (and ok tod)
| (setq tod (number-to-string tod)
| tod (when (string-match
| "\\([0-9]\\{1,2\\}\\)\\([0-9]\\{2\\}\\)" tod)
| (concat (match-string 1 tod) ":"
| (match-string 2 tod))))
| (appt-add tod evt)
| (setq cnt (1+ cnt))))) entries)
| (message "Added %d event%s for today" cnt (if (> cnt 1) "s" ""))))
`----
and this has been working pretty well for me. I really appreciate you
posting this on the list (a long time ago :) )
I have a function key binding to rerun this function when I add new
appointments for today.
,----[ Activate the appointments in .emacs ]
| (global-set-key (kbd "<f9> a") 'my-org-agenda-to-appt)
| ;; Get appointments for today
| (my-org-agenda-to-appt)
| (appt-activate t)
`----
I have the following wishlist items for this function but don't
currently have the lisp skills to fix it.
- [ ] Clear the appointment list when rerunning the
my-org-agenda-to-appt
If I move an appointment to anther day and use f9-a the old
appointment reminder is still there and bugs me when the time
rolls around.
I only use org appointment entries so clearing the list should be
trivial. I don't use diary entries anymore.
- [ ] Future deadlines are reported for today.
I have an installation deadline at 8PM on Thursday. Since it's a
deadline it shows up in my agenda today with a 3 day warning...
and my-org-agenda-to-appt picks this up and makes an appointment
for today -- which is incorrect. I don't need an appointment for
this until Thursday.
- [ ] If I leave Emacs running overnight is there a good way to reset
the appointment list at midnight?
What do I need to do to this function to fix these issues?
Any input is greatly appreciated :)
Regards,
Bernt
- [Orgmode] org-mode and appointments,
Bernt Hansen <=
- Re: [Orgmode] org-mode and appointments, Carsten Dominik, 2008/02/26
- Re: [Orgmode] org-mode and appointments, Carsten Dominik, 2008/02/26
- Re: [Orgmode] org-mode and appointments, Bernt Hansen, 2008/02/26
- Re: [Orgmode] org-mode and appointments, Russell Adams, 2008/02/26
- Re: [Orgmode] org-mode and appointments, Russell Adams, 2008/02/27
- [Orgmode] Re: org-mode and appointments, Bernt Hansen, 2008/02/27
- [Orgmode] Re: org-mode and appointments, Bernt Hansen, 2008/02/27
- Re: [Orgmode] Re: org-mode and appointments, Russell Adams, 2008/02/28
- Re: [Orgmode] Re: org-mode and appointments, Nick Dokos, 2008/02/28
[Orgmode] Re: org-mode and appointments, Bastien, 2008/02/26