/helm-org-contacts

A helm source for org-contacts

Primary LanguageEmacs LispGNU General Public License v3.0GPL-3.0

helm-org-contacts – A Helm source for org-contacts

This helm source can be used to search contacts stored in org-contacts format.

screenshot.png

The screenshot shows the entries stored in the org-contacts file shown below.

* Forrest Gump
  :PROPERTIES:
  :ADDRESS: 100 Waters Edge, 30314 Baytown, LA, United States of America (WORK)
  :ADDRESS: 42 Plantation St., 30314 Baytown, LA, United States of America (HOME)
  :PHONE: +1-111-555-1212 (WORK, VOICE)
  :PHONE: +1-404-555-1212 (HOME, VOICE)
  :TITLE: Shrimp Man
  :PHOTO: http://www.example.com/dir_photos/my_photo.gif (GIF)
  :REV: [2008-04-24 Thu 19:52]
  :N: Gump;Forrest;Mr.;;
  :ORG: Bubba Gump Shrimp Co.
  :LABEL: 100 Waters Edge, Baytown (WORK)
  :LABEL: 42 Plantation St., Baytown (HOME)
  :EMAIL: forrestgump@example.com (PREF, INTERNET)
  :END:
* Derik Stenerson
  :PROPERTIES:
  :PHONE: +1-425-936-5522 (WORK, MSG)
  :PHONE: +1-425-936-7329 (WORK, FAX)
  :ADDRESS: One Microsoft Way, 98052-6399 Redmond, WA, USA (WORK, POSTAL, PARCEL)
  :BDAY: 1963-09-21
  :N: Stenerson;Derik;;;
  :ORG: Microsoft Corporation
  :EMAIL: deriks@microsoft.com (INTERNET)
  :END:
* Anik Ganguly
  :PROPERTIES:
  :PHONE: +1-734-542-5955 (WORK, MSG)
  :ADDRESS: 38777 West Six Mile Road, 48152 Livonia, MI, USA, Suite 101 (WORK, POSTAL, PARCEL)
  :ORG:  Open Text Inc.
  :N: Ganguly;Anik;;;
  :EMAIL: ganguly@acm.org (INTERNET)
  :END:
* Robert Moskowitz
  :PROPERTIES:
  :EMAIL: rgm-ietf@htt-consult.com (INTERNET)
  :N: Moskowitz;Robert;;;
  :END:

This file was generated from a Vcard file using a simple python script.

There are actions for inserting postal addresses, email addresses, and phone numbers in the buffer where helm-org-contacts was called.

Combination with helm-mu-contacts

helm-mu-contacts lists email addresses extracted from mailboxes (via the Maildir indexer mu). Helm-mu-contacts is not a general contacts manager and for large mailboxes it tends to show a lot of false positives, e.g., outdated email addresses. However, helm-mu-contacts and helm-org-contacts can be usufully combined into one helm search via the following code:

;; Combine mu contacts with org contacts:
(defun helm-contacts ()
  (interactive)
  (helm :sources '(helm-source-org-contacts helm-source-mu-contacts)
        :full-frame t
        :candidate-number-limit 500))

This way we get clean contact data from our address books and we can fall back to email addresses extracted from our mailboxes when the person in question is missing in the address book.