Re: [calsify] JSCalendar: alternative to current all-day events

Andri Möll <andri@dot.ee> Mon, 17 June 2019 17:44 UTC

Return-Path: <andri@dot.ee>
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 9F12E120496 for <calsify@ietfa.amsl.com>; Mon, 17 Jun 2019 10:44:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level:
X-Spam-Status: No, score=-2 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_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=zonevs.eu header.b=sywm5uEt; dkim=pass (2048-bit key) header.d=srs1.zonevs.eu header.b=wytS2PYC; dkim=pass (2048-bit key) header.d=dot.ee header.b=m7wM99uG
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 kMedadrS41dz for <calsify@ietfa.amsl.com>; Mon, 17 Jun 2019 10:44:07 -0700 (PDT)
Received: from srs1.zonevs.eu (srs1.zonevs.eu [217.146.68.191]) (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 07E83120493 for <calsify@ietf.org>; Mon, 17 Jun 2019 10:44:06 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zonevs.eu; q=dns/txt; s=oct2016; bh=nGFt6GoNJTepS20MITwjXDSOY52yQElGhyUvYc4iepA=; h=from:subject:date:message-id:to:mime-version:content-type:in-reply-to:references; b=sywm5uEtJDvYVVdzl9eGi4nO0ov5Lkg1KXJRAP70B0i+vd+R6ocjHW7fRjsMY8a1dEyeIxqXf 1QkOTTSBNrzyXaPjvWPmf0CtBxkuQTldQWnPOBOqiSv78MKeClhS85HK9QOgRxT9lWbDZQqvew4 KLIxVw42O7B9U9cjbDiLGQoYXXGlkwzg6JxpmMktQq334xmrFglmKLW7C82ajc7OseZt9imLUnK AKSwqRlEfcN6ZeszF36yv4+Suv8eL4a0W9AIyzoi2XKQoe0mTuFRD0u4CZlHKzcFD+F+oO4GW9j 8WZeHP8cXvAGofJr8sOlfQ0o+4Sqw7uBqIKFgerbY9/w==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=srs1.zonevs.eu; q=dns/txt; s=oct2016; bh=nGFt6GoNJTepS20MITwjXDSOY52yQElGhyUvYc4iepA=; h=from:subject:date:message-id:to:mime-version:content-type:in-reply-to:references; b=wytS2PYCAmoF+1qVGTsO+W6kuq00/T5zj69/9GumOGA8XxYsQ/idZjsev+7IcMS0Lr2nlQfD+ EnM5ez+jFmz5WUROdesfigxZkdETMER5yLrJbVQX1cXAsNJiIT7jEXrks6HW50V17glmE5X04Nb qYZZ0SWC3QwG5uwrjlLcrj7XYhkchVW3AAcDWC/IasM8ihl1BuWH5FepnBbFvmn7thWdHbfDEVH bl02yAR9cb3o9rKh4syZAdS+ld7RC4X5CZFmCIreMygRkSQhVDONHm89j9RbHS7kPJrQeylpZhT qfx1Ew7AI/3RUlfW8QNJskKvIsPbyOSeqG7QvRWXzrrQ==
Received: from smtp.zone.ee ([217.146.66.124] smtp.zone.ee) by srs1.zonevs.eu (ZoneMTA Forwarder) with ESMTP id 16b6689e7d70000d2d.001 for <calsify@ietf.org>; Mon, 17 Jun 2019 17:44:02 +0000
X-Zone-Loop: f242a5928caa48c0ff21c104b45abe4dc47bbf5d65a9
Received: from localhost (43-221-50-195.dyn.estpak.ee [195.50.221.43]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) (Authenticated sender: d3623m47440@@) by smtp.zone.ee (Postfix) with ESMTPSA id F0F79128B5C4 for <calsify@ietf.org>; Mon, 17 Jun 2019 20:44:01 +0300 (EEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=dot.ee; s=zone; t=1560793442; bh=OkYi1f/rjoU7zOCtm2mEh78uPQSWhpOK0jMNHaWDoYs=; h=Subject:To:References:From:Date:In-Reply-To; b=m7wM99uGDmPQlvtSmAm8h7fgQn23ZG/2eAtRpq2ZE5NOzpajA5bfR+5ejblFro4d8 C7X13Zrb19qS6acREc4HCL64qVdcMiZkz4Sv71NsvSV5go21EklcYuRbOdWUYCEgee vtoGEkDq3SZcrVledVwwvsZ76YI0gNIo6objn9wdDDPuHwxWB0F/UG+sZZ/8U5Fuqq 91oT7YfAucmGY6n6Nv+RHIoN6I6r02DJ1Sq5+JMto5Y3A4SOPRfxoVCsDUyoReocyW j+ZNJW52fERLCBr8OCOO9lmqAtr3IhTpfqCX+USNzaljj/YzDKTt0eUJX45QWjnuzh Mbv/qppcWNACg==
To: calsify@ietf.org
References: <7ec4462f-9e69-409e-9925-6f0beae7424c@www.fastmail.com> <8591f785-e075-4e71-b1ef-b30afe11aa5a@www.fastmail.com> <DM6PR15MB3531538370731F00D0363A6CE3EB0@DM6PR15MB3531.namprd15.prod.outlook.com> <d102be8b-1dfd-444c-ab5b-ecf898d7a8e3@www.fastmail.com>
From: Andri Möll <andri@dot.ee>
Message-ID: <3d19b106-c5ae-0bfe-7afc-72540ea10623@dot.ee>
Date: Mon, 17 Jun 2019 17:44:00 +0000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.7.1
MIME-Version: 1.0
In-Reply-To: <d102be8b-1dfd-444c-ab5b-ecf898d7a8e3@www.fastmail.com>
Content-Type: multipart/alternative; boundary="------------7930397B8FF2F680A58ECDD7"
Content-Language: en-US
X-Zone-Spam-Resolution: no action
X-Zone-Spam-Status: No, score=-1.473384, required=15, tests=[R_DKIM_ALLOW=-0.2, NEURAL_HAM=0, TO_DN_NONE=0, PREVIOUSLY_DELIVERED=0, RCVD_TLS_ALL=0, BAYES_HAM=-3, RCVD_COUNT_ONE=0, RCVD_VIA_SMTP_AUTH=0, FROM_HAS_DN=0, ASN=0, HFILTER_HOSTNAME_5=3, RCPT_COUNT_ONE=0, URI_COUNT_ODD=1, IP_SCORE=-2.273384, FROM_EQ_ENVFROM=0, MIME_GOOD=-0.1, MID_RHS_MATCH_FROM=0, DKIM_TRACE=0, ARC_NA=0, ONCE_RECEIVED=0.1]
Archived-At: <https://mailarchive.ietf.org/arch/msg/calsify/kOJqTBcvnrcME-qDpSp9q_4B6V0>
Subject: Re: [calsify] JSCalendar: alternative to current all-day events
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, 17 Jun 2019 17:44:13 -0000

> If the JSEvent timeZone is null, the start time has zero time, and the 
> duration is a multiple of days or weeks, then DTSTART is of type DATE. 
> In this case, clip off any non-zero time from the recurrence rule 
> "until" property.

This probably got covered early in JSCalendar's life, so apologies for 
bringing it up again, but how did JSCalendar end up with no date type? 
The above sounds like a error prone and complicated heuristic approach 
to something that should just be explicit. Why didn't JSCalendar include 
a date type for events with dates and keep the time type for events with 
times? I'm willing to take bets there will be implementations that miss 
the "timeZone is null" clause and accidentally truncate timed events 
with nominal durations.

And while on the subject, isn't calling the date-time formats `UTCDate` 
and `LocalDate` 
(https://tools.ietf.org/html/draft-ietf-calext-jscalendar-15#section-3.2.1) 
slightly misleading given they're date-times?

On 6/17/19 4:22 PM, Robert Stepanek wrote:
> Hi Daniel,
>
> I am not aware of any open points, the draft includes all feedback we got.
>
> I suggest to move this document forward, irrespective of its 
> accompanying informational RFC 
> https://tools.ietf.org/html/draft-ietf-calext-jscalendar-icalendar. 
> <https://tools.ietf.org/html/draft-ietf-calext-jscalendar-icalendar> I 
> will update the latter in the next few days.
>
> Cheers,
> Robert
>
> On Mon, Jun 17, 2019, at 6:18 PM, Daniel Migault wrote:
>>
>> Thanks Robert for the clarification. If there are any other point to 
>> discuss or that are raising concerns, please let us know as we are 
>> close to move the document forward.
>>
>> Yours,
>>
>> Daniel
>>
>>
>> *From:* calsify <calsify-bounces@ietf.org> *On Behalf Of *Robert Stepanek
>> *Sent:* Monday, June 17, 2019 12:15 PM
>> *To:* calsify@ietf.org
>> *Subject:* Re: [calsify] JSCalendar: alternative to current all-day 
>> events
>>
>>
>> I have uploaded RFC draft version 15 which now includes the proposed 
>> changes. I chose to keep the name "isAllDay" for the property, rather 
>> than renaming it to "showAsAllDay". I also removed the "isAllDay" 
>> property entirely from the JSTask object.
>>
>>
>> See 
>> https://tools.ietf.org/html/draft-ietf-calext-jscalendar-15#section-5.1.4
>>
>>
>> From my initial analysis, the mapping to iCalendar is rather simple:
>>
>>   * If the JSEvent timeZone is null, the start time has zero time,
>>     and the duration is a multiple of days or weeks, then DTSTART is
>>     of type DATE. In this case, clip off any non-zero time from the
>>     recurrence rule "until" property.
>>   * Otherwise map "start" to a DTSTART of type DATE-TIME.
>>   * I also consider using a new iCalendar boolean property IS-ALL-DAY
>>     to cleanly map "isAllDay".
>>
>>
>> I will update the informational iCalendar mapping guideline accordingly.
>>
>>
>> Cheers,
>>
>> Robert
>>
>>
>> On Thu, Jun 6, 2019, at 5:56 PM, Robert Stepanek wrote:
>>
>>     One of the repeatedly discussed topics in JSCalendar is how to
>>     model all-day events.
>>
>>
>>     Specifically, variants of the following uses repeatedly come up,
>>     where the current JSCalendar model seems not to be adequate:
>>
>>
>>       * Calendar users create an event starting e.g. 8am and ending
>>         7pm, but want to view this an all-day event in their UI. The
>>         current model misses a flag to express this, as the isAllDay
>>         property is not appropriate to indicate the user intention.
>>       * Calendar users want to set their calendar on their birthday,
>>         when they only would like to set it for the complete day in
>>         their usual time zone. They still want it to show up as an
>>         all-day event in their UI.
>>
>>
>>     In both cases, developers thought to use the isAllDay property to
>>     express a user intention, but came they learn they couldn't.
>>
>>
>>     This is reason enough to revisit that part of the specification
>>     and discuss alternatives.
>>
>>
>>     *Currently*:
>>
>>       * Any event MUST define a start property value in the form
>>         "YYYY-MM-DDTHH:MM:SS[.DIGITS]"
>>       * An all-day event:
>>
>>           o MUST have the isAllDay property set to "true"
>>           o MUST NOT have a non-zero time in the start and duration
>>             property values
>>           o MUST NOT define a time zone
>>
>>       * Any other event:
>>
>>           o MUST have the isAllDay property set to "false"
>>           o MAY define non-zero time  in start, duration
>>           o MAY set a timeZone.
>>
>>       * This allows to model iCalendar DATE, local DATE-TIME,
>>         floating DATE-TIME, UTC DATE-TIME.
>>
>>
>>     *Alternative*:
>>
>>       * The isAllDay boolean property gets removed.
>>       * A new showAsAllDay boolean defines how the user intends to
>>         view this event. Setting this property does not have any
>>         implications on the allowed values in the event time properties.
>>       * The start, duration, timeZone properties and their recurrence
>>         overrides can all can be defined independently. The
>>         recurrenceRule{until} property also can be defined independently.
>>       * It is up to implementations to convert this time model to
>>         iCalendar. Most probably:
>>
>>           o an event with zero time in start, duration, until and no
>>             time zone will be converted DATE value types
>>           o an event with no time zone will be converted to a local
>>             DATE-TIME without TZID
>>           o otherwise it will be a DATE-TIME with TZID or UTC DATE-TIME
>>
>>
>>     What do you think? Did we miss something?
>>
>>
>>     Cheers,
>>
>>     Robert
>>
>>
>>
>>
>>
>>
>>     _______________________________________________
>>
>>     calsify mailing list
>>
>>     calsify@ietf.org <mailto:calsify@ietf.org>
>>
>>     https://www.ietf.org/mailman/listinfo/calsify
>>
>>
>>
>
>
> _______________________________________________
> calsify mailing list
> calsify@ietf.org
> https://www.ietf.org/mailman/listinfo/calsify