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

Michael Douglass <mikeadouglass@gmail.com> Sat, 22 June 2019 03:36 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 E98E012025F for <calsify@ietfa.amsl.com>; Fri, 21 Jun 2019 20:36:13 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.998
X-Spam-Level:
X-Spam-Status: No, score=-1.998 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-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 8Bot-Vxu3cP3 for <calsify@ietfa.amsl.com>; Fri, 21 Jun 2019 20:36:10 -0700 (PDT)
Received: from mail-qk1-x72b.google.com (mail-qk1-x72b.google.com [IPv6:2607:f8b0:4864:20::72b]) (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 98A8B12014F for <calsify@ietf.org>; Fri, 21 Jun 2019 20:36:10 -0700 (PDT)
Received: by mail-qk1-x72b.google.com with SMTP id a27so5940563qkk.5 for <calsify@ietf.org>; Fri, 21 Jun 2019 20:36:10 -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=wyFRD03V+l9zqkCMDbCDLcjirZGpljiP/0/kRIMfhL4=; b=TJ7BG6tnjxFdk1moTT5GWM4orQRrRTDrwKT0ZzZt3WhOZ+QKBKJ7pDeJ+mYmKa3Umx BcLHkKDhmg5BWROhY3LQgDy5fL9z7GN0IGOHfmuW1zp/Gz0lm2nvMcekdEPhHTf4xHe8 8MxUfHRbH+Ys4xfz6WaYGbTJ3ss9leO2lzkVpTOtLvcM6lE+QLHOWY/fl7GFhfjYo1N5 zEftVNFzeBBacJrReve5w0jYnoj+a5wcMj6yMqMKMmqifvSm5rKngvTTKwmcNqQEyOZF EAQjnsVPnMIDyml8S/S/dHJ3dUyJjpmMkGHz0huJIoyZwOz5k16mYUfsJppFWMWjA7ur FLjA==
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=wyFRD03V+l9zqkCMDbCDLcjirZGpljiP/0/kRIMfhL4=; b=IdvoOQmitl8NO9n1G6+l2bJFUtjy1glfoUw8QJbE+f7NFmBNWYByktIl5X0LxlswDQ BLI1mWvvTEhpOoWi4UTM5DRbfzF2lmYHsdmDWkNwWM8iKa1lfvQhH073eJLLI0Njtr6K pI9tIB63ycjL7dE7KjV1jdvtZiCyNJDZu/cFtDCWLUqx4uPekp4xtuLTGDH2noNVV9un r5KPwmMHYkEsFMdFGV/IZXZfahnNOP3eC09t5RZNbN3awaRBY4gf+8WxC1QBB/OkjZnn 5UMCD5qE8KD/jQIYFcf2RKaUzWVHwD04xrtW69min7PQuDuVGAkTjkSm2nEMlQfFVNt7 9SNw==
X-Gm-Message-State: APjAAAXCyQRvCxm8KpDislNEPYLzXdeAaltyQb2k9bX2NmEHBS8kFSVn WDdDrGhbOOJF+ulYRPRr+MIuSkCItkw=
X-Google-Smtp-Source: APXvYqy43xVMZ9pR1csqmQB1fHDU7RdS2nAntMYpnF8iXn/1FzO6Zq153niyHENl38Fc4y+VnS0z/g==
X-Received: by 2002:a05:620a:15d7:: with SMTP id o23mr15128798qkm.125.1561174569464; Fri, 21 Jun 2019 20:36:09 -0700 (PDT)
Received: from Michaels-MacBook-Pro.local (cpe-74-70-80-66.nycap.res.rr.com. [74.70.80.66]) by smtp.googlemail.com with ESMTPSA id s25sm2348505qkm.130.2019.06.21.20.36.08 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 21 Jun 2019 20:36:08 -0700 (PDT)
To: Marten Gajda <marten@dmfs.org>, calsify@ietf.org
References: <7ec4462f-9e69-409e-9925-6f0beae7424c@www.fastmail.com> <8591f785-e075-4e71-b1ef-b30afe11aa5a@www.fastmail.com> <b2968423-c5cf-f9e9-70b4-d02a704655bb@dmfs.org>
From: Michael Douglass <mikeadouglass@gmail.com>
Message-ID: <c02dd799-5dc4-bd7e-2634-c0cb25e0f140@gmail.com>
Date: Fri, 21 Jun 2019 23:36:07 -0400
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:60.0) Gecko/20100101 Thunderbird/60.7.0
MIME-Version: 1.0
In-Reply-To: <b2968423-c5cf-f9e9-70b4-d02a704655bb@dmfs.org>
Content-Type: multipart/alternative; boundary="------------34014392398BD8FBCA383B8E"
Content-Language: en-US
Archived-At: <https://mailarchive.ietf.org/arch/msg/calsify/v_FJAmf11VLF4snNdjNGkD3n1kM>
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: Sat, 22 Jun 2019 03:36:14 -0000

On 6/17/19 18:04, Marten Gajda wrote:
>
>
> Am 17.06.19 um 18:14 schrieb Robert Stepanek:
>> I also removed the "isAllDay" property entirely from the JSTask object.
>
> Hmm ... I see how "isAllDay" doesn't really apply to a task, but it 
> would be nice to have a way to express this kind of fussiness for 
> start and/or due dates in cases when the actual time is not that 
> important (or even unknown). Always terminating tasks on a specific 
> time can give a false sense of accuracy which might not exist. 
> Sometimes you just want to express "at some time throughout that day". 
> Does that make sense?
>
Absolutely - Thursday is take out the garbage sometime during the day - 
I generally need to be reminded all day. I don't see why tasks are any 
different in this respect.
>
> Marten
>
>>
>> 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
>>> https://www.ietf.org/mailman/listinfo/calsify
>>>
>>
>>
>> _______________________________________________
>> calsify mailing list
>> calsify@ietf.org
>> https://www.ietf.org/mailman/listinfo/calsify
> -- 
> Marten Gajda
> CEO
>
> dmfs GmbH
> Schandauer Straße 34
> 01309 Dresden
> GERMANY
>
> phone: +49 177 4427167
> email:marten@dmfs.org
>
> Managing Director: Marten Gajda
> Registered address: Dresden
> Registered No.: AG Dresden HRB 34881
> VAT Reg. No.: DE303248743
>
> _______________________________________________
> calsify mailing list
> calsify@ietf.org
> https://www.ietf.org/mailman/listinfo/calsify