Re: [calsify] JSCalendar and iCalendar scheduling

Michael Douglass <mikeadouglass@gmail.com> Tue, 16 March 2021 02:46 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 68A6F3A181A for <calsify@ietfa.amsl.com>; Mon, 15 Mar 2021 19:46:56 -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, NICE_REPLY_A=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, 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 5Qbzo_BLFFdp for <calsify@ietfa.amsl.com>; Mon, 15 Mar 2021 19:46:54 -0700 (PDT)
Received: from mail-qt1-x82a.google.com (mail-qt1-x82a.google.com [IPv6:2607:f8b0:4864:20::82a]) (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 6AD9B3A1819 for <calsify@ietf.org>; Mon, 15 Mar 2021 19:46:54 -0700 (PDT)
Received: by mail-qt1-x82a.google.com with SMTP id 73so10699780qtg.13 for <calsify@ietf.org>; Mon, 15 Mar 2021 19:46:54 -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=Juy7bDeQ//JnpoovK8JUmxiKcsxbtccfJAS2R3TPkAM=; b=lP6Qstqbyviuh3ladX+Lzr1yV88jqpy1pZ01EgZ45RVDUPDOQI8XBWknwBdhU0Gwqk bX5Jv3yyCmhXKzt1+vHYazoXcRlutK9W5WmQW7yXwyb9s8A492Q8jVUeWP6Le45CjDc0 tcpAWTyF+/Wc2gwO6ZeuiqREgcfpjlkQtBzVzg/JWJSbnkRNaVP760egN1w6A5lw9ABS oJ7Hef1RiAC1oLdzqagyCTJ6t4Hvm3WQWWY4oqOMUBmsv4Am26Uaq+dibiKrQU0dHaIj YFRkwz6oAF3YKbq5KeE06KJSHylUubrtJDBSTBiO+w5SfK42G1LCtYoKhlN1nn1MF/L8 FfAA==
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=Juy7bDeQ//JnpoovK8JUmxiKcsxbtccfJAS2R3TPkAM=; b=BQS6vLMiPGMLGRA2oC5E/yuWfwG6KmJHzOHbJ3UlNYB7qErDyGtwvFHjzbP1TlpG1E XsheiWqS7Q2y1053JvpxlC6CV+EHTD2s9+iuk9n3jfn3H1leQDUyO7vYLQKJzf6pxEIy uH/vjE3JoDiFcvtkVxl/anQSBE4nT0xn7HGLiDkBv82OFFQ3fwEX2PnT43P+wBJRk3Fl 1RhdmZ2plTtf+5GmqY2rQ5d6YnjEiStvIKATEZWZrs2xHVUWjJ3gIleao25B+egXpdMR nqVRBJhOalCTAe6bPfD9EwXQmBosrQoGkaFZlQ8Dm3lOfYSP7+JtnJOLaZrDloV3Hd5D Gmqw==
X-Gm-Message-State: AOAM533R1D28muoQGh4NBJymilf8xjlNxWMuSLMioopq/QcWi1yZ+oeG pKwLSdKenhXDbLw0q2WYQxdTevLjuYA=
X-Google-Smtp-Source: ABdhPJxA3u/08Jwin7tKBCBerFJc7xTTD0hg8pKUuzi90/3xrFVDnmRr+DwRkozyAA62QDYPU0+NvA==
X-Received: by 2002:ac8:702:: with SMTP id g2mr9197204qth.215.1615862812586; Mon, 15 Mar 2021 19:46:52 -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 k7sm11954909qtm.10.2021.03.15.19.46.51 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 15 Mar 2021 19:46:51 -0700 (PDT)
To: Robert Stepanek <rsto@fastmailteam.com>, calsify@ietf.org
References: <627d96ce-f43f-46d2-9e0d-4f815e04e7f1@www.fastmail.com>
From: Michael Douglass <mikeadouglass@gmail.com>
Message-ID: <bb3e54f1-f1f7-35e5-069f-e760d4590e63@gmail.com>
Date: Mon, 15 Mar 2021 22:46:50 -0400
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:78.0) Gecko/20100101 Thunderbird/78.8.0
MIME-Version: 1.0
In-Reply-To: <627d96ce-f43f-46d2-9e0d-4f815e04e7f1@www.fastmail.com>
Content-Type: multipart/alternative; boundary="------------B2717D9C9DFCB7E33B1CBAE8"
Content-Language: en-US
Archived-At: <https://mailarchive.ietf.org/arch/msg/calsify/oDGP8HPUpiYlY_Du9yG9wAdKYyw>
Subject: Re: [calsify] JSCalendar and iCalendar scheduling
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, 16 Mar 2021 02:46:56 -0000

On 3/15/21 06:56, Robert Stepanek wrote:
> Before we publish draft-ietf-calext-jscalendar we want to be extra 
> sure that both JSCalendar and iCalendar interoperate cleanly in 
> scheduling. We discussed this in IETF 110 last week and I would like 
> to now present a proposal that should address all raised concerns. 
> Please let me know your feedback so that we can find consensus on this 
> topic.
>
> *ATTENDEE property value and Participant.sendTo*
>
> The property value of an ATTENDEE maps to a single-valued sendTo 
> property of a JSCalendar Participant. The method of the sendTo 
> property value is determined by the URI scheme: a |mailto:| URI maps 
> to to the |imip| method, any other URI scheme (or none) to |other|.
>
> A sendTo property with only a single method maps to the ATTENDEE 
> property value, irrespective of the method type. If the sendTo 
> property has both |imip| and |other| entries, then the default is to 
> map the |imip| method value to the ATTENDEE property value. The 
> |other| entry is preserved by a (to be defined) iCalendar parameter. 
> To override this heuristic, the calext-jscalendar-icalendar RFC will 
> register a new Participant property that allows to explicitly state 
> which method to use when mapping the ATTENDEE property value.
>
> *EMAIL parameter and Participant.email*
>
> The iCalendar EMAIL parameter maps to the email property of the 
> Participant. If no EMAIL parameter is set then the email property is 
> null, even if the iCalendar property value is a |mailto:| URI. 
> Likewise, only the Participant email property maps to the EMAIL 
> parameter, the |imip| sendTo method value never maps to EMAIL.
>
> An ORGANIZER always maps to the replyTo property. if the ORGANIZER 
> also has an EMAIL parameter then it also maps to a Participant, with 
> the |email| property set and the role set to |owner|. Likewise if the 
> ORGANIZER has a CN parameter.
>
> *Participants and iTIP*
>
> For iCalendar, the cardinality of ATTENDEE properties in a iTIP 
> message is well defined. For example, a REPLY message must include 
> exactly one ATTENDEE (except for delegating events).
REPLY only allows one attendee. Delegation is carried out with REQUEST 
and REPLY
>
> For JSCalendar, a REPLY may contain multiple participants. One for the 
> replying participant, and additional participants for any participants 
> identified in the sentBy, invitedBy, delegatedFrom, delegatedTo and 
> memberOf properties. To simply identify the originator of the iTIP 
> message sender, either the calext-jscalendar-icalendar RFC or the 
> calext-jscalendar RFC will define a new top-level property that 
> defines the originating participant identifier. This property must 
> only be set for iTIP messages.
>
> A replying participant may need to define new participants (e.g. for a 
> new delegate). It must choose an unused participant identifier for 
> each new entry. The organizer of the event may need to resolve 
> duplicate participant ids from multiple replies and may assign new 
> participant ids. Consequently, clients must be prepared to deal with 
> new participant ids for each sequence of an event.

This all seems very complicated. We've gone from a reasonably simple 
model in which the value of the ATTENDEE uniquely and reliably 
identifies the attendee throughout the sequence of messages to something 
which combines internal key values (participant ids) and a mix of keys 
for the participant itself.

The reason I proposed a calendarUserAddress property was simplicity - 
it's a 1-1 mapping with the ATTENDEE value and can be used as a key for 
the delegated..., invitedBy etc.

I'm fine not having that property IF we can come up with another way of 
clearly providing a single key for an attendee/participant.

I don't think this is just about icalendar<->jscalendar translation. We 
need to ensure that we can carry out current scheduling operations even 
if they are completely done in jscalendar.


>
> _______________________________________________
> calsify mailing list
> calsify@ietf.org
> https://www.ietf.org/mailman/listinfo/calsify