From: Bernt Hansen <bernt@norang.ca>
To: emacs-orgmode@gnu.org
Subject: Handling phone calls
Date: Sat, 09 Feb 2008 17:55:06 -0500 [thread overview]
Message-ID: <87tzkhoi45.fsf@gollum.intra.norang.ca> (raw)
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
next reply other threads:[~2008-02-09 22:55 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-02-09 22:55 Bernt Hansen [this message]
2008-02-10 7:42 ` Handling phone calls Carsten Dominik
2008-02-10 11:09 ` Bastien
2008-02-24 1:20 ` Nick Dokos
2009-11-13 19:11 ` Gregory J. Grubbs
2009-11-13 19:28 ` Bernt Hansen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.orgmode.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87tzkhoi45.fsf@gollum.intra.norang.ca \
--to=bernt@norang.ca \
--cc=emacs-orgmode@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public 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).