Re: [calsify] JSCalendar duration vs. end time

Michael Douglass <mikeadouglass@gmail.com> Fri, 15 February 2019 16:11 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 EFBB4128BCC for <calsify@ietfa.amsl.com>; Fri, 15 Feb 2019 08:11:25 -0800 (PST)
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_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 dvwtIalE0iSA for <calsify@ietfa.amsl.com>; Fri, 15 Feb 2019 08:11:22 -0800 (PST)
Received: from mail-qt1-x82e.google.com (mail-qt1-x82e.google.com [IPv6:2607:f8b0:4864:20::82e]) (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 7A33E127598 for <calsify@ietf.org>; Fri, 15 Feb 2019 08:11:21 -0800 (PST)
Received: by mail-qt1-x82e.google.com with SMTP id d18so1370894qtg.12 for <calsify@ietf.org>; Fri, 15 Feb 2019 08:11:21 -0800 (PST)
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=loXT2sEwiQHailo3f3xuh7xTmhSDldcjeO/28QDeCFE=; b=K6X5MYyDfZL88SIedZSfgBdJqg/usckL3+mGaz7nbgpdKQS9bJXVRPKwSp/Whazu9K oU1+KoEjTZGZDYiKk8h9qr4RNnNX6NyWX9BTlUV/1Pe7rwQBshUF1A9ebRGbRbQF/aKL QjP3y5hXfU1LcOcQJYAOCFzzfqHOCF5kCqva3CD24IBGr0oZPQCzRBw4cazfKrhwXM5Z BUkkeupAU8VCwcTQ6bjVqTjZlU41S5HhiBQvByBOvhSES8E4Q3GXoAIF9XHDG/uNWNYp /CclquKPW8m6sF9pQX9wh1Xofo4Sz8I+rnYGvHZo9bh5CmQR7wJb65JyrhSf5LquC3Ly tDnw==
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=loXT2sEwiQHailo3f3xuh7xTmhSDldcjeO/28QDeCFE=; b=IVUUftkSq7euP8ZbCcj+YeQaBz8R5o6KBAjZAXhCX/pgaSKAUe52G/XbLrFnO950rw UsNk15wPrgRIR1xpOqCsG7QU1/0uUHWRRVhQgwsCGBGi3iK1AuTCxgYRNQTk5/s+L29w n5hq2t02YmHebBrnhgRWkQhwXU+U5dYQn8TgWmYrpq4vTtBt81iARDSSnMfuDW21c7/e JD1pO/PlcZSzJZf3V3JWHNg5XF5TiOu4n/YFz5MD/gcywaGIppkQH+PCRo9y7gyhQD3b oWWupcRBpy1guHiftemf0MVXt7qus8zrlgQ2ka1YsjI87EgjmYle8X20pH7RBtc3u3CJ 7yGQ==
X-Gm-Message-State: AHQUAuZv6734364LLaURiBZHxl7dBMNbHITRc58y78zWmX+1CTJmoxY5 xhiPZY53obbjRMhpABF9DXO/2z7X
X-Google-Smtp-Source: AHgI3IZb46o/ltvDENMAdaUwueYFqqI8amJlObvTthEFh587nRzya94SbQg1ohHV/YRQKpkcZAJRqw==
X-Received: by 2002:aed:35c6:: with SMTP id d6mr8364347qte.320.1550247080235; Fri, 15 Feb 2019 08:11:20 -0800 (PST)
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 f7sm3386165qkb.33.2019.02.15.08.11.18 for <calsify@ietf.org> (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 15 Feb 2019 08:11:18 -0800 (PST)
To: calsify@ietf.org
References: <1550160126.3602072.1658018976.28709BD3@webmail.messagingengine.com> <aec2692f-a2dc-4004-b1e4-4e3d3680aa9b@beta.fastmail.com> <029301d4c4fd$5eaca610$1c05f230$@caldavsynchronizer.org> <c61fc29a-f171-42e4-f29b-fbd820ed9974@dmfs.org> <CA+H1sWM4p78Ub8j_f92RLz9nvBVuwvEZx5CstsYS6rnHwFLdZw@mail.gmail.com>
From: Michael Douglass <mikeadouglass@gmail.com>
Message-ID: <33c0b886-1136-715e-be56-10d342e2522c@gmail.com>
Date: Fri, 15 Feb 2019 11:11:17 -0500
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:60.0) Gecko/20100101 Thunderbird/60.5.0
MIME-Version: 1.0
In-Reply-To: <CA+H1sWM4p78Ub8j_f92RLz9nvBVuwvEZx5CstsYS6rnHwFLdZw@mail.gmail.com>
Content-Type: multipart/alternative; boundary="------------D90B6518430982319477A5D7"
Content-Language: en-US
Archived-At: <https://mailarchive.ietf.org/arch/msg/calsify/V7sd2LjTfkVZ4-7hKD8mEu-szhk>
Subject: Re: [calsify] JSCalendar duration vs. end time
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: Fri, 15 Feb 2019 16:11:26 -0000

On 2/15/19 04:44, Garry Shutler wrote:
> As the intended usage is so different, the similarity in naming can 
> only lead to confusion, which has been demonstrated here.
>
> If tasks were to have due and estimatedDuration (and perhaps something 
> like commencement rather than start), and events have start and 
> duration it would be more clear that they are different to each other.

The tasks extension (draft) already does that.

-
> *Garry Shutler*
> CTO & Co-founder, Cronofy
> Scheduling Everything for Everyone
>
>
> On Fri, 15 Feb 2019 at 09:08, Marten Gajda <marten@dmfs.org 
> <mailto:marten@dmfs.org>> wrote:
>
>     Am 15.02.19 um 08:09 schrieb Alexander Nimmervoll:
>>
>>     So why do you stick to due instead of start+duration for JSTasks?
>>
>     In contrast to events where the start is usually the more
>     important date, the due date of a task is usually far more
>     important than its start. So if you move a task in your calendar
>     you usually mean to move the due date.
>
>     In addition, in order to apply a duration you would always need a
>     start, but iCalendar and most implementations allow tasks to have
>     a due date only. And that's mostly what an average user cares about.
>
>     There is an iCalendar extension which adds an estimatedDuration
>     property to VTODO. Its meant to express that the actual execution
>     time of a task is usually shorter than the execution window (i.e.
>     the time between start and the due date).
>
>>     For the airline example with start and end time and fixed
>>     scheduled duration an idea would also be to use the
>>     estimatedDuration property for the scheduled flight-time or
>>     something similar.
>>
>     Where would be the difference to the duration we already have for
>     events? I think it might make sense to add a parameter which
>     expresses that the duration is only an estimate or may be subject
>     to change. We could, for instance, add a margin of error. For
>     example: a concert starts at 20:30 and is scheduled for 2 hours.
>     It may be delayed and the band may play a few more extra songs,
>     but due to local regulations there is a hard stop at 23:00.
>
>     I'd leave that to an extension of the current spec though.
>
>     Cheers,
>
>     Marten
>
>>     Cheers,
>>
>>     Alex
>>
>>     *Von:*calsify <calsify-bounces@ietf.org>
>>     <mailto:calsify-bounces@ietf.org> *Im Auftrag von *Neil Jenkins
>>     *Gesendet:* Freitag, 15. Februar 2019 00:20
>>     *An:* calsify@ietf.org <mailto:calsify@ietf.org>
>>     *Betreff:* Re: [calsify] JSCalendar duration vs. end time
>>
>>     On Fri, 15 Feb 2019, at 03:03, Robert Stepanek wrote:
>>
>>         Two arguments were raised in favor of adding an end time
>>
>>           * It simplifies translation of VEVENTs with DTSTART/DTEND
>>             from iCalendar.
>>
>>     Every client/server will need to be able to translate between
>>     duration and end already, so this is unlikely to be a significant
>>     hurdle to anyone.
>>
>>           * It allows to specify recurring events with a fixed end
>>             time even in case of time gaps (e.g. a recurring night
>>             club that has to close at a fixed time for legal reasons).
>>
>>     You kind-of mention this below, but I think it's important to
>>     note that *this argument is false*.. You cannot do this with
>>     recurrences as they exist right now in iCalendar.
>>
>>     On Fri, 15 Feb 2019, at 05:25, Alexander Nimmervoll wrote:
>>
>>         But looking into it also from client UI perspective almost
>>         every client allows you to choose start and end time and not
>>         start time and duration for an event.
>>
>>     The UI is independent of the underlying data format; as mentioned
>>     above you need to be able to translate between the two anyway.
>>
>>         Is there a reason you choose start time and duration vs start
>>         time and end time?
>>
>>     Yes.. There are many reasons why I strongly believe duration is
>>     preferable to end:
>>
>>      1. Having two representations for the same thing requires more
>>         code complexity, as there are two code paths to deal with.
>>      2. Recurrences always operate with duration regardless of
>>         whether it's actually specified as "end time", which is very
>>         confusing. With duration, it's very clean: you expand the
>>         start time according to the recurrence rule and then just
>>         inherit every other property (duration is just another
>>         property you inherit).
>>      3. There is no extra expressivity adding "end time". You can
>>         always convert from end time to duration. The /one/ exception
>>         is if the time zone data changed so that an offset transition
>>         now happened in the middle of the event AND in such a case
>>         you wanted the event to maintain its original end time rather
>>         than its original duration. I contend that:
>>          1. This case is exceedingly rare, and not important enough
>>             to make the common case more complex.
>>          2. No UI will ever be built to offer the user a choice for
>>             how to handle this situation, so it's even less important
>>             to handle.
>>          3. A better way to handle it would be to add an extra
>>             property that could be used to indicate the duration
>>             should be done in "wall clock" time; this would then also
>>             work for recurrences, which there is no solution for in
>>             iCalendar.
>>      4. Duration is guaranteed to be zero or positive, making it
>>         harder to create an invalid event and easier to check that an
>>         event object is valid. If you move the start of a series of
>>         events you don't need to make sure to keep the end in sync.
>>      5. Should time zone definitions change, it is more likely the
>>         duration should remain fixed and the end should shift (e.g.
>>         for flights).
>>
>>         Using start and end time allows also an easier specification
>>         of different start and end timezones
>>
>>     This is modelled differently in JSCalendar: there is a single
>>     time zone for the event, which is what it is scheduled in, but
>>     you can associate time zones with locations and mark that a
>>     location is where the event finishes, which is equivalent to the
>>     end time zone in iCalendar. This again is clearer, as it more
>>     closely matches the semantics of iCalendar (the "end" time zone
>>     is not used for scheduling/recurrences, it is only used for
>>     displaying in the UI after the necessary date arithmetic). And if
>>     time zone definitions change, again it's more likely the duration
>>     should stay constant rather than the end time (the example
>>     everyone uses for a different end time zone is flights: flying
>>     from Melbourne to LA is not going to get an hour shorter if
>>     California suddenly changes its daylight saving rules).
>>
>>     Neil.
>>
>>
>>     _______________________________________________
>>     calsify mailing list
>>     calsify@ietf.org  <mailto: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  <mailto: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 <mailto:calsify@ietf.org>
>     https://www.ietf.org/mailman/listinfo/calsify
>
>
> _______________________________________________
> calsify mailing list
> calsify@ietf.org
> https://www.ietf.org/mailman/listinfo/calsify