Re: [calsify] iCalendar Series draft

Michael Douglass <mikeadouglass@gmail.com> Tue, 27 April 2021 04:17 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 45C563A1685 for <calsify@ietfa.amsl.com>; Mon, 26 Apr 2021 21:17:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.087
X-Spam-Level:
X-Spam-Status: No, score=-2.087 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, NICE_REPLY_A=-0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, T_SPF_TEMPERROR=0.01, URIBL_BLOCKED=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 Xi540vuII_tk for <calsify@ietfa.amsl.com>; Mon, 26 Apr 2021 21:17:00 -0700 (PDT)
Received: from mail-qk1-x735.google.com (mail-qk1-x735.google.com [IPv6:2607:f8b0:4864:20::735]) (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 86E583A16B8 for <calsify@ietf.org>; Mon, 26 Apr 2021 21:16:55 -0700 (PDT)
Received: by mail-qk1-x735.google.com with SMTP id t17so30372854qkg.4 for <calsify@ietf.org>; Mon, 26 Apr 2021 21:16:55 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-language; bh=xdeKcwN3+p5cYhNZFHXp3bwjgti7ZxfTUiOqKVY3XBI=; b=vHf8K8tMTyxxLFaQrl9R4dZLdwbepkxIpk01XTWNn7+qy3gnFXmPTCg7fqWLWQ2TGo LsbNayJnAm7njfPHStrdmmXqD+HGcFr74Wqbf+44SP79D3CCNaFjbVwMPcGnQ43/0dyQ Rguy7/xMGFbY6/ddchhcEGK+ZN81kULyOBS1+0sd7KIgJ4gAUNUIB57XVQOrKcNxP6sH O5xhhTedr3EIgE7NaMoPYMAViVzu+yWMMBg2lxmdOnFcqc4VZue6+ROU21WJJchm+rEQ drPKy1HLsFkfn1RRps9zWIVkU19n0vnPO+TzOuQpkEFWQXLAdTUPQOquJ+ioB+PjAdzo 1CxQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language; bh=xdeKcwN3+p5cYhNZFHXp3bwjgti7ZxfTUiOqKVY3XBI=; b=dX5BtK9/nZsptL8TpCuSS1d/A4AxNytwipZGqRXuEpXAZT688In5JquOgyaKsNpBtz 0VkRwC4f+7dpAfBU4WAidAsXUex1lhJa9sZ0Jk9Y0tulPD4hPBLmxw3amdzIAzuU83LD roc8LKe+hvaQ/XO/UD135SMnd/8u0nZa9o79QvFzIR/fScUZBOmiC0fK6Jnl+1QD1AUF 7jkMh0Qn774njND1lhl/+9JxrEGM5aXIFHniLNwYKZkL/IgOrSJ4zutffCBzELmAqUvd 1WfRo26WxIBRWkRaMGvecIv4pSvwd74YP53EBlCtikX8k0Nla4A/3+pHOfHTeud96q21 fqbA==
X-Gm-Message-State: AOAM530UCcKzPwQVDURBYRD1Y+Yov92FbTEjnipnnejX4a+Mj5DgLLwe sNLIBqw51XQNhyNTCE0DdeMdipIhe3Y=
X-Google-Smtp-Source: ABdhPJxBfqK2EdRAt7aG/qoU6Dhw1hvWEzCdnNPlcXBib5KOBr1idyXaZlwhU0czjXSM49lusKoOGQ==
X-Received: by 2002:a37:912:: with SMTP id 18mr20543280qkj.446.1619497013444; Mon, 26 Apr 2021 21:16:53 -0700 (PDT)
Received: from MacBook-Pro-2019.local (cpe-74-70-70-237.nycap.res.rr.com. [74.70.70.237]) by smtp.googlemail.com with ESMTPSA id d6sm13230436qtn.52.2021.04.26.21.16.52 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 26 Apr 2021 21:16:52 -0700 (PDT)
To: Tim Hare <TimHare@comcast.net>, 'Calsify' <calsify@ietf.org>
References: <0331f674-dc29-5795-c9d2-93efb0fcef61@gmail.com> <029501d73afb$262ec2c0$728c4840$@comcast.net>
From: Michael Douglass <mikeadouglass@gmail.com>
Message-ID: <b920c6a1-577a-a3f1-a112-95162621f2c1@gmail.com>
Date: Tue, 27 Apr 2021 00:16:51 -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
In-Reply-To: <029501d73afb$262ec2c0$728c4840$@comcast.net>
Content-Type: multipart/alternative; boundary="------------0B9C259DC9C374860FC6D36D"
Content-Language: en-US
Archived-At: <https://mailarchive.ietf.org/arch/msg/calsify/aO41vIz2bm6mOVwajiNlhVrukKg>
Subject: Re: [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: Tue, 27 Apr 2021 04:17:12 -0000

On 4/26/21 20:20, Tim Hare wrote:
>
> “I still feel the rules governing series should be distinct from those 
> for recurrences”
> “Simply duplicating the relevant properties with mostly the same 
> semantics and value types”
>
> NOT a criticism, but a question:  where and how would a series differ 
> from recurrence?  If it doesn’t differ significantly, then the cost of 
> implementation may exceed the benefit
>
Recurring events are treated as a single resource - that's how they are 
defined - all instances and the master have the same uid. Long running 
instances with many overrides get very large.

Rather than try to redefine how recurrences are defined and handled - 
which is going to lead to all sorts of backward compatibility issues - I 
came up with a different approach - each instance looks like a separate 
event - apart from the present of the new relation which ties it back to 
the 'master'. Older clients - in fact most clients in the future - can 
treat them as regular events.

This better matches what happens with public events for example - 
museums, art galleries etc have a series of events - lectures, public 
days etc, which occur regularly but each instance is different. Standard 
recurrences work fine until you start changing every instance.

As for the cost of implementation - it's pretty low.

>
> Tim Hare
> Interested Bystander, Non-Inc.
>
> *From:*calsify [mailto:calsify-bounces@ietf.org] *On Behalf Of 
> *Michael Douglass
> *Sent:* Saturday, April 24, 2021 10:07 PM
> *To:* Calsify <calsify@ietf.org>
> *Subject:* [calsify] iCalendar Series draft
>
> 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.
>