Re: [calsify] I-D Action: draft-ietf-calext-jscalendar-26.txt

Tim Hare <TimHare@comcast.net> Sun, 05 April 2020 02:36 UTC

Return-Path: <timhare@comcast.net>
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 8011B3A10E6 for <calsify@ietfa.amsl.com>; Sat, 4 Apr 2020 19:36:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.087
X-Spam-Level:
X-Spam-Status: No, score=-2.087 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_FILL_THIS_FORM_SHORT=0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=comcast.net
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 rLQQmD2JztVk for <calsify@ietfa.amsl.com>; Sat, 4 Apr 2020 19:36:33 -0700 (PDT)
Received: from resqmta-ch2-06v.sys.comcast.net (resqmta-ch2-06v.sys.comcast.net [IPv6:2001:558:fe21:29:69:252:207:38]) (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 7274D3A10ED for <calsify@ietf.org>; Sat, 4 Apr 2020 19:36:33 -0700 (PDT)
Received: from resomta-ch2-01v.sys.comcast.net ([69.252.207.97]) by resqmta-ch2-06v.sys.comcast.net with ESMTP id Kv5EjpWjdlbu3Kv9Dja9aX; Sun, 05 Apr 2020 02:36:31 +0000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=comcast.net; s=20190202a; t=1586054191; bh=IfYMnySfgkUeZPbvmGaTICRevehCgsvh9NGSziy9S48=; h=Received:Received:From:To:Subject:Date:Message-ID:MIME-Version: Content-Type; b=BTJfo4E30SljhN9YQXpe6iU9cRBaOn0PC5OlL5gguTOGrHuEkplOji/je99LBR5oa NQjqJQ9i3NQk3UgYfASAEMskLuzBOQACDgXwSOlhWD0Ga3wSjoK9wyeWMs6G7jwfAF 9IY5ZZqU6ldnXYIJZRTSqA+RDFNQxSnJWQPzILy8qv4w+BLXNYBgceS9eyPxmcd0Oz MKVwfWStCw+p8zUEEXVVZfgnP5+75awKzPwJ4Us4zdujRoG9u/BGfsi0P7X9PS1ftX y3QT7+/Iiz9460HXjk8nUIZSY5W9rhbqOWstIuK6/sXQmZuORMQV/0mTClGIwep0/8 n8s16XjcxAEcQ==
Received: from THARE ([98.192.130.240]) by resomta-ch2-01v.sys.comcast.net with ESMTPA id Kv9CjqlNhyB3rKv9Cjwl1f; Sun, 05 Apr 2020 02:36:31 +0000
X-Xfinity-VAAS: gggruggvucftvghtrhhoucdtuddrgeduhedrtdelgdeitdcutefuodetggdotefrodftvfcurfhrohhfihhlvgemucevohhmtggrshhtqdftvghsihdpqfgfvfdppffquffrtefokffrnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjughrpefhvfhfjgfufffkgggtofhtsegrtdhgpedvtdejnecuhfhrohhmpedfvfhimhcujfgrrhgvfdcuoefvihhmjfgrrhgvsegtohhmtggrshhtrdhnvghtqeenucffohhmrghinhepihgvthhfrdhorhhgnecukfhppeelkedrudelvddrudeftddrvdegtdenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhephhgvlhhopefvjfettffgpdhinhgvthepleekrdduledvrddufedtrddvgedtpdhmrghilhhfrhhomhepthhimhhhrghrvgestghomhgtrghsthdrnhgvthdprhgtphhtthhopegtrghlshhifhihsehivghtfhdrohhrghdprhgtphhtthhopehmihhkvggrughouhhglhgrshhssehgmhgrihhlrdgtohhm
X-Xfinity-VMeta: sc=-100.00;st=legit
From: Tim Hare <TimHare@comcast.net>
To: 'Michael Douglass' <mikeadouglass@gmail.com>, calsify@ietf.org
References: <158363619759.25642.15164071767646081255@ietfa.amsl.com> <ac23c153-f999-4743-b1c8-954c51bdbf9d@gmail.com> <89e9d6f2-9632-6c17-adfc-0a1977f15fcc@gmail.com> <5db6d2e1-8512-5f32-94d0-6f7057481a3d@gmail.com>
In-Reply-To: <5db6d2e1-8512-5f32-94d0-6f7057481a3d@gmail.com>
Date: Sat, 04 Apr 2020 22:36:28 -0400
Message-ID: <028801d60af3$031951d0$094bf570$@comcast.net>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----=_NextPart_000_0289_01D60AD1.7C09ADA0"
X-Mailer: Microsoft Outlook 15.0
Thread-Index: AQGmjtK7MABMD18P8ce4wURb5WWCKQFHLmF7AkkncSoBxRRAY6ieG5gg
Content-Language: en-us
Archived-At: <https://mailarchive.ietf.org/arch/msg/calsify/E16VsY09oZZwLUlwOWsekA6mzoA>
Subject: Re: [calsify] I-D Action: draft-ietf-calext-jscalendar-26.txt
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: Sun, 05 Apr 2020 02:36:37 -0000

As for DTSTAMP and LAST-MODIFIED,   RFC States

-------------------------------------------

   Property Name:  DTSTAMP

 

   Purpose:  In the case of an iCalendar object that specifies a

      "METHOD" property, this property specifies the date and time that

      the instance of the iCalendar object was created.  In the case of

      an iCalendar object that doesn't specify a "METHOD" property, this

      property specifies the date and time that the information

      associated with the calendar component was last revised in the

      calendar store.

 

   Property Name:  LAST-MODIFIED

 

   Purpose:  This property specifies the date and time that the

      information associated with the calendar component was last

      revised in the calendar store.

 

         Note: This is analogous to the modification date and time for a

         file in the file system.

 

So, when an item has a METHOD such as REQUEST then this is the time the object was created, NOT the time the object was last created in the calendar store.    If no METHOD is specified (this is not part of a scheduling flow, for example) then they serve the same purpose.   If I were creating files or objects I would use both in any case.

Tim Hare
Interested Bystander, Non-Inc.

 

 

 

From: calsify [mailto:calsify-bounces@ietf.org] On Behalf Of Michael Douglass
Sent: Friday, April 3, 2020 6:55 PM
To: calsify@ietf.org
Subject: Re: [calsify] I-D Action: draft-ietf-calext-jscalendar-26.txt

 

 

On 4/3/20 17:29, Michael Douglass wrote:

Further comments below

On 4/2/20 19:06, Michael Douglass wrote:

I have to apologize for the lateness of these issues I want to raise but I've started implementing the mapping of icalendar to JSCalendar and I'm already running into some problems.

I've only looked at a few properties so far.

In general - while I initially thought an informational spec would be fine for describing the mappings - I'm now of the opinion it has to be mandated where possible. Otherwise we're going to have a whole mess of incompatible implementations.

Privacy <-> CLASS

The first was the use of "secret" instead of "confidential" for the privacy property. The result is that a simple conversion to lowercase for jscalendar isn't sufficient. I know neither authors want to change at this late stage but I mention it (again) because this will be a perpetual annoyance.

link <->ATTACH, IMAGE, URL 

ATTACH and IMAGE seem fine (reltype of enclosure and icon resp.) but URL doesn't. 

The description of rel has this:

  Links with a rel of "describedby" SHOULD be considered by the
      client to be an alternative representation of the description.

Is that supposed to be the same as URL - it doesn't match the description for URL in 5545?

I think the spec needs to explicitly state that URL MUST be represented by a link with a given rel - I'd suggest "alternate" because that seems closer to what is intended in 5545.

 

comments <-> COMMENT

comments is only specified for timezone rules. It needs to be valid for all or some indication of how to handle them needs to be provided.

There is an issue in 5545 with COMMENT in scheduling e.g. is a comment meant only for the organizer? That could be tightened up.

CONTACT

There's no mapping suggested. CONTACT is vital for event publication. I'd suggest following the approach in eventpub - add a participantType property to participant

Having looked again I thought this could probably be handled just by changing the wording for participant as I suggested and extending the roles values. However I think that's conceptually more complicated, 

"participantTypes": {"attendee": true}

"roles": {"optional": true}

is easier to understand than 

"participantTypes": {"optional": true}

implying this is an optional attendee.

Changing role "attendee" to "required" or "expected" might make sense

participantTypes: "String[Boolean]" (mandatory)
 
Defines the type of participation in
events or tasks.  Participants can be individuals or
organizations, for example attendees, a soccer team, the spectators, or the
musicians.
      At least one type MUST be specified for the participant.  The keys
      in the set MUST be one of the following values, a value registered
      in the IANA JSCalendar Enum Registry, or a vendor-specific value:
 
      *  "attendee": A participant attending a meeting.
 
      *  "active": A participant taking an active role - for example a team
         member.
 
      * "inactive":  A participant taking an inactive part - for example an
      audience member.
 
      * "sponsor":  A sponsor of the event.  The order property may be used
        with this participant type to define the relative order of
        multiple sponsors.
 
      * "contact":  Contact information for the event.  The order property may
        be used with this participant type to define the relative order of
        multiple contacts.
 
 
      * "booking-contact":  Contact information for reservations or payment
 
      * "emergency-contact":  Contact in case of emergency
 
      * "publicity-contact":  Contact for publicity
 
      * "planner-contact:  Contact for the event planner or organizer
 
      * "performer":  A performer - for example the soloist or the accompanist.
      The order property may be used with this participant type to
      define the relative order of multiple performers.  For example,
      "order": 1 could define the principal performer or soloist.
 
      * "speaker":  Speaker at an event
 
Change the participant description:
....
   If this property is set with a participant type of "attendee", then the "replyTo" property of this calendar
   object MUST define at least one reply method.
....
   o  roles: "String[Boolean]" (mandatory for participantType = "attendee")

 

I've got another question on mapping:

In your mapping draft you say:

An iCalendar ORGANIZER maps to both the replyTo property and a
   participant with role "owner".  If an ATTENDEE with the same CAL-
   ADDRESS value exists, then it maps to the same participant as the
   ORGANIZER participant.

What if the attendee and organizer have different SENT-BY parameters? And what is SENT-BY mapped to?

I think the 2 ought to be kept separate.

 
 

GEO, PERCENT-COMPLETE

What are we supposed to do with these?

updated <-> DTSTAMP, LAST-MODIFIED

I don't understand why 5545 has 2 values - however I think we need a better statement of how to map 2 values on to 1 - something about the later of the 2?

More to follow...

 

On 3/7/20 21:56, internet-drafts@ietf.org <mailto:internet-drafts@ietf.org>  wrote:

A New Internet-Draft is available from the on-line Internet-Drafts directories.
This draft is a work item of the Calendaring Extensions WG of the IETF.
 
        Title           : JSCalendar: A JSON representation of calendar data
        Authors         : Neil Jenkins
                          Robert Stepanek
     Filename        : draft-ietf-calext-jscalendar-26.txt
     Pages           : 77
     Date            : 2020-03-07
 
Abstract:
   This specification defines a data model and JSON representation of
   calendar data that can be used for storage and data exchange in a
   calendaring and scheduling environment.  It aims to be an alternative
   and, over time, successor to the widely deployed iCalendar data
   format, and to be unambiguous, extendable, and simple to process.  In
   contrast to the jCal format, which is also JSON-based, JSCalendar is
   not a direct mapping from iCalendar, but defines the data model
   independently and expands semantics where appropriate.
 
 
The IETF datatracker status page for this draft is:
https://datatracker.ietf.org/doc/draft-ietf-calext-jscalendar/
 
There are also htmlized versions available at:
https://tools.ietf.org/html/draft-ietf-calext-jscalendar-26
https://datatracker.ietf.org/doc/html/draft-ietf-calext-jscalendar-26
 
A diff from the previous version is available at:
https://www.ietf.org/rfcdiff?url2=draft-ietf-calext-jscalendar-26
 
 
Please note that it may take a couple of minutes from the time of submission
until the htmlized version and diff are available at tools.ietf.org.
 
Internet-Drafts are also available by anonymous FTP at:
ftp://ftp.ietf.org/internet-drafts/
 
 
_______________________________________________
calsify mailing list
calsify@ietf.org <mailto:calsify@ietf.org> 
https://www.ietf.org/mailman/listinfo/calsify