Start a new topic

Best way to manage contacts?

I'm looking for a way to store contact information in org. It looks like org-contacts uses a property drawer to store things like birthdays, and then %%(org-contacts-anniversaries in a file picked up by the agenda.


Is there a way to manage contacts in org documents which would be friendly with both emacs & beorg? 


The most elementary feature would be having birthdays & anniversaries  show up on the agenda (not necessarily a TODO). But I have other recurring events, projects, and todos I'd like see in the context of a contact's personal info. 




That's right - BiwaScheme is used. This itself is written in JavaScript. So beorg adds some additional functions to BiwaScheme which are written in JavaScript, some of which then bridge to native iOS functionality (such as the recently added function to get your location).


The files of interest in beorg are:


1 person likes this

I'll look to add support for the property BIRTHDAY to indicate that a contact should be displayed in the agenda on the anniversary. Once this is in place then beorg should work well with contacts created by org-contacts templates - including searching for specific properties using the standard beorg search.


I'm going to look at some point in the near future giving beorg a UI to edit an item's properties, potentially with support for template sets of properties - which would then make creating new contacts from beorg easy to support via a template.

Suggest making the Property string be a RegEx that is supplied by the user via Scheme.

Should explain that more...


The reason for a (list of?) regex(s) is to allow the specifying of Bithday, Anniversary, Citizenship, etc.


Now that you've got Scheme in BeOrg, you need to build up the list of things that Scheme can do (a la Elisp).  Obviously, if you hook Scheme into too much of BeOrg, it will slow down BeOrg.  But Scheme could make BeOrg very flexible.

Could you provide an example of some fictional Scheme configuration and what the result would be to help more fully define this idea?

I'm thinking general principles.  Emacs power is in Elisp's ability to do most anything.  BeOrg's power could be in the ability of Scheme.  Right now, you would use Scheme to set variables.  In the future, it could pull data out of (say) iOS Contacts and build an always up-to-date org-contacts file (which could be synced to the Emacs server).  I'm not sure if Scheme has this type of power, but this would be a nice enhancement.  Similar things could be tried with the iOS Calendar.  Most of us are familiar with Elisp and Scheme isn't very different -- we just need the language documentation (BiwaScheme?).

Remind me - how do you see the current library.org file from within BeOrg?  Is it  possible to substitute in a new version of library.org without upgrading BeOrg?  Or would it be better to just override parts of library.org in init.org?


Have you thought of putting the documentation for library.org into library.org and then use Org to detangle the documentation from the scheme code?  You could just ship the scheme code with beorg and have the full (HTMLized) file on beorg.app in a version directory that beorg could refer to.  I would think that would keep the documentation and code in-sync more easily.

If you bring up the REPL (button top right on the Settings tab) you'll see a ? button at the top of the screen. Tap that to see either the introduction to scripting or the current version of library.org that is bundled with beorg.


A great idea about adding documentation to library.org. I've made a note of this and will see what I can do.

Login or Signup to post a comment