[calsify] iCalendar Series draft

Michael Douglass <mikeadouglass@gmail.com> Sun, 25 April 2021 02:07 UTC

Return-Path: <mikeadouglass@gmail.com>
X-Original-To: calsify@ietfa.amsl.com
Delivered-To: calsify@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 93EE73A29D6 for <calsify@ietfa.amsl.com>; Sat, 24 Apr 2021 19:07:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level:
X-Spam-Status: No, score=-2.098 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id H6EsTAcNqorl for <calsify@ietfa.amsl.com>; Sat, 24 Apr 2021 19:07:33 -0700 (PDT)
Received: from mail-qv1-xf32.google.com (mail-qv1-xf32.google.com [IPv6:2607:f8b0:4864:20::f32]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9D9D83A29D4 for <calsify@ietf.org>; Sat, 24 Apr 2021 19:07:33 -0700 (PDT)
Received: by mail-qv1-xf32.google.com with SMTP id j3so25689607qvs.1 for <calsify@ietf.org>; Sat, 24 Apr 2021 19:07:33 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=to:from:subject:message-id:date:user-agent:mime-version :content-language; bh=CIUewVdH7vrduaxjbQs0tEUnO/UvCHg4udfs/B9UbRM=; b=N115IJsIspl99Rv9Nm68BM+PehxpZ1Ll6PFMH4vDfXk+AOD2ExEqUBdutBXMphEv79 gjiTaDB8+fXa3PbB0nYRCjBtjlDsDcO+W8GaYxzhgTNaXg6x45ti2GPhc/eQhUHsStpE gVk8MrgReQ3ctRmoYXNirh/14ShegLz4YGxl0ST+FvI+spR80VTC+yC9/FS/uYpmGWb3 lLccF4fKVSzcvEfUeVozplYXK5mQCIcUMaR0nc8VFu07cKqiGgmv9w4tXgGHYo55ngVA cPVd+2uyLpWCmend8Pcom1vckyl7FiqDQn8OOOFu5BqNNuvlKAj7beh0zjl5ilFIHZYV 2Wfg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:to:from:subject:message-id:date:user-agent :mime-version:content-language; bh=CIUewVdH7vrduaxjbQs0tEUnO/UvCHg4udfs/B9UbRM=; b=CdwlollDUL8U0Xti0ShaKvLJ0A9xYdJg5B8l3wK4pQSZ+YBxAJk8TA2rdX6PQiJECq Lzz9rqN9rINiNYtPRourFaNIor3YFjqwfZuUacgBydUcjuBoV26cij3ASE95YhltvMmm xN/UUtra8gSxKzW+7vhOCLpiud1ZWgtGAMa2LLAr3l91YmM84x6RUkwLdzsNryS+IH2a vuDLbh4aX6d65jtLFTGX0R4WkO8KQXLZdOQY1N32kHzN47HbIg5lcwMQz8pezONy4LfC +pYze7v5Vya8qHHYCUT4QgXj5BcFkZtKRLgJ9Ywcr+Ug4kuNWeCcg1Hx9c3pyIhcGpcu oUjg==
X-Gm-Message-State: AOAM5311w4qwoSiJyY8t8+Edj8wg/r+/G9d+4hDdKvrKxvvdIiuZIEYk XE53ZyJARmjoSJBwiVimk8XtoOHH2ZQ=
X-Google-Smtp-Source: ABdhPJyD3b6xRMw5zPGbzI4CUUPu6YGohmjx+OW7xcX31gRsG7fnHuh8PcOdnO4HogPmMAaKVRe/pw==
X-Received: by 2002:a0c:db82:: with SMTP id m2mr11410132qvk.37.1619316451302; Sat, 24 Apr 2021 19:07:31 -0700 (PDT)
Received: from [192.168.1.149] (cpe-74-70-70-237.nycap.res.rr.com. [74.70.70.237]) by smtp.googlemail.com with ESMTPSA id d10sm852451qki.122.2021.04.24.19.07.30 for <calsify@ietf.org> (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 24 Apr 2021 19:07:30 -0700 (PDT)
To: Calsify <calsify@ietf.org>
From: Michael Douglass <mikeadouglass@gmail.com>
Message-ID: <0331f674-dc29-5795-c9d2-93efb0fcef61@gmail.com>
Date: Sat, 24 Apr 2021 22:07:29 -0400
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0) Gecko/20100101 Thunderbird/78.9.1
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="------------79E6E8C259A52B9DE7B4E10B"
Content-Language: en-US
Archived-At: <https://mailarchive.ietf.org/arch/msg/calsify/OZSYXnhRB333bFEcVtew8gpswT8>
Subject: [calsify] iCalendar Series draft
X-BeenThere: calsify@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: <calsify.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/calsify>, <mailto:calsify-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/calsify/>
List-Post: <mailto:calsify@ietf.org>
List-Help: <mailto:calsify-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/calsify>, <mailto:calsify-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 25 Apr 2021 02:07:37 -0000

At the last joint call there were a few questions and proposals...

*** Why standardize? ***

One was something like "why standardize this -couldn't it just be a 
reimplementation of recurrences".

I guess the flip reply is why standardize anything? More specifically 
though - how would a client store a series definition or transport it 
from one service to another?

*** Why the new SRULE etc properties ***

There's still the ongoing question of whether a series is just another 
form of a recurrence - i.e. why do we need to replicate the recurrence 
properties. I still feel the rules governing series should be distinct 
from those for recurrences. I have had cases where a series of 
recurrences makes sense (university tours comes to mind) and I don't 
want to prevent that possibility.

To enlarge on the university tour (for prospective students). As I 
recall the tours were identical on each day they occurred - something 
like every hour. There was some sort of pattern to the actual days 
allocated for the tours. At the time I felt something like recurring 
recurrences would work.

I don't see this is a significant complication. Simply duplicating the 
relevant properties with mostly the same semantics and value types.

*** Template - not master ***

This is a good idea I'd like to extend. I'm inclined to see this as 
something distinct from series - that is a template could be used for 
anything.

Of course - for a template to be useful it needs some variable parts adn 
it may be enough to just list the properties that MUST be defined

If we define a new TYPE and REQUIRED property we could have a template 
that looked like:

BEGIN:VTEMPLATE
TYPE:EVENT
REQUIRED:DTSTART,DTEND|DURATION
<a bunch of properties>
END:TEMPLATE

Of course a template could be provided completely filled in and that 
could take the place of the series master, e.g.

BEGIN:VTEMPLATE
TYPE:EVENT
DTSTART:20210315
DURATION:T1H
SRULE:...
<a bunch of properties>
END:TEMPLATE

I see templates being useful for events that occur irregularly but with 
a consistent structure - e.g. we always have a group meeting for 1 hour 
with a known set of attendees but there's no particular pattern to when.

*** Self-generation ***

One part of the series draft is how many instances are generated ahead 
of time. This came from a discussion long ago. With many recurring 
events it doesn't make much sense to create an actual instance more than 
a few weeks in advance. Many room booking systems have a booking window 
of a few weeks and there's not much point in having attendees agree to 
attend more than a few weeks out anyway.

I think this feature is really separate from series - it could just as 
well be applied to recurrences.

*** Proposed changes ***

1. Come up with a separate draft defining templates.

2. Change the series draft to use a template rather than a master.

3. create a separate draft for the parts which define how to limit the 
generation of instances in advance. This would show how to apply it to 
recurrences and to series.