Re: [calsify] JSCalendar duration vs. end time

Marten Gajda <marten@dmfs.org> Fri, 15 February 2019 09:08 UTC

Return-Path: <marten@dmfs.org>
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 BC046130F28 for <calsify@ietfa.amsl.com>; Fri, 15 Feb 2019 01:08:10 -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, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=dmfs.org
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 qr0wJ_SdCSwG for <calsify@ietfa.amsl.com>; Fri, 15 Feb 2019 01:08:08 -0800 (PST)
Received: from mailrelay2-1.pub.mailoutpod1-cph3.one.com (mailrelay2-1.pub.mailoutpod1-cph3.one.com [46.30.210.183]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 75837130E7E for <calsify@ietf.org>; Fri, 15 Feb 2019 01:08:06 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dmfs.org; s=20140924; h=content-type:in-reply-to:mime-version:date:message-id:from:references:to: subject:from; bh=a1O8OwmJVR9tiRhIHdNbHbFa3oSUjEYqUJRTZOW4oN4=; b=gsXU1sDlOGAJw54kYIDn0VFv7cbqZ4BCDNh8sl7c8LbZ6TNDLAITc0kJxzNJsCjfWVsgZijyeEB29 63AhcUCqBzbqZQuY2dcerGR8PdWDehlvU5NN2sRAFNMr6smU8iFORN9JX8sdcZ42v9AcHnfE3JQn+x nunrhBLCDuyZLdUE=
X-HalOne-Cookie: 979db6cfa2bb1ae127414adcadde9f180f0f9417
X-HalOne-ID: 330174b1-3101-11e9-a4c0-d0431ea8a290
Received: from smtp.dmfs.org (unknown [62.224.76.2]) by mailrelay2.pub.mailoutpod1-cph3.one.com (Halon) with ESMTPSA id 330174b1-3101-11e9-a4c0-d0431ea8a290; Fri, 15 Feb 2019 09:08:03 +0000 (UTC)
Received: from boss.localdomain (p3EE04C02.dip0.t-ipconnect.de [62.224.76.2]) by smtp.dmfs.org (Postfix) with ESMTPSA id 10C173FA for <calsify@ietf.org>; Fri, 15 Feb 2019 10:08:03 +0100 (CET)
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>
From: Marten Gajda <marten@dmfs.org>
Message-ID: <c61fc29a-f171-42e4-f29b-fbd820ed9974@dmfs.org>
Date: Fri, 15 Feb 2019 10:08:02 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.4.0
MIME-Version: 1.0
In-Reply-To: <029301d4c4fd$5eaca610$1c05f230$@caldavsynchronizer.org>
Content-Type: multipart/alternative; boundary="------------D3041D601C720390839E46C4"
Content-Language: en-US
Archived-At: <https://mailarchive.ietf.org/arch/msg/calsify/T7jr-ByHKf1h1X1KV_PIsecqkW4>
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 09:08:11 -0000

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> *Im Auftrag von *Neil Jenkins
> *Gesendet:* Freitag, 15. Februar 2019 00:20
> *An:* 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
> 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