From mboxrd@z Thu Jan 1 00:00:00 1970 From: Skip Collins Subject: Re: Recurring events with exceptions Date: Tue, 18 Oct 2011 14:15:05 -0400 Message-ID: References: <2011-10-18T18-47-42@devnull.Karl-Voit.at> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Return-path: Received: from eggs.gnu.org ([140.186.70.92]:36778) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RGEBw-0005nj-Nj for emacs-orgmode@gnu.org; Tue, 18 Oct 2011 14:15:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RGEBv-0002zJ-3h for emacs-orgmode@gnu.org; Tue, 18 Oct 2011 14:15:08 -0400 Received: from mail-iy0-f169.google.com ([209.85.210.169]:33506) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RGEBu-0002yI-Ve for emacs-orgmode@gnu.org; Tue, 18 Oct 2011 14:15:07 -0400 Received: by iagf6 with SMTP id f6so1253106iag.0 for ; Tue, 18 Oct 2011 11:15:05 -0700 (PDT) In-Reply-To: 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: emacs-orgmode@gnu.org > (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 real-world repeating appointments do not follow a rigid pattern such as "visit the gym every monday from 7pm to 9pm." I know that I will not be following that pattern 50 years from now. But the default repeat pattern in most software does not include an end date. Infinitely repeating appointments are just stupid. Second, the whole concept of an exception to a repeating appointment is broken. It presumes that the pattern is the norm and the exception is, well, exceptional. None of my weekly meetings actually meets every week in a given year. The code above illustrates the problem. What if I just want to move one instance by a half-hour? The difference between deleting an instance and changing or adding an instance is hard to capture when basing everything off of a rigid pattern. In my opinion, a better framework for dealing with repeating appointments would be to view them as a list of individual instances that can be managed as a collection. When creating a repeating appointment, the user should be able to generate a list that follows some pattern (e.g. every monday at 7pm), with a mandatory end date. The user should also be able to easily add or subtract arbitrary instances to or from the list. Actions can be performed on all instances in a collection or on individual instances. The collection of instances could be defined by a shared UID or tag. But each instance should be flexible enough to have its own title, date, time, duration, invitee list, location, etc. It should also be possible to separate (or copy) individual instances from the repeat collection. Using arbitrarily complex sexp functions to achieve reasonably flexible repeating appointments seems like overkill when a properly structured and managed list can accomplish the desired effect. Of course the devil is in the implementation details.