emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* org-mode and appointments
@ 2008-02-25 23:09 Bernt Hansen
  2008-02-26 16:06 ` Carsten Dominik
  2008-02-26 16:19 ` Bastien
  0 siblings, 2 replies; 15+ messages in thread
From: Bernt Hansen @ 2008-02-25 23:09 UTC (permalink / raw)
  To: emacs-orgmode

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

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: org-mode and appointments
  2008-02-25 23:09 org-mode and appointments Bernt Hansen
@ 2008-02-26 16:06 ` Carsten Dominik
  2008-02-26 16:09   ` Carsten Dominik
  2008-02-26 16:19 ` Bastien
  1 sibling, 1 reply; 15+ messages in thread
From: Carsten Dominik @ 2008-02-26 16:06 UTC (permalink / raw)
  To: Bernt Hansen; +Cc: emacs-orgmode

Hi Bernt,

Bastien is quite busy, so let me replay

On Feb 26, 2008, at 12:09 AM, Bernt Hansen wrote:

> 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.

In this case, setting `appt-time-msg-list' to nil before calling my- 
org-agenda-to-appt
should be fine.  BTW, org.el contains `org-agenda-to-appt' which is a  
very slightly improved
version of this function, so no need to keep it in .emacs.

> - [ ] 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.


Do

    (let ((org-deadline-warning-days 0))

around the call.  Actually, yes, this should be part f org-agenda-to- 
appt,
I will put it in.  But for now you can do it in your update function.
There is a bug in the documentation of org-deadline-warning-days saying
that only negative numbers will be enforced.  In fact, 0 will also
be enforced.

> - [ ] If I leave Emacs running overnight is there a good way to reset
>       the appointment list at midnight?

Take a look at the function `run-at-time'.  This could be set up  
in .emacs, better to not
execute this each time you update your appointment list.

So to summarize, this is really all you need in .emacs:

;; Get appointments for today
(global-set-key (kbd "<f9> a") 'my-org-agenda-to-appt)
(defun my-org-agenda-to-appt ()
   (interactive)
   (let ((org-deadline-warning-days 0))    ;; will be automatic in org  
5.23
     (org-agenda-to-appt)))
(my-org-agenda-to-appt)
(appt-activate t)
(run-at-time "24:01" nil 'my-org-agenda-to-appt)

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: org-mode and appointments
  2008-02-26 16:06 ` Carsten Dominik
@ 2008-02-26 16:09   ` Carsten Dominik
  2008-02-26 16:14     ` Bernt Hansen
  2008-02-27  1:01     ` Russell Adams
  0 siblings, 2 replies; 15+ messages in thread
From: Carsten Dominik @ 2008-02-26 16:09 UTC (permalink / raw)
  To: Carsten Dominik; +Cc: Bernt Hansen, emacs-orgmode


On Feb 26, 2008, at 5:06 PM, Carsten Dominik wrote:

[...]

I forgot to clear the list:

So to summarize, this is really all you need in .emacs:

;; Get appointments for today
(global-set-key (kbd "<f9> a") 'my-org-agenda-to-appt)
(defun my-org-agenda-to-appt ()
  (interactive)
  (setq appt-time-msg-list nil)
  (let ((org-deadline-warning-days 0))    ;; will be automatic in org  
5.23
    (org-agenda-to-appt)))
(my-org-agenda-to-appt)
(appt-activate t)
(run-at-time "24:01" nil 'my-org-agenda-to-appt)

>

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: org-mode and appointments
  2008-02-26 16:09   ` Carsten Dominik
@ 2008-02-26 16:14     ` Bernt Hansen
  2008-02-27  1:01     ` Russell Adams
  1 sibling, 0 replies; 15+ messages in thread
From: Bernt Hansen @ 2008-02-26 16:14 UTC (permalink / raw)
  To: Carsten Dominik; +Cc: emacs-orgmode

Carsten Dominik <carsten.dominik@gmail.com> writes:

> On Feb 26, 2008, at 5:06 PM, Carsten Dominik wrote:
>
> [...]
>
> I forgot to clear the list:
>
> So to summarize, this is really all you need in .emacs:
>
> ;; Get appointments for today
> (global-set-key (kbd "<f9> a") 'my-org-agenda-to-appt)
> (defun my-org-agenda-to-appt ()
>  (interactive)
>  (setq appt-time-msg-list nil)
>  (let ((org-deadline-warning-days 0))    ;; will be automatic in org
> 5.23
>    (org-agenda-to-appt)))
> (my-org-agenda-to-appt)
> (appt-activate t)
> (run-at-time "24:01" nil 'my-org-agenda-to-appt)
>
>>

Thanks!!

-Bernt

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: org-mode and appointments
  2008-02-25 23:09 org-mode and appointments Bernt Hansen
  2008-02-26 16:06 ` Carsten Dominik
@ 2008-02-26 16:19 ` Bastien
  1 sibling, 0 replies; 15+ messages in thread
From: Bastien @ 2008-02-26 16:19 UTC (permalink / raw)
  To: org-mode list; +Cc: Bernt Hansen

(Resending to the list)

Hi Bernt,

Bernt Hansen <bernt@norang.ca> writes:

> I'm using your function for creating appointments:
>
> ,----[ my-org-agenda-to-appt in .emacs ]

This function is now part of org-mode and is named `org-agenda-to-appt'.
It is safer to use the version shipped with Org than the one on the web.

> 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

Yes, I've fixed this.  This should also handle the case where people
still use diary appointments.

>  - [ ] Future deadlines are reported for today.

I've also fixed this.

>  - [ ] If I leave Emacs running overnight is there a good way to reset
>        the appointment list at midnight?

Maybe we should consider having `org-agenda-to-appt-activate' doing a
similar job than `appt-activate': check for new appts (in agendas) at 
a specific time and when agenda files are saved. 

In the meantime, you can do this manually with a cron job or
`run-at-time' (See C-h f run-at-time RET) 

Hope this helps...

-- 
Bastien

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: org-mode and appointments
  2008-02-26 16:09   ` Carsten Dominik
  2008-02-26 16:14     ` Bernt Hansen
@ 2008-02-27  1:01     ` Russell Adams
  2008-02-28  0:55       ` Russell Adams
  1 sibling, 1 reply; 15+ messages in thread
From: Russell Adams @ 2008-02-27  1:01 UTC (permalink / raw)
  To: emacs-orgmode

Great combined feature:

http://alfredobuttari.wordpress.com/2008/02/08/emacs-appt-mode-reminders-with-gtk-popups/

I'm still trying to get this to work reliably, either appointments or
calling out to a gtk popup, but I look forward to using it soon.

Thanks.

On Tue, Feb 26, 2008 at 05:09:39PM +0100, Carsten Dominik wrote:
> 
> On Feb 26, 2008, at 5:06 PM, Carsten Dominik wrote:
> 
> [...]
> 
> I forgot to clear the list:
> 
> So to summarize, this is really all you need in .emacs:
> 
> ;; Get appointments for today
> (global-set-key (kbd "<f9> a") 'my-org-agenda-to-appt)
> (defun my-org-agenda-to-appt ()
>  (interactive)
>  (setq appt-time-msg-list nil)
>  (let ((org-deadline-warning-days 0))    ;; will be automatic in org  
> 5.23
>    (org-agenda-to-appt)))
> (my-org-agenda-to-appt)
> (appt-activate t)
> (run-at-time "24:01" nil 'my-org-agenda-to-appt)
> 
> >
> 
> 
> 
> _______________________________________________
> Emacs-orgmode mailing list
> Remember: use `Reply All' to send replies to the list.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode


------------------------------------------------------------------
Russell Adams                            RLAdams@AdamsInfoServ.com

PGP Key ID:     0x1160DCB3           http://www.adamsinfoserv.com/

Fingerprint:    1723 D8CA 4280 1EC9 557F  66E8 1154 E018 1160 DCB3

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: org-mode and appointments
  2008-02-27  1:01     ` Russell Adams
@ 2008-02-28  0:55       ` Russell Adams
  2008-02-28  1:04         ` Bernt Hansen
  0 siblings, 1 reply; 15+ messages in thread
From: Russell Adams @ 2008-02-28  0:55 UTC (permalink / raw)
  To: emacs-orgmode

Ok, so how far in advance is appt supposed to alert you?

I'm testing this, and I've gotten zenity to do a popup, and I've tied
the refresh of the appt list to the agenda refresh with:

(add-hook 'org-finalize-agenda-hook 'my-org-agenda-to-appt)

I'm testing a series of timings before I start relying on this, and
trying to understand the behavior.

Any comments?

Thanks.

On Tue, Feb 26, 2008 at 07:01:15PM -0600, Russell Adams wrote:
> Great combined feature:
> 
> http://alfredobuttari.wordpress.com/2008/02/08/emacs-appt-mode-reminders-with-gtk-popups/
> 
> I'm still trying to get this to work reliably, either appointments or
> calling out to a gtk popup, but I look forward to using it soon.
> 
> Thanks.
> 
> On Tue, Feb 26, 2008 at 05:09:39PM +0100, Carsten Dominik wrote:
> > 
> > On Feb 26, 2008, at 5:06 PM, Carsten Dominik wrote:
> > 
> > [...]
> > 
> > I forgot to clear the list:
> > 
> > So to summarize, this is really all you need in .emacs:
> > 
> > ;; Get appointments for today
> > (global-set-key (kbd "<f9> a") 'my-org-agenda-to-appt)
> > (defun my-org-agenda-to-appt ()
> >  (interactive)
> >  (setq appt-time-msg-list nil)
> >  (let ((org-deadline-warning-days 0))    ;; will be automatic in org  
> > 5.23
> >    (org-agenda-to-appt)))
> > (my-org-agenda-to-appt)
> > (appt-activate t)
> > (run-at-time "24:01" nil 'my-org-agenda-to-appt)
> > 
> > >
> > 
> > 
> > 
> > _______________________________________________
> > Emacs-orgmode mailing list
> > Remember: use `Reply All' to send replies to the list.
> > Emacs-orgmode@gnu.org
> > http://lists.gnu.org/mailman/listinfo/emacs-orgmode
> 
> 
> ------------------------------------------------------------------
> Russell Adams                            RLAdams@AdamsInfoServ.com
> 
> PGP Key ID:     0x1160DCB3           http://www.adamsinfoserv.com/
> 
> Fingerprint:    1723 D8CA 4280 1EC9 557F  66E8 1154 E018 1160 DCB3
> 
> 
> _______________________________________________
> Emacs-orgmode mailing list
> Remember: use `Reply All' to send replies to the list.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode


------------------------------------------------------------------
Russell Adams                            RLAdams@AdamsInfoServ.com

PGP Key ID:     0x1160DCB3           http://www.adamsinfoserv.com/

Fingerprint:    1723 D8CA 4280 1EC9 557F  66E8 1154 E018 1160 DCB3

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: org-mode and appointments
  2008-02-28  0:55       ` Russell Adams
@ 2008-02-28  1:04         ` Bernt Hansen
  2008-02-28  1:06           ` Bernt Hansen
  2008-02-28 22:38           ` Russell Adams
  0 siblings, 2 replies; 15+ messages in thread
From: Bernt Hansen @ 2008-02-28  1:04 UTC (permalink / raw)
  To: emacs-orgmode

It's configurable (as is almost anything else in Emacs)

The following variables set to behaviour

  appt-message-warning-time  (12 minutes for me)
  appt-display-interval      ( 3 minutes for me)

I get warnings at 12, 9, 6, 3, and 0 minutes.

HTH,
-Bernt

Russell Adams <RLAdams@AdamsInfoServ.Com> writes:

> Ok, so how far in advance is appt supposed to alert you?
>
> I'm testing this, and I've gotten zenity to do a popup, and I've tied
> the refresh of the appt list to the agenda refresh with:
>
> (add-hook 'org-finalize-agenda-hook 'my-org-agenda-to-appt)
>
> I'm testing a series of timings before I start relying on this, and
> trying to understand the behavior.
>
> Any comments?
>
> Thanks.
>
> On Tue, Feb 26, 2008 at 07:01:15PM -0600, Russell Adams wrote:
>> Great combined feature:
>> 
>> http://alfredobuttari.wordpress.com/2008/02/08/emacs-appt-mode-reminders-with-gtk-popups/
>> 
>> I'm still trying to get this to work reliably, either appointments or
>> calling out to a gtk popup, but I look forward to using it soon.
>> 
>> Thanks.
>> 
>> On Tue, Feb 26, 2008 at 05:09:39PM +0100, Carsten Dominik wrote:
>> > 
>> > On Feb 26, 2008, at 5:06 PM, Carsten Dominik wrote:
>> > 
>> > [...]
>> > 
>> > I forgot to clear the list:
>> > 
>> > So to summarize, this is really all you need in .emacs:
>> > 
>> > ;; Get appointments for today
>> > (global-set-key (kbd "<f9> a") 'my-org-agenda-to-appt)
>> > (defun my-org-agenda-to-appt ()
>> >  (interactive)
>> >  (setq appt-time-msg-list nil)
>> >  (let ((org-deadline-warning-days 0))    ;; will be automatic in org  
>> > 5.23
>> >    (org-agenda-to-appt)))
>> > (my-org-agenda-to-appt)
>> > (appt-activate t)
>> > (run-at-time "24:01" nil 'my-org-agenda-to-appt)
>> > 
>> > >
>> > 
>> > 
>> > 
>> > _______________________________________________
>> > Emacs-orgmode mailing list
>> > Remember: use `Reply All' to send replies to the list.
>> > Emacs-orgmode@gnu.org
>> > http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>> 
>> 
>> ------------------------------------------------------------------
>> Russell Adams                            RLAdams@AdamsInfoServ.com
>> 
>> PGP Key ID:     0x1160DCB3           http://www.adamsinfoserv.com/
>> 
>> Fingerprint:    1723 D8CA 4280 1EC9 557F  66E8 1154 E018 1160 DCB3
>> 
>> 
>> _______________________________________________
>> Emacs-orgmode mailing list
>> Remember: use `Reply All' to send replies to the list.
>> Emacs-orgmode@gnu.org
>> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>
>
> ------------------------------------------------------------------
> Russell Adams                            RLAdams@AdamsInfoServ.com
>
> PGP Key ID:     0x1160DCB3           http://www.adamsinfoserv.com/
>
> Fingerprint:    1723 D8CA 4280 1EC9 557F  66E8 1154 E018 1160 DCB3
>
>
> _______________________________________________
> Emacs-orgmode mailing list
> Remember: use `Reply All' to send replies to the list.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: org-mode and appointments
  2008-02-28  1:04         ` Bernt Hansen
@ 2008-02-28  1:06           ` Bernt Hansen
  2008-02-28 22:38           ` Russell Adams
  1 sibling, 0 replies; 15+ messages in thread
From: Bernt Hansen @ 2008-02-28  1:06 UTC (permalink / raw)
  To: emacs-orgmode

Bernt Hansen <bernt@norang.ca> writes:

> The following variables set to behaviour

set to -> set the

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Re: org-mode and appointments
  2008-02-28  1:04         ` Bernt Hansen
  2008-02-28  1:06           ` Bernt Hansen
@ 2008-02-28 22:38           ` Russell Adams
  2008-02-28 23:17             ` Nick Dokos
  1 sibling, 1 reply; 15+ messages in thread
From: Russell Adams @ 2008-02-28 22:38 UTC (permalink / raw)
  To: emacs-orgmode

Thanks for the information! Thats exactly what I was trying to figure
out.

I've got one last problem, then I'll post the complete howto
somewhere...

I'm kicking off zenity (GUI notification window) via shell-command and
putting it in the background. Emacs keeps opening a new window called
*Async Shell Command*, even though I thought I disabled that by
passing nil to the output buffer argument.

Any suggestions?

Thanks.

On Wed, Feb 27, 2008 at 08:04:51PM -0500, Bernt Hansen wrote:
> It's configurable (as is almost anything else in Emacs)
> 
> The following variables set to behaviour
> 
>   appt-message-warning-time  (12 minutes for me)
>   appt-display-interval      ( 3 minutes for me)
> 
> I get warnings at 12, 9, 6, 3, and 0 minutes.
> 
> HTH,
> -Bernt
> 
> Russell Adams <RLAdams@AdamsInfoServ.Com> writes:
> 
> > Ok, so how far in advance is appt supposed to alert you?
> >
> > I'm testing this, and I've gotten zenity to do a popup, and I've tied
> > the refresh of the appt list to the agenda refresh with:
> >
> > (add-hook 'org-finalize-agenda-hook 'my-org-agenda-to-appt)
> >
> > I'm testing a series of timings before I start relying on this, and
> > trying to understand the behavior.
> >
> > Any comments?
> >
> > Thanks.
> >
> > On Tue, Feb 26, 2008 at 07:01:15PM -0600, Russell Adams wrote:
> >> Great combined feature:
> >> 
> >> http://alfredobuttari.wordpress.com/2008/02/08/emacs-appt-mode-reminders-with-gtk-popups/
> >> 
> >> I'm still trying to get this to work reliably, either appointments or
> >> calling out to a gtk popup, but I look forward to using it soon.
> >> 
> >> Thanks.
> >> 
> >> On Tue, Feb 26, 2008 at 05:09:39PM +0100, Carsten Dominik wrote:
> >> > 
> >> > On Feb 26, 2008, at 5:06 PM, Carsten Dominik wrote:
> >> > 
> >> > [...]
> >> > 
> >> > I forgot to clear the list:
> >> > 
> >> > So to summarize, this is really all you need in .emacs:
> >> > 
> >> > ;; Get appointments for today
> >> > (global-set-key (kbd "<f9> a") 'my-org-agenda-to-appt)
> >> > (defun my-org-agenda-to-appt ()
> >> >  (interactive)
> >> >  (setq appt-time-msg-list nil)
> >> >  (let ((org-deadline-warning-days 0))    ;; will be automatic in org  
> >> > 5.23
> >> >    (org-agenda-to-appt)))
> >> > (my-org-agenda-to-appt)
> >> > (appt-activate t)
> >> > (run-at-time "24:01" nil 'my-org-agenda-to-appt)
> >> > 
> >> > >
> >> > 
> >> > 
> >> > 
> >> > _______________________________________________
> >> > Emacs-orgmode mailing list
> >> > Remember: use `Reply All' to send replies to the list.
> >> > Emacs-orgmode@gnu.org
> >> > http://lists.gnu.org/mailman/listinfo/emacs-orgmode
> >> 
> >> 
> >> ------------------------------------------------------------------
> >> Russell Adams                            RLAdams@AdamsInfoServ.com
> >> 
> >> PGP Key ID:     0x1160DCB3           http://www.adamsinfoserv.com/
> >> 
> >> Fingerprint:    1723 D8CA 4280 1EC9 557F  66E8 1154 E018 1160 DCB3
> >> 
> >> 
> >> _______________________________________________
> >> Emacs-orgmode mailing list
> >> Remember: use `Reply All' to send replies to the list.
> >> Emacs-orgmode@gnu.org
> >> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
> >
> >
> > ------------------------------------------------------------------
> > Russell Adams                            RLAdams@AdamsInfoServ.com
> >
> > PGP Key ID:     0x1160DCB3           http://www.adamsinfoserv.com/
> >
> > Fingerprint:    1723 D8CA 4280 1EC9 557F  66E8 1154 E018 1160 DCB3
> >
> >
> > _______________________________________________
> > Emacs-orgmode mailing list
> > Remember: use `Reply All' to send replies to the list.
> > Emacs-orgmode@gnu.org
> > http://lists.gnu.org/mailman/listinfo/emacs-orgmode
> 
> 
> _______________________________________________
> Emacs-orgmode mailing list
> Remember: use `Reply All' to send replies to the list.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode


------------------------------------------------------------------
Russell Adams                            RLAdams@AdamsInfoServ.com

PGP Key ID:     0x1160DCB3           http://www.adamsinfoserv.com/

Fingerprint:    1723 D8CA 4280 1EC9 557F  66E8 1154 E018 1160 DCB3

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Re: org-mode and appointments
  2008-02-28 22:38           ` Russell Adams
@ 2008-02-28 23:17             ` Nick Dokos
  2008-03-02 10:13               ` Russell Adams
  0 siblings, 1 reply; 15+ messages in thread
From: Nick Dokos @ 2008-02-28 23:17 UTC (permalink / raw)
  To: Russell Adams; +Cc: emacs-orgmode

Russell Adams <RLAdams@AdamsInfoServ.Com> wrote:

> I'm kicking off zenity (GUI notification window) via shell-command and
> putting it in the background. Emacs keeps opening a new window called
> *Async Shell Command*, even though I thought I disabled that by
> passing nil to the output buffer argument.
> 

Try the following instead:

      (setq appt-display-format 'window)
      (setq appt-disp-window-function (function my-appt-disp-window))
      (defun my-appt-disp-window (min-to-app new-time msg)
        (call-process "/home/nick/bin/popup.py" nil 0 nil min-to-app msg new-time))

This one calls my home-grown ``popupper'', so just change the string to
call zenity, and change the args to what is needed. The 0 in the "nil 0
nil" part means discard any output and don't wait for the process to
finish - see the documentation for call-process for more details.

For more, check the list archives or worg: I had posted my method for
popups to the list and Bastien has apparently put a pointer to it on
worg somewhere.

HTH,
Nick

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Re: org-mode and appointments
  2008-02-28 23:17             ` Nick Dokos
@ 2008-03-02 10:13               ` Russell Adams
  2008-03-02 17:51                 ` Richard G Riley
  2008-03-03  1:31                 ` Bastien
  0 siblings, 2 replies; 15+ messages in thread
From: Russell Adams @ 2008-03-02 10:13 UTC (permalink / raw)
  To: emacs-orgmode


[-- Attachment #1.1: Type: text/plain, Size: 1693 bytes --]

Ok, so I've got appt working with org, along with Gnome popups with
zenity to alert me of events.

I wanted to aggregate the advice I'd received into one place, which
could be posted later to wiki or worg, etc.

I would welcome feedback, as I'm currently vetting this
configuration. I'll post any updates if I find a problem.

Thanks.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; For org appointment reminders

;; Get appointments for today
(defun my-org-agenda-to-appt ()
  (interactive)
  (setq appt-time-msg-list nil)
  (let ((org-deadline-warning-days 0))    ;; will be automatic in org 5.23
        (org-agenda-to-appt)))

;; Run once, activate and schedule refresh
(my-org-agenda-to-appt)
(appt-activate t)
(run-at-time "24:01" nil 'my-org-agenda-to-appt)

; 5 minute warnings
(setq appt-message-warning-time '15)
(setq appt-display-interval '5)

; Update appt each time agenda opened.
(add-hook 'org-finalize-agenda-hook 'my-org-agenda-to-appt)

; Setup zenify, we tell appt to use window, and replace default function
(setq appt-display-format 'window)
(setq appt-disp-window-function (function my-appt-disp-window))

(defun my-appt-disp-window (min-to-app new-time msg)                      
  (save-window-excursion (shell-command (concat 
    "/usr/bin/zenity --info --title='Appointment' --text='" 
    msg
    "' &"
    ) nil nil)
))


------------------------------------------------------------------
Russell Adams                            RLAdams@AdamsInfoServ.com

PGP Key ID:     0x1160DCB3           http://www.adamsinfoserv.com/

Fingerprint:    1723 D8CA 4280 1EC9 557F  66E8 1154 E018 1160 DCB3

[-- Attachment #1.2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

[-- Attachment #2: Type: text/plain, Size: 204 bytes --]

_______________________________________________
Emacs-orgmode mailing list
Remember: use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Re: org-mode and appointments
  2008-03-02 10:13               ` Russell Adams
@ 2008-03-02 17:51                 ` Richard G Riley
  2008-03-02 19:33                   ` Russell Adams
  2008-03-03  1:31                 ` Bastien
  1 sibling, 1 reply; 15+ messages in thread
From: Richard G Riley @ 2008-03-02 17:51 UTC (permalink / raw)
  To: emacs-orgmode


Russell Adams <RLAdams@AdamsInfoServ.Com> writes:
v> Ok, so I've got appt working with org, along with Gnome popups with
> zenity to alert me of events.
>
> I wanted to aggregate the advice I'd received into one place, which
> could be posted later to wiki or worg, etc.
>
> I would welcome feedback, as I'm currently vetting this
> configuration. I'll post any updates if I find a problem.
>
> Thanks.

>
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
> ; For org appointment reminders
>
> ;; Get appointments for today
> (defun my-org-agenda-to-appt ()
>   (interactive)
>   (setq appt-time-msg-list nil)
>   (let ((org-deadline-warning-days 0))    ;; will be automatic in org 5.23
>         (org-agenda-to-appt)))
>
> ;; Run once, activate and schedule refresh
> (my-org-agenda-to-appt)
> (appt-activate t)
> (run-at-time "24:01" nil 'my-org-agenda-to-appt)
>
> ; 5 minute warnings
> (setq appt-message-warning-time '15)
> (setq appt-display-interval '5)
>
> ; Update appt each time agenda opened.
> (add-hook 'org-finalize-agenda-hook 'my-org-agenda-to-appt)
>
> ; Setup zenify, we tell appt to use window, and replace default function
> (setq appt-display-format 'window)
> (setq appt-disp-window-function (function my-appt-disp-window))
>
> (defun my-appt-disp-window (min-to-app new-time msg)                      
>   (save-window-excursion (shell-command (concat 
>     "/usr/bin/zenity --info --title='Appointment' --text='" 
>     msg
>     "' &"
>     ) nil nil)
> ))

I just tried it. Excellent.

BTW, one small problem - when I updated a schedule in the agenda
interface, the agenda file doesn't update in the buffer. Closing it and
reopening it showed the new time.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Re: org-mode and appointments
  2008-03-02 17:51                 ` Richard G Riley
@ 2008-03-02 19:33                   ` Russell Adams
  0 siblings, 0 replies; 15+ messages in thread
From: Russell Adams @ 2008-03-02 19:33 UTC (permalink / raw)
  To: emacs-orgmode

I don't know if that is related to this code.

For the list, what version are you running?

On Sun, Mar 02, 2008 at 06:51:42PM +0100, Richard G Riley wrote:
> BTW, one small problem - when I updated a schedule in the agenda
> interface, the agenda file doesn't update in the buffer. Closing it and
> reopening it showed the new time.
> 
> 
> _______________________________________________
> Emacs-orgmode mailing list
> Remember: use `Reply All' to send replies to the list.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode


------------------------------------------------------------------
Russell Adams                            RLAdams@AdamsInfoServ.com

PGP Key ID:     0x1160DCB3           http://www.adamsinfoserv.com/

Fingerprint:    1723 D8CA 4280 1EC9 557F  66E8 1154 E018 1160 DCB3

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Re: org-mode and appointments
  2008-03-02 10:13               ` Russell Adams
  2008-03-02 17:51                 ` Richard G Riley
@ 2008-03-03  1:31                 ` Bastien
  1 sibling, 0 replies; 15+ messages in thread
From: Bastien @ 2008-03-03  1:31 UTC (permalink / raw)
  To: emacs-orgmode

Russell Adams <RLAdams@AdamsInfoServ.Com> writes:

> Ok, so I've got appt working with org, along with Gnome popups with
> zenity to alert me of events.

Works nice here, thanks.

> I wanted to aggregate the advice I'd received into one place, which
> could be posted later to wiki or worg, etc.

I posted this here:

  http://www.legito.net/worg/org-adhoc-code.php

It should appear in a few minutes, I'm not uploading the HTML export of
Worg manually.

-- 
Bastien

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2008-03-03  1:31 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-02-25 23:09 org-mode and appointments Bernt Hansen
2008-02-26 16:06 ` Carsten Dominik
2008-02-26 16:09   ` Carsten Dominik
2008-02-26 16:14     ` Bernt Hansen
2008-02-27  1:01     ` Russell Adams
2008-02-28  0:55       ` Russell Adams
2008-02-28  1:04         ` Bernt Hansen
2008-02-28  1:06           ` Bernt Hansen
2008-02-28 22:38           ` Russell Adams
2008-02-28 23:17             ` Nick Dokos
2008-03-02 10:13               ` Russell Adams
2008-03-02 17:51                 ` Richard G Riley
2008-03-02 19:33                   ` Russell Adams
2008-03-03  1:31                 ` Bastien
2008-02-26 16:19 ` Bastien

Code repositories for project(s) associated with this inbox:

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).