From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nick Dokos Subject: Re: Using properties for diary-anniversaries Date: Mon, 24 Jan 2011 09:36:58 -0500 Message-ID: <26027.1295879818@gamaville.dokosmarshall.org> References: <1295793360.20637.1416756473@webmail.messagingengine.com> <7298.1295831795@gamaville.dokosmarshall.org> <1295857674.26398.1416871253@webmail.messagingengine.com> Reply-To: nicholas.dokos@hp.com Return-path: Received: from [140.186.70.92] (port=38337 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PhNXq-0002v4-KU for emacs-orgmode@gnu.org; Mon, 24 Jan 2011 09:37:27 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PhNXh-0003YP-7f for emacs-orgmode@gnu.org; Mon, 24 Jan 2011 09:37:26 -0500 Received: from vms173003pub.verizon.net ([206.46.173.3]:64318) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PhNXh-0003Y7-18 for emacs-orgmode@gnu.org; Mon, 24 Jan 2011 09:37:17 -0500 Received: from gamaville.dokosmarshall.org ([unknown] [173.76.32.106]) by vms173003.mailsrvcs.net (Sun Java(tm) System Messaging Server 7u2-7.02 32bit (built Apr 16 2009)) with ESMTPA id <0LFJ002EO79MF3A0@vms173003.mailsrvcs.net> for emacs-orgmode@gnu.org; Mon, 24 Jan 2011 08:37:00 -0600 (CST) In-reply-to: Message from lecodesportif@eml.cc of "Mon, 24 Jan 2011 00:27:54 PST." <1295857674.26398.1416871253@webmail.messagingengine.com> 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: lecodesportif@eml.cc Cc: Nick Dokos , emacs-orgmode@gnu.org lecodesportif@eml.cc wrote: > > > * John > > > :PROPERTIES: > > > :Name: John > > > :Birthday: 5 4 1900 > > > :END: > > > > > > I would like to add the "Birthday" and "Name" properties to Org Agenda > > > automatically. What I have so far is: > > > > > > %%(apply 'diary-anniversary (read (org-entry-get nil "Birthday"))) John > > > > > > When I enter this line right after the properties, the anniversary is > > > added at the correct date in the agenda. But I still have to enter the > > > name manually. > > > > > > > Try something like this: > > > > %%(apply 'diary-anniversary (mapcar 'string-to-number (split-string > > (org-entry-get nil "Birthday")))) John is %d years old > > The %d was already working with my above code and the entry was > displayed at the correct date. What I am looking for is a way to get the > value of the name property ("John") automatically. That way I wouldn't > have to insert all names manually in the %%(apply... line following the > properties. > Yes, sorry: I figured that I had answered the wrong question after I sent it, but I was too tired to fix my mistake at that time. However, I could not make your formulation work for me at all. I still don't understand how it could possibly work: afaict, org-entry-get returns the birthday as a string, "5 4 1900", the read returns the month as a number, 5, and diary-anniversary should blow up because it needs at least two arguments (a month and a day) - and it does in my case. Be that as it may, re. filling in the name, I don't know how to do it and I'm not sure that it can be done: the string after the function call is scanned for %d but no other evaluation is done. org just passes the string along and all of that work is done in diary-anniversary whose doc string says: ,---- | The diary entry can contain `%d' or `%d%s'; the %d will be replaced | by the number of years since the MONTH, DAY, YEAR, and the %s will | be replaced by the ordinal ending of that number (that is, `st', | `nd', `rd' or `th', as appropriate). The anniversary of February 29 | is considered to be March 1 in non-leap years. `---- So I think that's all you can do. Nick