Re: [calsify] JSCalendar duration vs. end time

Garry Shutler <garry@cronofy.com> Fri, 15 February 2019 09:45 UTC

Return-Path: <garry@cronofy.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 0ECE1130F9F for <calsify@ietfa.amsl.com>; Fri, 15 Feb 2019 01:45:07 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level:
X-Spam-Status: No, score=-1.999 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, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cronofy.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 3f5ubP3keTFd for <calsify@ietfa.amsl.com>; Fri, 15 Feb 2019 01:45:01 -0800 (PST)
Received: from mail-ua1-x930.google.com (mail-ua1-x930.google.com [IPv6:2607:f8b0:4864:20::930]) (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 E769D130F9A for <calsify@ietf.org>; Fri, 15 Feb 2019 01:45:00 -0800 (PST)
Received: by mail-ua1-x930.google.com with SMTP id c5so1105366uaq.7 for <calsify@ietf.org>; Fri, 15 Feb 2019 01:45:00 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cronofy.com; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=mhh2jnqJCl4kGVfzxQ+1m1tTZfW+rXulPl7C1ibtDeA=; b=LVfRMDD2OlIbGxQ1Yuw2BzhGWk7z5NBziTUEyYm5yhZkXVqa/5dAg3U6TxDFcr/u61 x5+srmRFQhrdcyf7zLqvwO19XZW+HYOeHQaVPj+POA3w5kJgMUYbfm3LA/QVG16mpB6I WHWkVU4YkxGnSB4kRRjn5zPC+LIBmR1mghI/Q=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=mhh2jnqJCl4kGVfzxQ+1m1tTZfW+rXulPl7C1ibtDeA=; b=mhU8uO5JZ9sSBBtkg0BFXcbHHvmqMOjTDHZ9+8IaFjgHbFXzp1tmg1qN9tI+N+eeB7 QCym6eCrOz5ibZC5kjSuX+Uc+4YHg9uQq+ShIhg9Qpvr0ywJvJsKbOg2fEpLbx3eQv9C e/UnOO6XIbndYsgb8RWUwu467C66ISasBY3aXk5iB0eBs3LYruxfSk366dY1ythJTsgV MIV16YpgUfkYlvDT8qu+sudzC9pSz4hQK7Ce4be6/cXbyYd2MmY2ZSIJUT7yVZh9oWJ+ Hza84aqYJVc76P2s3yGPxMt0yp/uHcmz0yvGTzw+ejk6hq5hTF7FqX1NqVZJrowPffJY IoWA==
X-Gm-Message-State: AHQUAuZ8rpzRBVDZqyzlpsKeyRI/u6YNcaPk9iELjv5CbTPpBKqdeBtD vJ4i1tXTldL6y9TxoUmtoODS2mAwvXE2FnwgiPtdrcxdFNg=
X-Google-Smtp-Source: AHgI3IaCuI2QVMRfM8Wma/Gwfkanv9hz136mAzNOVj32Um+07EE8F6dZq2Y20DxJvP2oyV6lwFMlolbbC976elJvF+E=
X-Received: by 2002:ab0:13ed:: with SMTP id n42mr152798uae.49.1550223899338; Fri, 15 Feb 2019 01:44:59 -0800 (PST)
MIME-Version: 1.0
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>
In-Reply-To: <c61fc29a-f171-42e4-f29b-fbd820ed9974@dmfs.org>
From: Garry Shutler <garry@cronofy.com>
Date: Fri, 15 Feb 2019 09:44:47 +0000
Message-ID: <CA+H1sWM4p78Ub8j_f92RLz9nvBVuwvEZx5CstsYS6rnHwFLdZw@mail.gmail.com>
To: calsify@ietf.org
Content-Type: multipart/alternative; boundary="000000000000d7c9a00581eba0d8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/calsify/rkU7Ix6Q71a8IcukoiaQc1ie3wI>
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:45:07 -0000

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.

-
*Garry Shutler*
CTO & Co-founder, Cronofy
Scheduling Everything for Everyone


On Fri, 15 Feb 2019 at 09:08, Marten Gajda <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> <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 listcalsify@ietf.orghttps://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
>