Re: [calsify] JSCalendar duration vs. end time

"Bron Gondwana" <brong@fastmailteam.com> Thu, 14 February 2019 23:35 UTC

Return-Path: <brong@fastmailteam.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 C1A201289FA for <calsify@ietfa.amsl.com>; Thu, 14 Feb 2019 15:35:16 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.982
X-Spam-Level:
X-Spam-Status: No, score=-1.982 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, MIME_HEADER_CTYPE_ONLY=0.717, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=fastmailteam.com header.b=k4xtCeWZ; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=8Ik53E/W
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 ksjYeq4c9hxw for <calsify@ietfa.amsl.com>; Thu, 14 Feb 2019 15:35:14 -0800 (PST)
Received: from wout2-smtp.messagingengine.com (wout2-smtp.messagingengine.com [64.147.123.25]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6E959131096 for <calsify@ietf.org>; Thu, 14 Feb 2019 15:35:14 -0800 (PST)
Received: from compute6.internal (compute6.nyi.internal [10.202.2.46]) by mailout.west.internal (Postfix) with ESMTP id 88E6E30FB for <calsify@ietf.org>; Thu, 14 Feb 2019 18:35:13 -0500 (EST)
Received: from imap7 ([10.202.2.57]) by compute6.internal (MEProxy); Thu, 14 Feb 2019 18:35:13 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= fastmailteam.com; h=message-id:in-reply-to:references:date:from :to:subject:content-type; s=fm1; bh=7quoJh/PR+I544RsIi8PjvzjnWht mzd7gS9Kliu2OO4=; b=k4xtCeWZpovvzeOalMWwhKXqi3S1wsrIl83495U6uFsC M0+Xy+Bp6ae4guNSMIt7uUceLQ9odA8C8EpY84NLHyQtqGuNNhBan+5q/Vp1VqoM SXhOgIoCtOad4KhTh6OKLCsWwBxasvIGR/0E6K2KsejAszKeU/7yOyXpWkLyr373 aESFE3pLubI2vXaFjdoUWR3aZZqS7fYhc1aJmwng/pf9yr4vsR+DBU89H9K3Ldo2 pKQNheLdp96CmAgEuoTr3P2IDZLUe/K/IWzubg1fRhaXdEYJUO3CpUK2v2Kp1p9R SXUlEXi/fY6IoaPsLsT4d7NXCX5oGLzuoZEx73EH2Q==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:in-reply-to :message-id:references:subject:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; bh=7quoJh/PR+I544RsI i8PjvzjnWhtmzd7gS9Kliu2OO4=; b=8Ik53E/WUJ8Re41rapPTRJtNR+ZeVXmxo OstcVAJRNRlaOnyT6N0PvkHFV0x72+dWic45KEoHuwOoLJmK5buYTt+eSMc27xEZ p796iMsw8rc7R/Aj+4VTBNGPtmFMQe+MppnQhiWjlF2PLNZm2BgLx521qfd+KrF+ wdYB4D9lSboafM0HfWQMIiJUNsRsGAHZA0ao/ldiq+fTjC33fDb3lStmo50j+dN1 mjwisOTeU0GVsZJQqWo+ejjMOw8+j2WEqlPhfC8TKfkZulj1nvnXij/421jotgAp QQS9GoIrGJvMpP7kc7Fsukn02rwKAATvx53Teuamf1Ok9dBPT31WQ==
X-ME-Sender: <xms:MPtlXAjeWaPzYmFdFeoDTdwfCzNeOjCPMwSA6NvdUoYiHaQmo4ngHA>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedtledruddtiedgtdelucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfquhhtnecuuegrihhlohhuthemucef tddtnecunecujfgurhepofgfkfgjfhffhffvufgtsegrtderreerreejnecuhfhrohhmpe dfuehrohhnucfiohhnugifrghnrgdfuceosghrohhnghesfhgrshhtmhgrihhlthgvrghm rdgtohhmqeenucfrrghrrghmpehmrghilhhfrhhomhepsghrohhnghesfhgrshhtmhgrih hlthgvrghmrdgtohhmnecuvehluhhsthgvrhfuihiivgeptd
X-ME-Proxy: <xmx:MPtlXMbuv3xAbEtHMTDtx13Y-XM25qGIIUVo5yecRufpPKke4jFGNA> <xmx:MPtlXOsj7pWKZ6KXpIDIIrcsql6JakRZt05YaBClclO3S3LMAy7KRA> <xmx:MPtlXJncE_ujGojiXfYjJqXbvKgO08PDtKbIFgH-Twg7vq1hnOlaMw> <xmx:MftlXCvaX2QUT7pGaon_253ZzmrkZB8RtkMihmOL7bUcD-JXq2f92g>
Received: by mailuser.nyi.internal (Postfix, from userid 501) id 8D8C220250; Thu, 14 Feb 2019 18:35:12 -0500 (EST)
X-Mailer: MessagingEngine.com Webmail Interface
User-Agent: Cyrus-JMAP/3.1.5-832-gba113d7-fmstable-20190201v1
X-Me-Personality: 56629417
Message-Id: <de4fee80-ffa2-40b2-a57a-51a0ab844d18@beta.fastmail.com>
In-Reply-To: <022801d4c492$91037820$b30a6860$@caldavsynchronizer.org>
References: <1550160126.3602072.1658018976.28709BD3@webmail.messagingengine.com> <022801d4c492$91037820$b30a6860$@caldavsynchronizer.org>
Date: Thu, 14 Feb 2019 18:35:11 -0500
From: Bron Gondwana <brong@fastmailteam.com>
To: calsify@ietf.org
Content-Type: multipart/alternative; boundary="29d010928c0b4a278eb48edebcab1530"
Archived-At: <https://mailarchive.ietf.org/arch/msg/calsify/mraPbjHjteVzcr-Qm4JDvxyTKwI>
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: Thu, 14 Feb 2019 23:35:17 -0000


On Fri, Feb 15, 2019, at 05:25, Alexander Nimmervoll wrote:
> I agree that having 2 different representations is confusing and should be avoided. Similar problem with COUNT and UNTIL in RRULE.


>  


> 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.



There's no particular difficulty for any client to convert an end time to a duration for storage and back again, given that any client which can parse arbitrary iCalendar already needs to know how to convert between the two.

Obviously client UI considerations are important. Just checking Google's UI, it shows both a duration and an end time - and if you create something with an odd start time (like 5 minutes past the hour) it proposes end times based on the duration rather than by the end time:




> Is there a reason you choose start time and duration vs start time and end time? You also use start and due for JSTask and no duration there, again confusing. There shouldn’t be different representations for events and tasks.


> Using start and end time allows also an easier specification of different start and end timezones and is less confusing for triggers related to start or end.



Duration can't be negative, so you don't have "end before start" issues.

Duration is the unit used for recurrence calculations (as in: you need to calculate the duration of the first event using date math, then apply that duration to the future occurrences to calculate their actual end time).

Particularly if you have different timezones for the start and end, duration is easy to reason about!

>  


> During CalConnect we also mentioned the airline example where start and end times are different from scheduled durations but that can’t be modelled in iCalendar as well.


>  



The way airline flights book the start and end slots and the duration between is fuzzy within the flexibility of the flight speed is kind of a special case - but again the UI or even API for modifying an event and the underlying format don't need to be identical - and in even in the airline case it would be easier to validate the event based on known constraints of airline speed and fuel capacity.

Bron.

--
 Bron Gondwana, CEO, FastMail Pty Ltd
 brong@fastmailteam.com