Subject: Re: [calsify] JSCalendar: fractional seconds

From: Cyrus Daboo <[email-masked]>
Date: Thu, 06 Jun 2019 08:37:40 -0700

Hi Robert,
Some initial thoughts:

--On June 6, 2019 at 2:07:30 PM +0100 Robert Stepanek 
<[email-masked]> wrote:

>  Purpose: This parameter is used to define fractional seconds for
>  time values and durations. It is meant to preserve time precision
>  on time values and duration with sub-second precision, without
>  increasing the time value range within iCalendar.

I think we should have a strong statement here, something equivalent to:

    FRACSEC MUST NOT be used in date-time calculations or comparisons in 
iCalendar

On the other hand, if your intent is that it is used in such calculations, 
then you are going to need much more detailed language on how to handle 
cases where it is missing on things like RECURRENCE-ID, RDATE, EXDATE etc.

>  Description: This parameter MAY be specified on properties of type
>  DATE-TIME or DURATION. The integral part of the float value MUST

Can this also be used with value type TIME?

How will PERIOD be handled? Right now that is only used in iCalendar 
FREEBUSY and RDATE. Looks like JSCalendar does not support a "period" on 
its equivalent of RDATE (something that might need to be called out in the 
mapping document if not already there). Also, JSCalendar does not seem to 
support an equivalent to VFREEBUSY, which may be a big barrier to adoption 
by "enterprise" calendaring system which typically do use free busy a lot.

>  be zero. The value MUST NOT be negative. iCalendar
>  implementations MAY ignore this parameter in date time arithmetic.
>  Implementations MUST ignore presence of the FRACSEC parameter on
>  RECURRENCE-ID properties when determining recurrence overrides.

>  If present on a RECURRENCE-ID property, its value MUST match the
>  FRACSEC parameter value on the DTSTART property.

In components other than VEVENT, a DTSTART is not required to be present 
when RECURRENCE-ID is present (e.g. VTODO with just a DUE). So this should 
probably be re-worded, something like:

    its value MUST match the FRACSEC parameter value on the DATE-TIME
    property that defines the reference point for the recurring instances.

Should FRACSEC be allowed on an RRULE containing a DATE-TIME UNTIL value? 
Looks like JSCalendar allows fraction seconds on UNTIL.

Is there any need to use fraction seconds in an RRULE BY... rule? (I hope 
not).

-- 
Cyrus Daboo

---

From: "Robert Stepanek" <[email-masked]>
Date: Thu, 06 Jun 2019 16:58:28 +0100

Hi Cyrus,

thanks for you input and greetings from Bedford from the CalConnect crowd :)

>  FRACSEC MUST NOT be used in date-time calculations or comparisons in 

Yes, that's better.

> Can this also be used with value type TIME?

We currently don't need it defined for TIME for JSCalendar conversion. But I guess it would do no harm. I don't want to define this for PERIOD, we don't have a use case for it and. I'll take note of VFREEBUSY, but it will go into its own extension RFC.

>  property that defines the reference point for the recurring instances.

Great, thanks.

> Looks like JSCalendar allows fraction seconds on UNTIL.

It'd be great to add e.g. UNTIL-FRACSEC to RRULE. But from experience client implementations tend to just ignore unknown parameters, whereas they fail for unknown RRULE fields. I'm not sure how we will handle that.

> Is there any need to use fraction seconds in an RRULE BY... rule? (I hope 

None that I know of.

Cheers,
Robert

---

From: Ken Murchison <[email-masked]>
Date: Thu, 6 Jun 2019 12:08:03 -0400

On 6/6/19 11:37 AM, Cyrus Daboo wrote:
>
> Is there any need to use fraction seconds in an RRULE BY... rule? (I 
> hope not).

FWIW, the libical PR includes FREQ=MSEC (millisecond frequency).

-- 
Ken Murchison
Cyrus Development Team
FastMail US LLC