Re: [calsify] Updated JSCalendar draft version 07

"Neil Jenkins" <neilj@fastmailteam.com> Thu, 27 September 2018 01:46 UTC

Return-Path: <neilj@fastmailteam.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 8449D130D7A for <calsify@ietfa.amsl.com>; Wed, 26 Sep 2018 18:46:41 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.983
X-Spam-Level:
X-Spam-Status: No, score=-1.983 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, MIME_HEADER_CTYPE_ONLY=0.717, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=fastmailteam.com header.b=JygqG/yx; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=lApZILDk
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 L4adc0k5Lefn for <calsify@ietfa.amsl.com>; Wed, 26 Sep 2018 18:46:39 -0700 (PDT)
Received: from out1-smtp.messagingengine.com (out1-smtp.messagingengine.com [66.111.4.25]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B5536127AC2 for <calsify@ietf.org>; Wed, 26 Sep 2018 18:46:39 -0700 (PDT)
Received: from compute6.internal (compute6.nyi.internal [10.202.2.46]) by mailout.nyi.internal (Postfix) with ESMTP id F0CB621F39 for <calsify@ietf.org>; Wed, 26 Sep 2018 21:46:38 -0400 (EDT)
Received: from imap22 ([10.202.2.72]) by compute6.internal (MEProxy); Wed, 26 Sep 2018 21:46:38 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= fastmailteam.com; h=content-type:date:from:in-reply-to :message-id:references:subject:to:x-me-sender:x-me-sender :x-sasl-enc; s=fm3; bh=5sh0DdGXV+ZPQM6/r+uZr99elB0OVBVEPaC99BTQ/ T4=; b=JygqG/yxho5/4WDmgGHyIaulsfK3AJbj1HFkkYAH3L+UHnfevlrZifZn/ zuIeeWbJG5yxNzt/Srw/IWwFK9kth3dztU3RxOvi2x8FPZa7BGstUMlIcEGxZ6ck VlaGH28FaPd8H8xcn+/9hUV7lk3nPK/l4cNrap79+i+avpWVPbt3lVqbf8tCsxXo la/xAYSI+LkKuNkZvkktaUqXYSRsTMlOgiHorSGcsggcR/gq1w9qyq7G2eSQV8dV QFyWyfO4FSNqhyxcp/E4lhl5jVgP/R/nN+9bgwY3y8fbsO+r4OkmKxX1qnggAs1F f4+12MowrzWf5LalsdSRbol3t32Dg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:in-reply-to :message-id:references:subject:to:x-me-sender:x-me-sender :x-sasl-enc; s=fm3; bh=5sh0DdGXV+ZPQM6/r+uZr99elB0OVBVEPaC99BTQ/ T4=; b=lApZILDk0Nqff5O2KnHdTBhVPyeGWhBGWRV8CellAErYQYmPtfWCtT/TL 80XejmaOkEAqxP/7WZxsSkvDGAP/kg9w92Js7BIGnD6KRxcWZqWedZ7ddeHK5WAO Q8gL83AYtcX05+d0/R8XB3IaL89vHE2NtLQ1rBCnnLPDgKwuS/XpQuQDZCrSKDyc mnV/iZH50vgXsJIl5QGhTqh2GFQZeuQCaoms1DtfRcHjuqLGH6bn2u7hrB6YrCaC WYvZTrS1SwN2xP4+Ue/eIVAA3Li9qWQjHmSwthb0eNMqSVV0wPjfmSNoGr3E7Lt6 NG7IF0oEsufan6O2z14IwnSJHpnvA==
X-ME-Proxy: <xmx:fjasW6i1e9lZQ8EqZVrftbA0LMsBO_ZbaFg_hPNffioBUvhqC_oXcw> <xmx:fjasW8hkiKeGr1iWV-xDP9K-YH6jYNGeCYUmtxFahaKtS6a8uQvBUA> <xmx:fjasW6snF-1vh5z45EE9pSduF43E-hbV7-izGeWYIDCSdXxesv_g6g> <xmx:fjasW1SYfOHVAie5r8pBVpQ9xB8gDDTCcatLhWdb3TyjwRC_bGNkzQ> <xmx:fjasW7GN2H835SGBpArEM-cdZczMTUm1JTHyfk0ZG-gRGV7V1jIExw> <xmx:fjasW5qCX0hhNn2yJw7_YWepcwTOmYNhrp1iZYkeD5sGT4Bpie_FOA>
X-ME-Sender: <xms:fjasWzMZ0D8lqRPR451xaf90zqK2uZsvnRAdi2TlGlqnv7BQ0HugCw>
Received: by mailuser.nyi.internal (Postfix, from userid 501) id 63A8EE311; Wed, 26 Sep 2018 21:46:38 -0400 (EDT)
Message-Id: <9cadcdb8-af01-4350-91b3-80c77ae8674a@sloti22d1t06>
User-Agent: Cyrus-JMAP/3.1.5-524-g68ca53c-fmnext-20180924v1
X-Me-Personality: 64588216
In-Reply-To: <1ccadecc-bcae-46ac-98ac-d71787b2e4f5@sloti22d1t06>
References: <1ccadecc-bcae-46ac-98ac-d71787b2e4f5@sloti22d1t06>
Date: Wed, 26 Sep 2018 21:46:37 -0400
From: Neil Jenkins <neilj@fastmailteam.com>
To: calsify@ietf.org
Content-Type: multipart/alternative; boundary="c42c01ec1f3047df829663d8eb342ef7"
Archived-At: <https://mailarchive.ietf.org/arch/msg/calsify/8syGjst7pPj_-4lV4gAqNrobsPE>
Subject: Re: [calsify] Updated JSCalendar draft version 07
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: Thu, 27 Sep 2018 01:46:42 -0000

On Thu, 20 Sep 2018, at 7:55 PM, Robert Stepanek wrote: 
> *Main changes*  
>  * Replaced the `web` replyTo property with `other`. The iCalendar spec allows arbitrary CAL-ADDRESS values for attendees and organizer. While running our implementation of the latest JSCalendar spec draft on production data, we ran into such calendar objects. JSCalendar needs to be able to handle these non-mailto, non-HTTPs URIs. 
>  * The `email` property of the Participant object became optional (for the same reasons as the previous bullet point).  
 
That's fine.
 
>  * The id of a Participant object in the `participants` property now must be a valid URI. 
 
I don't like this because it's different to how these kind of set-of-items properties (e.g. locations, alerts) work in two imporant ways: 
 * It means the id has semantic value. 
 * It means the id has different allowed character restrictions compared to these other objects. 
 
I suggest that instead we add a new `sendTo` property on the participant object, with a value in the same format as the `replyTo` JSEvent property. This has a number of advantages: 
 * The ids for the participants can have the same restrictions as elsewhere and, like elsewhere do not have semantic meaning. 
 * The email property (for contacting the person) can be defined separated from the imip-email (for sending updates to the event). In the future, you could create an event that sends an iMIP message to the user's email. The RSVP however could update the `sendTo` property to either give a different email, or even add a separate protocol option (like `replyTo` it can include multiple options, so the organiser can then choose whichever they support). This allows you to then potentially bypass email for future updates (which is nice because most systems avoid sending iMIP updates for attendee status changes to avoid flooding the user's inbox, but if the organiser knew it was directly updating the calendar they could send all the updates and keep everyone in sync). 
 
>  * The `replyTo` URI Template replaced the `email` variable with a `participantId` variable. The allowed level for the URI template now is 2 (instead of previously 1) to support URI-encoding of the participant id. 
 
This can then be level 1 again (so only simpler substitution required) with the above change.
  
> *Open points* 
>  * The current spec requires durations to be calculated in UTC. The iCalendar specification requires durations to be calculated in the calendar object time-zone. No consensus has been found on the mailing list, yet. I suggest to redefine durations to be calculated in the event time-zone.  
 
Yes, I think this is probably the best way forward, if nothing else for iCalendar compatibility. It also gives more flexibility, in that a client can define an event as 24h duration to ignore DST shifts, or 1 day if they really want to include them. (All day events are always in floating time, so this makes no difference to them of course). 
 
Neil.