From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric S Fraga Subject: Re: Recurring events with exceptions Date: Tue, 18 Oct 2011 20:57:13 +0100 Message-ID: <874nz6ysx2.fsf@ucl.ac.uk> References: <2011-10-18T18-47-42@devnull.Karl-Voit.at> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([140.186.70.92]:37623) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RGFmr-0004rz-FF for emacs-orgmode@gnu.org; Tue, 18 Oct 2011 15:57:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RGFmq-00054F-9c for emacs-orgmode@gnu.org; Tue, 18 Oct 2011 15:57:21 -0400 Received: from vscane-c.ucl.ac.uk ([144.82.108.43]:42418) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RGFmp-000544-Qu for emacs-orgmode@gnu.org; Tue, 18 Oct 2011 15:57:20 -0400 In-Reply-To: (Skip Collins's message of "Tue, 18 Oct 2011 14:15:05 -0400") List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Skip Collins Cc: emacs-orgmode@gnu.org Skip Collins writes: >> (and (your-sexp-here) (not (except-dates-here))) > > Pardon a slightly off-topic rant. I have yet to find calendar software > (org included) that handles repeating appointments with the kind of > flexibility that would make them really useful. First, typical [...] Have you looked at the following? ,----[ C-h f org-clone-subtree-with-time-shift RET ] | org-clone-subtree-with-time-shift is an interactive compiled Lisp | function in `org.el'. | | (org-clone-subtree-with-time-shift N &optional SHIFT) | | Clone the task (subtree) at point N times. | The clones will be inserted as siblings. | | In interactive use, the user will be prompted for the number of | clones to be produced, and for a time SHIFT, which may be a | repeater as used in time stamps, for example `+3d'. | | When a valid repeater is given and the entry contains any time | stamps, the clones will become a sequence in time, with time | stamps in the subtree shifted for each clone produced. If SHIFT | is nil or the empty string, time stamps will be left alone. The | ID property of the original subtree is removed. | | If the original subtree did contain time stamps with a repeater, | the following will happen: | - the repeater will be removed in each clone | - an additional clone will be produced, with the current, unshifted | date(s) in the entry. | - the original entry will be placed *after* all the clones, with | repeater intact. | - the start days in the repeater in the original entry will be shifted | to past the last clone. | I this way you can spell out a number of instances of a repeating task, | and still retain the repeater to cover future instances of the task. | | [back] `---- I find that this exactly what you are describing: I define an entry, clone it (with weekly shift, for instance) and then delete the exceptions and maybe add a few extras. If any weekly instance has to change, I simply change it! Works pretty well and handles all the cases you mentioned. -- : Eric S Fraga (GnuPG: 0xC89193D8FFFCF67D) in Emacs 24.0.90.1 : using Org-mode version 7.7 (release_7.7.381.g05ea.dirty)