Re: [O] org-capture -- optionally add time-of-day as with C-c . ?

2016-02-10 Thread John Magolske
Hi Aaron,

* Aaron Ecay  [160210 11:22]:
> Using %^T seems to give the desired behavior you describe in your
> message.  Can you try it and see if it works for you?  (Regrettably,
> it’s not obvious from the docstring of ‘org-capture-templates’ that it
> should behave like that, since %T is supposed to insert a time
> unconditionally.  But in my testing, %^T only inserts a time if one is
> entered by the user.)

I just tried %^T and it did not work -- a time-of-day was included in
all cases. What *did* work however is the lowercase %^t version. With
that in my org-capture template, just the date is inserted, except when
an explicit time-of-day is entered at the minibuffer prompt. Then that
time is added after the date. This makes picking dates & times with
org-capture a breeze.

Thanks for clueing me in!

John

-- 
John Magolske
http://b79.net/contact



Re: [O] org-capture -- optionally add time-of-day as with C-c . ?

2016-02-10 Thread Charles Millar

Hi John,

On 02/10/2016 04:22 AM, John Magolske wrote:

In setting up org-capture, I'd like to have behaviour similar to what
`org-time-stamp` provides, which by default is bound to:

 C-c .

That command in org-mode brings up a 3-month calendar and a minibuffer
prompt for entering a date. With nothing entered at the prompt, just a
RET, a timestamp with the current date is inserted like so:

 <2016-02-09 Tue>

If a date is picked from the calender, say March 26, then that date
is inserted:

 <2016-03-26 Sat>

If, for example, 2pm is entered at the minibuffer prompt and March 8
is picked from the calender, then a timestamp like so gets inserted:

 <2016-03-08 Tue 14:00>

I find this to be a very nice, intuitive interface. Time-of-day is
easily added, but only if explicitly input. Otherwise just the date
shows up. I'm having a hard time setting this up for org-capture...
I can get close with something like:

   (setq org-capture-templates
   '(("t" "todo" entry (file+headline "~/org/todo.org" "Tasks")
   "* TODO %?\nSCHEDULED: %(org-insert-time-stamp (org-read-date nil t) 
t)\n")))

But that always inserts a time-of-day into the timestamp, using the
current time if nothing is input at the minibuffer prompt. So if I
just pick March 8 from the calender, that date will be inserted along
with the current time-of-day like so:

 ** TODO
 SCHEDULED: <2016-03-08 Mon 00:53>

Which pretty much always necessitates a manual edit of the time to
either remove it or adjust it to something relevant.

When explicitly adding a time value at the prompt in the minibuffer,
2pm for example, then picking March 8, this would show up:

 ** TODO
 SCHEDULED: <2016-03-08 Tue 14:00>

And that works great. It's just the aforementioned situation where no
time-of-day is entered and the current time-of-day gets associated
with some future-date timestamp rather than just having that date show
up by itself with no time-of-day.

Is there some way to have the `C-c .` behaviour outlined above happen
in org-capture?


Have you tried the template expansion %^T (active time stamp prompt with 
date and time); Also %^U is the inactive equivalent, etc.


Charlie Millar



Re: [O] org-capture -- optionally add time-of-day as with C-c . ?

2016-02-10 Thread Aaron Ecay
Hi John,

Using %^T seems to give the desired behavior you describe in your
message.  Can you try it and see if it works for you?  (Regrettably,
it’s not obvious from the docstring of ‘org-capture-templates’ that it
should behave like that, since %T is supposed to insert a time
unconditionally.  But in my testing, %^T only inserts a time if one is
entered by the user.)

-- 
Aaron Ecay



[O] org-capture -- optionally add time-of-day as with C-c . ?

2016-02-10 Thread John Magolske
In setting up org-capture, I'd like to have behaviour similar to what
`org-time-stamp` provides, which by default is bound to:

C-c .

That command in org-mode brings up a 3-month calendar and a minibuffer
prompt for entering a date. With nothing entered at the prompt, just a
RET, a timestamp with the current date is inserted like so:

<2016-02-09 Tue>

If a date is picked from the calender, say March 26, then that date
is inserted:

<2016-03-26 Sat>

If, for example, 2pm is entered at the minibuffer prompt and March 8
is picked from the calender, then a timestamp like so gets inserted:

<2016-03-08 Tue 14:00>

I find this to be a very nice, intuitive interface. Time-of-day is
easily added, but only if explicitly input. Otherwise just the date
shows up. I'm having a hard time setting this up for org-capture...
I can get close with something like:

  (setq org-capture-templates
  '(("t" "todo" entry (file+headline "~/org/todo.org" "Tasks")
  "* TODO %?\nSCHEDULED: %(org-insert-time-stamp (org-read-date nil t) 
t)\n")))

But that always inserts a time-of-day into the timestamp, using the
current time if nothing is input at the minibuffer prompt. So if I
just pick March 8 from the calender, that date will be inserted along
with the current time-of-day like so:

** TODO
SCHEDULED: <2016-03-08 Mon 00:53>

Which pretty much always necessitates a manual edit of the time to
either remove it or adjust it to something relevant.

When explicitly adding a time value at the prompt in the minibuffer,
2pm for example, then picking March 8, this would show up:

** TODO
SCHEDULED: <2016-03-08 Tue 14:00>

And that works great. It's just the aforementioned situation where no
time-of-day is entered and the current time-of-day gets associated
with some future-date timestamp rather than just having that date show
up by itself with no time-of-day.

Is there some way to have the `C-c .` behaviour outlined above happen
in org-capture?

TIA for any help,

John

-- 
John Magolske
http://b79.net/contac