Re: [O] Non-interactive insertion of future-dates

2012-01-28 Thread Simon Campese
Thanks Borbus, it works! See my followup to Jonathan's answer on my plans to add
relative dates to the template expansion.


Best wishes,

Simon




Re: [O] Non-interactive insertion of future-dates

2012-01-28 Thread Simon Campese
Hey Jonathan,

thanks for the hints, it works like a charm! As far as I can overlook
this, adding relative dates to the template expansion should not be a
lot of work, basically one just has to add a simple wrapper to
org-read-date. I gave some more thoughts to an appropriate symbol and
the best I could come up with is '_'. I therefore propose the following: 

% {EXP}t, %_{EXP}T, %_{EXP}u, %_{EXP}U 

in a capture-template inserts an (in-)active date-/timestamp that would
have resulted from manually entering the expression EXP at the
interactive date-/timeprompt. 

If no serious objections come up, I will put this on my todo-list.


Best wishes,

Simon



On Wed, 25 Jan 2012 12:56:37 -0500, Jonathan Leech-Pepin 
jonathan.leechpe...@gmail.com wrote:
 Hello,
 
 
 On Wed, Jan 25, 2012 at 11:42, Simon Campese emacs-orgm...@campese.de wrote:
 
  Dear community,
 
  I want to setup a capture-template that sets a
  SCHEDULE-property in the future (say one week from today) without any
  user interaction.
 
  Currently, I almost achieve this by inserting the line
 
  :SCHEDULED: %(org-read-date nil nil nil nil nil +1w)
 
  into my template. When I now call the template, I end up in the
  date-time-prompt, with +1w prefilled, so that manually have to press
  enter.
 
  Maybe it is trivial to call an interactive lisp-function and emulate
  some keypress, in which case I would be thankful for the code that
  achieves this (my lisp-skills are limited). Also, one should be able to
  achieve what I want by using format-time-string and increment the
  current time, but again my lisp-skills prohibit me from implementing it
  myself.
 
 A similar question had come up on StackOverflow (
 http://stackoverflow.com/questions/7986935/using-org-capture-templates-to-schedule-a-todo-for-the-day-after-today/7988809#7988809
 ).
 
 My answer there should apply, adjusting the offset from +1d to +1w :
 
     SCHEDULED: %(org-insert-time-stamp (org-read-date nil t \+1d\))
 
 Alternately you can include the SCHEDULED: portion within the
 timestamp insertion itself.  This example will also include a fixed
 time at which to schedule the item (unneeded in this case I suspect
 but it could be of use elsewhere) :
 
     (org-insert-time-stamp (org-read-date nil t \+1w 12:00\) t nil
 \SCHEDULED: \)
 
  In any case, it might be a good idea to include non-interactive access
  to relative times in template expansion, so that for example one
  can state something like %t[+1w] or %{+1w}t in the template to get the
  date one week from today (one should spend some more time to specify the
  actual input-format of course...). What do you think?
 
 I agree, adding the ability to automatically have relative dates would
 allow for quicker capture templates if you regularly need to to set
 them with a specific offset.
 
  Thank you very much,
 
  Simon
 
 Regards,
 
 Jonathan



Re: [O] Non-interactive insertion of future-dates

2012-01-25 Thread Borbus
On 25/01/12 16:42, Simon Campese wrote:
 I want to setup a capture-template that sets a
 SCHEDULE-property in the future (say one week from today) without any
 user interaction.
 
 Currently, I almost achieve this by inserting the line
 
 :SCHEDULED: %(org-read-date nil nil nil nil nil +1w)
 
 into my template. When I now call the template, I end up in the
 date-time-prompt, with +1w prefilled, so that manually have to press
 enter. 

I think what you want is to use the parameter from-string which doesn't
ask for a user input at all but just uses that string as if you did
input it interactively:

(org-read-date nil nil +1w)

-- 
Borbus.



Re: [O] Non-interactive insertion of future-dates

2012-01-25 Thread Jonathan Leech-Pepin
Hello,


On Wed, Jan 25, 2012 at 11:42, Simon Campese emacs-orgm...@campese.de wrote:

 Dear community,

 I want to setup a capture-template that sets a
 SCHEDULE-property in the future (say one week from today) without any
 user interaction.

 Currently, I almost achieve this by inserting the line

 :SCHEDULED: %(org-read-date nil nil nil nil nil +1w)

 into my template. When I now call the template, I end up in the
 date-time-prompt, with +1w prefilled, so that manually have to press
 enter.

 Maybe it is trivial to call an interactive lisp-function and emulate
 some keypress, in which case I would be thankful for the code that
 achieves this (my lisp-skills are limited). Also, one should be able to
 achieve what I want by using format-time-string and increment the
 current time, but again my lisp-skills prohibit me from implementing it
 myself.

A similar question had come up on StackOverflow (
http://stackoverflow.com/questions/7986935/using-org-capture-templates-to-schedule-a-todo-for-the-day-after-today/7988809#7988809
).

My answer there should apply, adjusting the offset from +1d to +1w :

    SCHEDULED: %(org-insert-time-stamp (org-read-date nil t \+1d\))

Alternately you can include the SCHEDULED: portion within the
timestamp insertion itself.  This example will also include a fixed
time at which to schedule the item (unneeded in this case I suspect
but it could be of use elsewhere) :

    (org-insert-time-stamp (org-read-date nil t \+1w 12:00\) t nil
\SCHEDULED: \)

 In any case, it might be a good idea to include non-interactive access
 to relative times in template expansion, so that for example one
 can state something like %t[+1w] or %{+1w}t in the template to get the
 date one week from today (one should spend some more time to specify the
 actual input-format of course...). What do you think?

I agree, adding the ability to automatically have relative dates would
allow for quicker capture templates if you regularly need to to set
them with a specific offset.

 Thank you very much,

 Simon

Regards,

Jonathan