Subject: [calsify] jscalendar event/task overrides without master

From: Marten Gajda <[email-masked]>
Date: Mon, 1 Feb 2021 21:55:50 +0100

Hi all,

I've started to implement a simple task list to JSGroup file export and 
came across an issue I couldn't find an answer to. So hopefully someone 
is able to help me with this.

It may happen that the task list contains a recurring task instance 
without also containing the master task. This might happen when you are 
assigned to a single instance of a recurring task.

In icalendar I'd just omit the master VTODO, but how do I do that in 
jscalendar? IIRC the base object must be a valid jstask.

The same issue applies to events, of course. Not sure if we have 
discussed this before but I can't remember nor can I find anything about it.

So what's the right way to store such a task/event if I don't have any 
information about the master?

Cheers,

Marten

-- 
Marten Gajda
CEO

dmfs GmbH
Frankenstraße 9
01309 Dresden
GERMANY

phone: +49 177 4427167
email: [email-masked]

Managing Director: Marten Gajda
Registered address: Dresden
Registered No.: AG Dresden HRB 34881
VAT Reg. No.: DE303248743

---

From: Michael Douglass <[email-masked]>
Date: Mon, 1 Feb 2021 17:03:20 -0500

On 2/1/21 15:55, Marten Gajda wrote:
> Hi all,
>
> I've started to implement a simple task list to JSGroup file export 
> and came across an issue I couldn't find an answer to. So hopefully 
> someone is able to help me with this.
>
> without also containing the master task. This might happen when you 
> are assigned to a single instance of a recurring task.
>

I ran into this issue as I was implementing the conversion for bedework. 
The situation obviously arises during scheduling but might also arise 
with publishing a single instance.

I think the short answer is that the overrride must be a complete 
representation of the event/task as modified by the override. I did 
raise an issue with that. If the override has the start timezone 
modified then there's no way to determine the actual timezone of the 
master. In iCal the recurrence id has the timezone represented as the 
tzid parameter.

The suggestion made was to use a "recurrenceIdTimeZone" property to 
specify the timezone used for recurrence ids.

>
> Cheers,
>
> Marten
>
>
> _______________________________________________
> calsify mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/calsify

---

From: "Neil Jenkins" <[email-masked]>
Date: Tue, 02 Feb 2021 13:00:46 +1100

> jscalendar? IIRC the base object must be a valid jstask.

It's much the same in JSCalendar: you include a JSTask object for each expanded occurrence instead of a single master JSTask with a recurrence rule.  So in the JSGroup `entries` list, you would have something like:

[{
  "uid": "123",
  "recurrenceId": "2020-01-01T00:00:00",
  ... etc.
}, {
  "uid": "123",
  "recurrenceId": "2020-01-02T00:00:00",
  ... etc.
},
...
]

Cheers,
Neil.

---

From: Marten Gajda <[email-masked]>
Date: Tue, 2 Feb 2021 09:25:27 +0100

Thanks for your responses.

I guess that requires a broader definition of "JSCalendar object" then.

Section "4.1.2. uid" says

> The value of this property MUST be unique across all JSCalendar objects
And section 3 says:

> A JSCalendar object is a JSON object
Taken together, these two contradict the proposed solution.

This case is so special and counter intuitive, it should be mentioned 
explicitly in a suitable section.

A concrete example would be helpful too.

Cheers,

Marten

Am 02.02.21 um 03:00 schrieb Neil Jenkins:
> It's much the same in JSCalendar: you include a JSTask object for each 
> expanded occurrence instead of a single master JSTask with a 
> recurrence rule.  So in the JSGroup |entries| list, you would have 
> something like:
>
> [{
>    "uid": "123",

-- 
Marten Gajda
CEO

dmfs GmbH
Frankenstraße 9
01309 Dresden
GERMANY

phone: +49 177 4427167
email: [email-masked]