From mboxrd@z Thu Jan 1 00:00:00 1970 From: Carsten Dominik Subject: Re: Handling phone calls Date: Sun, 10 Feb 2008 08:42:19 +0100 Message-ID: <51206E31-5147-4F66-9CCF-E0C24AFEB949@science.uva.nl> References: <87tzkhoi45.fsf@gollum.intra.norang.ca> Mime-Version: 1.0 (Apple Message framework v915) Content-Type: multipart/mixed; boundary="===============0516891829==" Return-path: Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1JO6pX-0003tp-Bt for emacs-orgmode@gnu.org; Sun, 10 Feb 2008 02:42:27 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1JO6pV-0003td-IO for emacs-orgmode@gnu.org; Sun, 10 Feb 2008 02:42:26 -0500 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1JO6pV-0003ta-DW for emacs-orgmode@gnu.org; Sun, 10 Feb 2008 02:42:25 -0500 Received: from fg-out-1718.google.com ([72.14.220.153]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1JO6pU-0001pN-DS for emacs-orgmode@gnu.org; Sun, 10 Feb 2008 02:42:25 -0500 Received: by fg-out-1718.google.com with SMTP id d23so3709855fga.30 for ; Sat, 09 Feb 2008 23:42:23 -0800 (PST) In-Reply-To: <87tzkhoi45.fsf@gollum.intra.norang.ca> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Bernt Hansen Cc: emacs-orgmode@gnu.org --===============0516891829== Content-Type: multipart/alternative; boundary=Apple-Mail-68-983839922 --Apple-Mail-68-983839922 Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Excellent description, I just made an entry for this in the new Org-mode FAQ in Worg: http://129.199.80.1/~guerry/worg/org-faq.html The entry is not yet there as of Sunday, 8:39 CET, so we will now find out how quickly Bastien will update the HTML version. I think we should do more like this: Put gmane pointers to good writeups into the faq, or even directly convert these posts to org and put them into a faq. emacs-orgmode@gnu.org is becoming a knowledgebase. This is a corner in parameter space where Worg can really shine: Whenever you see a particularly useful post, head over to worg and greate a link to it. - Carsten On Feb 9, 2008, at 11:55 PM, Bernt Hansen wrote: > Hi all, > > I spent some time today tuning my org setup for handling incoming > phone > calls. As a contractor I need to clock time spent talking to > customers > for billing purposes. I used to (before this morning) use tags for > phone calls and I had a list of ONGOING tasks with :@phone: as a tag > but this wasn't very convenient to use. > > Today I spent some time reviewing the remember documentation and I > came > up with the following setup. I thought I'd share it in case anyone > else > finds it useful. > > --- > > I have multiple clients and one org file per client. Here is a sample > layout: > > - todo.org - my personal tasks > - client1.org - tasks for client 1 > - otherclient.org - tasks for client 2 > - norang.org - tasks for my company > > When I need to create a new task I have the following > remember templates set up: > > ,----[ .emacs remember setup ] > | (custom-set-variables > | '(org-remember-store-without-prompt t) > | '(org-remember-templates > | (quote (("todo" ?t "* TODO %?\n %u" "~/org/todo.org" "Tasks") > | ("client1" ?c "* TODO %?\n %u" "~/org/client1.org" "Tasks") > | ("otherclient" ?o "* TODO %?\n %u" "~/org/otherclient.org" > "Tasks") > | ("norang" ?n "* TODO %?\n %u" "~/org/norang.org" "Tasks")))) > | '(remember-annotation-functions (quote (org-remember-annotation))) > | '(remember-handler-functions (quote (org-remember-handler)))) > `---- > > To create a new task I just hit C-M-r and enter the appropriate > template > and fill in the task details. > > I set up a second set of templates for phone calls: > > ,----[ .emacs remember functions ] > | (setq my-phone-remember-templates > | (quote (("client1" ?c "* Phone Call - %:name - %:company > \n :CLOCK-IN:%?" "~/org/client1.org" "Tasks") > | ("otherclient" ?o "* Phone Call - %:name - %:company > \n :CLOCK-IN:%?" "~/org/otherclient.org" "Tasks") > | ("norang" ?n "* Phone Call - %:name - %:company\n :CLOCK- > IN:%?" "~/org/norang.org" "Tasks") > | ("phone call" ?p "* Phone Call - %? - \n :CLOCK-IN:" "~/ > org/todo.org" "Tasks")))) > | > | (global-set-key (kbd " p") 'my-phone-call) > | > | (defun my-phone-call () > | (interactive) > | (let ((org-remember-templates my-phone-remember-templates)) > | (bbdb (read-string "Who is calling: ") nil) > | (other-window 1) > | (org-remember))) > | > | (add-hook 'remember-mode-hook 'my-start-clock-if-needed) > | (defun my-start-clock-if-needed () > | (save-excursion > | (goto-char (point-min)) > | (when (re-search-forward ":CLOCK-IN:" nil t) > | (replace-match "") > | (org-clock-in)))) > | > | (require 'remember) > | (global-set-key (kbd "C-M-r") 'org-remember) > | (add-hook 'remember-mode-hook 'org-remember-apply-template) > `---- > > Thanks Carsten for the my-start-clock-if-needed function which I stole > off the org-mode mailing list :) > > --- > > So I'm happily clocking time on some task I'm working on and the phone > rings... I pick up the phone, find out who I'm talking to and type > f9-p and enter a name at the prompt > > Who is calling: Joe User > > which looks up the person in my bbdb database and fills in the > remember > template then I select the appropriate template for the client org > file > I want to create the task in and it fills in something like this: > > ,----[ Remember buffer entry for phone calls ] > | ## Filing location: Select interactively, default, or last used: > | ## C-u C-c C-c to select file and header location > interactively. > | ## C-c C-c "~/org/norang.org" -> "* Tasks" > | ## C-u C-u C-c C-c "~/org/client1.org" -> "* Tasks" > | ## To switch templates, use `C-M-r'. To abort use `C-c C-k'. > | > | * Phone Call - Joe User - Some Client Company > | CLOCK: [2008-02-09 Sat 17:36] > | > `---- > > When I'm done with the call C-c C-c stops the clock and files the task > under * Tasks in whatever file I picked using the template above. > C-u C-u C-M-r jumps to the task and I can refile it to the appropriate > spot with C-c C-w. > > I'm sure this can be improved upon but it's already a lot better than > what I had before. > > Happy organizing! > > -Bernt > > > > > _______________________________________________ > 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 --Apple-Mail-68-983839922 Content-Type: text/html; charset=US-ASCII Content-Transfer-Encoding: quoted-printable Excellent description, I just = made an entry for this in the
The entry is not yet there as = of Sunday, 8:39 CET, so we will now find out how
quickly = Bastien will update the HTML version.

I think we = should do more like this:  Put gmane pointers to
good = writeups into the faq, or even directly convert these posts to = org
and put them into a faq.  emacs-orgmode@gnu.org is = becoming a knowledgebase.
This is a corner in parameter space = where Worg can really shine:  Whenever you see
a = particularly useful post, head over to worg and greate a link to = it.

- = Carsten

On Feb 9, 2008, at 11:55 PM, Bernt = Hansen wrote:

Hi all,

I spent some time today tuning my org setup = for handling incoming phone
calls.  As a contractor I need to = clock time spent talking to customers
for billing purposes.  I = used to (before this morning) use tags for
phone calls and I had a = list of ONGOING tasks with :@phone: as a tag
but this wasn't very = convenient to use.

Today I spent some time reviewing the remember = documentation and I came
up with the following setup.  I thought = I'd share it in case anyone else
finds it useful.

---

I = have multiple clients and one org file per client.  Here is a = sample
layout:

 - todo.org =        - my personal tasks
=  - client1.org     - tasks for client 1
=  - otherclient.org - tasks for client 2
 - norang.org =      - tasks for my company

When I need = to create a new task I have the following
remember templates set = up:

,----[ .emacs remember setup ]
| = (custom-set-variables
|  '(org-remember-store-without-prompt = t)
|  '(org-remember-templates
|    (quote = (("todo" ?t "* TODO %?\n  %u" "~/org/todo.org" "Tasks")
| =   ("client1" ?c "* TODO %?\n  %u" "~/org/client1.org" = "Tasks")
| =   ("otherclient" ?o "* TODO %?\n  %u" = "~/org/otherclient.org" "Tasks")
|   ("norang" ?n "* TODO = %?\n  %u" "~/org/norang.org" "Tasks"))))
| =  '(remember-annotation-functions (quote = (org-remember-annotation)))
|  '(remember-handler-functions = (quote (org-remember-handler))))
`----

To create a new task I = just hit C-M-r and enter the appropriate template
and fill in the = task details.

I set up a second set of templates for phone = calls:

,----[ .emacs remember functions ]
| (setq = my-phone-remember-templates
| =       (quote (("client1" ?c "* Phone Call = - %:name - %:company\n  :CLOCK-IN:%?" "~/org/client1.org" = "Tasks")
| =      ("otherclient" ?o "* Phone Call - = %:name - %:company\n  :CLOCK-IN:%?" "~/org/otherclient.org" = "Tasks")
| =      ("norang" ?n "* Phone Call - = %:name - %:company\n  :CLOCK-IN:%?" "~/org/norang.org" = "Tasks")
| =      ("phone call" ?p "* Phone Call - = %? - \n  :CLOCK-IN:" "~/org/todo.org" "Tasks"))))
|
| = (global-set-key (kbd "<f9> p") 'my-phone-call)
|
| (defun = my-phone-call ()
|   (interactive)
|   (let = ((org-remember-templates my-phone-remember-templates))
| =     (bbdb (read-string "Who is calling: ") nil)
| =     (other-window 1)
| =     (org-remember)))
|
| (add-hook = 'remember-mode-hook 'my-start-clock-if-needed)
| (defun = my-start-clock-if-needed ()
|   (save-excursion
| =     (goto-char (point-min))
| =     (when (re-search-forward ":CLOCK-IN:" nil = t)
|        (replace-match = "")
| =        (org-clock-in))))
|
| = (require 'remember)
| (global-set-key (kbd "C-M-r") = 'org-remember)
| (add-hook 'remember-mode-hook = 'org-remember-apply-template)
`----

Thanks Carsten for the = my-start-clock-if-needed function which I stole
off the org-mode = mailing list :)

---

So I'm happily clocking time on some = task I'm working on and the phone
rings...  I pick up the phone, = find out who I'm talking to and type
f9-p and enter a name at the = prompt

Who is calling: Joe User

which looks up the person = in my bbdb database and fills in the remember
template then I select = the appropriate template for the client org file
I want to create the = task in and it fills in something like this:

,----[ Remember = buffer entry for phone calls ]
| ## Filing location: Select = interactively, default, or last used:
| ## =     C-u C-c C-c  to select file and header = location interactively.
| ## =         C-c C-c =  "~/org/norang.org" -> "* Tasks"
| ## C-u C-u C-c C-c =  "~/org/client1.org" -> "* Tasks"
| ## To switch templates, = use `C-M-r'.  To abort use `C-c C-k'.
|
| * Phone Call - Joe = User - Some Client Company
|   CLOCK: [2008-02-09 Sat = 17:36]
|   <cursor is here, Start typing notes right = away>
`----

When I'm done with the call C-c C-c stops the = clock and files the task
under * Tasks in whatever file I picked = using the template above.
C-u C-u C-M-r jumps to the task and I can = refile it to the appropriate
spot with C-c C-w.

I'm sure this = can be improved upon but it's already a lot better than
what I had = before.

Happy = organizing!

-Bernt




_____________________________= __________________
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

= --Apple-Mail-68-983839922-- --===============0516891829== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ 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 --===============0516891829==--