Re: [calsify] draft-ietf-calext-jscalendar - thoughts

"Robert Stepanek" <rsto@fastmailteam.com> Mon, 13 May 2019 14:56 UTC

Return-Path: <rsto@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 331E1120120 for <calsify@ietfa.amsl.com>; Mon, 13 May 2019 07:56:43 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level:
X-Spam-Status: No, score=-2.7 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, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=fastmailteam.com header.b=UQDw7zEJ; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=O4qhbGz5
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 LammugMmZrsM for <calsify@ietfa.amsl.com>; Mon, 13 May 2019 07:56:40 -0700 (PDT)
Received: from out4-smtp.messagingengine.com (out4-smtp.messagingengine.com [66.111.4.28]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id EFB21120094 for <calsify@ietf.org>; Mon, 13 May 2019 07:56:39 -0700 (PDT)
Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 3F17223555 for <calsify@ietf.org>; Mon, 13 May 2019 10:56:39 -0400 (EDT)
Received: from imap7 ([10.202.2.57]) by compute1.internal (MEProxy); Mon, 13 May 2019 10:56:39 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= fastmailteam.com; h=mime-version:message-id:in-reply-to :references:date:from:to:subject:content-type; s=fm2; bh=DEiJMfU v+tulkEd95+KRZyYgOjritLV+/6iwqXkVynk=; b=UQDw7zEJRalDZjvc6caYpwx UpRft+Dz45MSbYzv2ae9tXVqlTkI95OInVAAWPztUpGjAkTfP511Uv0GLCPgEVw9 wX80wHhiEtT1FQDOwIA+c4cEhr/QG56Oahn+oZ2ao3ROx7K1FgtisodaFY8lIOrb 5U8/5w+fo5Tq4EKIFyZtS3IjFi+WWXYy1w3MpRJVLPMDGuq/AZcnOWI6paxzIRnc 1g1F1Ev8210mHm02FVnumh4wlzBON53iKT5dPDfSB41p4RumUyjrTPlIWlTuezTO krNCkkdWgqNpLgIvdCcDXLWeEYCXWJ9qmwedZV9X/tPnK9WCmB6ChNplOo3G21Q= =
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; bh=DEiJMf Uv+tulkEd95+KRZyYgOjritLV+/6iwqXkVynk=; b=O4qhbGz5SKYvwAHn/ufuBJ aDAKWeMdn5VUrFaagdJeWuv1YJToDiss4zI+yDa4p9g+d5c6qZmZRL0rZ9O7xBT3 tlDZoBFcPU+GNzO1/yCqc0q9wof/kdVIDPLjh7nJIAn/jirXceWlEYm/hRa2RL/7 wfJZ1+EUhA5183DNsCWXycf20wZt4OAPHeGnEs5nOFJnUjt/T/ztzAostR4k7ikQ 4mTNsbiBdsr7N8EVVtTXTX/N/gtq46sTqUuEWuPj6xfpHpElqM8GZOOllGqVU7KH Bs/enfF52pqrXVRnRQQSLC9svOcBna4t0/9hO+/UrWb/Z/6n7llWYL62o6KNEy4A ==
X-ME-Sender: <xms:poXZXB34Bbt1YAsKG1-cptuwcvr38VUaKrsNEN5gTmB1UZysnblkuw>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduuddrleeggdekudcutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecunecujfgurhepofgfggfkjghffffhvffutgesrgdtre erreertdenucfhrhhomhepfdftohgsvghrthcuufhtvghprghnvghkfdcuoehrshhtohes fhgrshhtmhgrihhlthgvrghmrdgtohhmqeenucffohhmrghinhepihgvthhfrdhorhhgne curfgrrhgrmhepmhgrihhlfhhrohhmpehrshhtohesfhgrshhtmhgrihhlthgvrghmrdgt ohhmnecuvehluhhsthgvrhfuihiivgeptd
X-ME-Proxy: <xmx:poXZXNqfblPU2YEOBPrn3YZn_wXnMVpmEUpy2YAkusz_xF9GqTJzHQ> <xmx:poXZXD7DVp5R4PDwbJmfox0JYXR2uJ6aiYs-pH6CU4mZ_eaxvRWZuQ> <xmx:poXZXNV5eGcDy7jwzV1Yqoki3CJzghLNeC-3nqRRPLH2nHQ8ZkG8Fg> <xmx:p4XZXN__OJbI-rSDPXVeuu435I7nSk6uRevzkfZkXfrB_iFgIH7xBw>
Received: by mailuser.nyi.internal (Postfix, from userid 501) id 96406211CD; Mon, 13 May 2019 10:56:38 -0400 (EDT)
X-Mailer: MessagingEngine.com Webmail Interface
User-Agent: Cyrus-JMAP/3.1.6-453-g9eaa09e-fmstable-20190430v2bis
Mime-Version: 1.0
Message-Id: <9c2a894f-2ab1-4a05-9ced-885f1801155a@beta.fastmail.com>
In-Reply-To: <cb1b4ab3-3aaf-e22e-e7cd-2b45bad5cb87@gmail.com>
References: <cb1b4ab3-3aaf-e22e-e7cd-2b45bad5cb87@gmail.com>
Date: Mon, 13 May 2019 10:56:24 -0400
From: Robert Stepanek <rsto@fastmailteam.com>
To: calsify@ietf.org
Content-Type: multipart/alternative; boundary="4618fc4fc1b94b6b8bf8234aaf81ad6c"
Archived-At: <https://mailarchive.ietf.org/arch/msg/calsify/Ur20UWCXHs-u8wiepdBPf9TaRJk>
Subject: Re: [calsify] draft-ietf-calext-jscalendar - thoughts
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: Mon, 13 May 2019 14:56:43 -0000

Doug, many thanks for your feedback - much appreciated. Please see my answers below:

On Sat, May 11, 2019, at 7:53 PM, Doug Royer wrote:
> I initially read the draft and updates with the idea that it was another 
> representation of iCalendar.
> [...] So I re-read this draft with replacement in 
> mind. These are not necessarily problems, just thoughts and questions.

I am not sure what you mean by "replacement" and "representation", so let me clarify my point of view:

JSCalendar defines a data model and format for calendaring data, as an alternative to iCalendar. It shares a lot of concepts with iCalendar, but it deliberately isn't 100% compatible. If by "representation" you mean "a different format to express exactly the same thing", then JSCalendar isn't a representation of iCalendar.

As to replacement: we think that JSCalendar is the better alternative to iCalendar for a large number of use case (otherwise, why we bother with it). But as it currently stands, it just defines a data format. We haven't started on working out how to use it with iMIP/iTIP, and we are just getting started defining how to use JSCalendar with other protocols (e.g. JMAP). The current RFC document is the ground work required to get started with this. It can be useful in its own as a data format, but as a replacement in iMIP/iTIP it is not ready.

> 1. If it is a replacement for iCalendar, please provide a list of 
> obsoleted properties and and some kind of migration path for the 
> replacement. Some comments in the spec imply obsoleted properties, they 
> are not named at all in this spec. (DTEND for example - which I think 
> should have never made it into iCalendar). Is this by design? If so, 
> what exactly?

 We recently uploaded an informational RFC draft which describes how JSCalendar and iCalendar could be mapped, but implementations are free to choose their own conversions:

https://tools.ietf.org/html/draft-ietf-calext-jscalendar-icalendar-00

> 2. Ambiguous ways of representing the same event. When it comes to 
> recurring events, they can still be represented with an RRULE 
> (recurrenceRule) OR with RDATE (recurrenceDates), or a combination. I 
> could not find mention of a preferred way. (Something like use 
> recurrenceRule only, except when it is not possible, then add 
> recurrenceDates, and/or recurrenceOverrides ).

We had discussed this, but decided against it. One of the reasons is, that it makes checking the validity of a JSCalendar object more complex, as implementations need to apply recurrence expansion during validity checking.

> 2.1 Same with updates to events that have recurrences. EXACTLY what is 
> sent in the update? [...]
> 3. iTIP/iMIP Is a jCal iTIP/iMIP replacement in the works? [...]
> 3.1 Are jCal iTIP/iMIP messages sent in jCal format or iCalendar format?
> 4. How does this relate to WebDAV and its objects [...]

All this is out of scope of the data format. We don't have a proposal, yet (but we'd be happy to hear any!).

> 5. Is a iCalendar to jCal migration path specification in the works?

I guess you mean JSCalendar, rather than jCal? Please see my reply to your question 1.

> 6. Unrelated to ambiguous. Why are alarms/alerts still sent? Does anyone 
> accept an alarm the organizer sends out?

Similar to iMIP, we don't enforce this on the data format level. Personally, I agree that alerts only make sense per user and organizers typically don't know which alerts I require.

> 6.3 Where is valarm? Gone? Alert mentions alarms, yet no definition of 
> alarm.

JSCalendar standard alerts are the alternative to VALARM. They define time-based triggers and have a "display" and "email" action, but without describing the content of these triggers. That's due to the observation, that server providers and client devices typically have their own way to render the alert, and especially devices can make better decisions how to alert a user under the current circumstances.

> 7. Under "Security Considerations"
> Should it mention "do not send private data to organizer"? And a list of 
> what NOT to send: Alarms, Alert updates/snooze/...

Again, that will to be defined, but is out of scope of the current RFC.

> 8. I am confused by highlighting meaning of *this*, _this_, and "this" 
> As described in 1.3 and the highlighting methods throughout this spec.
> I have not seen these used in a draft before.

The notation should make things simpler to read, not make them more confusing. I'm sorry if it failed on you. Would you have an example of an RFC which achieves this better? I'll also look at recent RFCs for different formats.

> 9. The term "master object" is used once and not defined. Is this the 
> organizer object? Or the users copy?

It meant the main event in a recurring event (e.g. in iCalendar the VEVENT without RECURRENCE-ID). I took note to phrase this better.

> 10. The 'JSGroup' object seems to be new to jCalendar and iCalendar. Did 
> I miss something in past documents?

 JSGroup is a very light wrapper around JSEvent and JSTask. It's similar to a VCALENDAR component that contains VEVENT and VTODO.

> 11. Color (4.2.10). Can't imagine implements would not just totally 
> ignore this property from organizer.

Out of scope of the data format, but yes: agreed :)

> 12. _excluded_ property (4.3.2). I assume (ambiguous) if it can ever be 
> set to false? Can I send it in object set to false at all? When would it 
> be valid to set it to false? What is the point of ever being able to 
> send one set to false?

This property represents what's EXDATEs in iCalendar. It could be set to false, but it's only really useful to set it to true, or not at all.

> 13. Should alerts be excluded from a 'PatchObject'?

I guess you mean during an iMIP exchange, right? That would sense, but it's not decided in this RFC.

> 14. In 4.4.3 privacy: what is a 'sharee'? Is a sharee a participant? Or 
> [..]

I'm sorry to sound like a broken record, but we don't address this in this RFC. But these are all good questions that we'll need to answer!

> 15. 4.4.5 participants "memberOf" Exactly how is this used? It is a new 
> property to calendar - correct?

It's iCalendar alternative is the MEMBER parameter on the ATTENDEE (https://tools.ietf.org/html/rfc5545#section-3.2.11)