<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Hi Garry,<div class=""><br class=""></div><div class="">From <a href="https://tools.ietf.org/html/rfc5545#page-41" class="">https://tools.ietf.org/html/rfc5545#page-41</a></div><div class=""><div class=""><br class=""></div><div class=""><pre class="newpage" style="font-size: 13.333333015441895px; margin-top: 0px; margin-bottom: 0px; break-before: page;">The COUNT rule part defines the number of occurrences at which to
      range-bound the recurrence.  The "DTSTART" property value always
      counts as the first occurrence.</pre><div class=""><br class=""></div><div>So, for COUNT=1, you should always resolve the series to just DTSTART, and nothing more, regardless of the other details in the RRULE.<br class=""></div><div><br class=""></div><div>It’s weird to have RRULEs which don’t match DTSTART, but they’re legal, you just have to remember to always include DTSTART as the first occurrence.</div><div><br class=""></div><div>If you set the COUNT to 2, you should get Thursday and then Tuesday.</div><div><br class=""></div><div>- Jeffrey</div><div class=""><br class=""></div><div><blockquote type="cite" class=""><div class="">On Apr 9, 2018, at 8:29 AM, Garry Shutler <<a href="mailto:garry@cronofy.com" class="">garry@cronofy.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><div class=""><div class=""><div class=""><div class=""><div class=""><div class=""><div class="">Thanks Filip.<br class=""><br class=""></div>Rather than starting a new thread, it seems recurrence oddities come along like buses. I think in this case Calendar.app (both macOS and iOS) is expanding the series incorrectly, but as that's usually correct I thought I'd ask before submitting a bug report to them.<br class=""><span style="font-family:monospace,monospace" class=""><br class=""></span></div><span style="font-family:monospace,monospace" class="">BEGIN:VCALENDAR<br class="">VERSION:2.0<br class="">CALSCALE:GREGORIAN<br class="">BEGIN:VEVENT<br class="">CREATED:20180401T000000Z<br class="">DTSTAMP:20180401T000000Z<br class="">UID:thursday-then-tuesday<br class=""><b class="">DTSTART;TZID=Europe/London:20180405T110000</b><br class="">DTEND;TZID=Europe/London:20180405T120000<br class=""><b class="">RRULE:FREQ=WEEKLY;WKST=SU;COUNT=1;BYDAY=TU</b><br class="">SUMMARY:Thursday then Tuesday<br class="">SEQUENCE:0<br class="">TRANSP:OPAQUE<br class="">END:VEVENT<br class="">END:VCALENDAR</span><br class=""><br class=""></div>When imported into Google this shows an event on 2018-04-05 (Thursday) and 2018-04-10 (following Tuesday), this seems correct to me. However, Calendar.app only shows the event on 2018-04-05 (Thursday).<br class=""><br class=""></div>From my testing the actual days of the week doesn't seem to matter but I've presented them in the form of the report we received in case it has some bearing. An event like this can be created through Calendar.app so whilst a bit of an outlier it's not an exotic hand-crafted iCalendar file or something like that.<br class=""><br class=""></div>If anyone could confirm that the Google behaviour is correct (or not!) that would be great.<br class=""><br class=""></div>Thanks,<br class=""></div>Garry<br class=""></div><div class="gmail_extra"><br clear="all" class=""><div class=""><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr" class=""><div class=""><div dir="ltr" class=""><div dir="ltr" class=""><br class=""><div class=""><span style="text-align:-webkit-auto;border-spacing:0px;border-collapse:separate;font-family:Helvetica" class=""><span style="border-collapse:separate;border-spacing:0px" class=""><div style="" class=""><b style="text-align:-webkit-auto;color:rgb(102,102,102)" class="">Garry Shutler</b><font color="#666666" style="text-align:-webkit-auto" class=""> </font><font color="#3d85c6" style="text-align:-webkit-auto" class="">|</font><font color="#666666" style="text-align:-webkit-auto" class=""> CTO</font></div></span></span></div></div></div></div></div></div></div>
<br class=""><div class="gmail_quote">On 5 April 2018 at 12:26, Filip Navara <span dir="ltr" class=""><<a href="mailto:navara@emclient.com" target="_blank" class="">navara@emclient.com</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div class=""><div class="m_4297226817455247462iw_mail" dir="ltr"><div style="margin: 0px;" class="">It is possible to have both properties in some cases, but it's also not universally supported and interoperable.</div><div style="margin: 0px;" class=""><br class=""></div><div style="margin: 0px;" class="">The case is having "<span style="background-color:rgb(253,253,252)" class="">RECURRENCE-ID;RANGE=<wbr class="">THISANDFUTURE:" and then overriding the rest of a the recurring series with a new RRULE. In practice most clients split the recurrence into two separate events and deal with the consequences (</span><a href="https://github.com/apple/ccs-calendarserver/blob/master/doc/Extensions/caldav-recursplit.txt)." target="_blank" class="">https://github.com/apple/ccs-<wbr class="">calendarserver/blob/master/<wbr class="">doc/Extensions/caldav-<wbr class="">recursplit.txt).</a></div><div style="margin: 0px;" class=""><br class=""></div><div style="margin: 0px;" class="">F.</div>
<div class="m_4297226817455247462signature"> </div>
<br class=""><blockquote class="m_4297226817455247462reply_block" dir="ltr" style="border-left:2px solid #0088cc;margin:5pt 0 5pt 10pt;padding:0 0 0 5pt;font-size:13px;font-family:roboto,tahoma,helvetica,sans-serif">
<hr size="1" class=""><div class=""><div class="h5">-----Original Message-----<br class="">From: "Garry Shutler" <<a href="mailto:garry@cronofy.com" target="_blank" class="">garry@cronofy.com</a>><br class="">To: <a href="mailto:caldeveloper-l@lists.calconnect.org" target="_blank" class="">caldeveloper-l@lists.<wbr class="">calconnect.org</a><br class="">Date: 04/05/18 12:46<br class="">Subject: [caldeveloper-l] Recurrence override with RRULE<br class=""><br class=""><div dir="ltr" class="">
<div class="">
<div class="">
<div class="">
<div class="">
<div class="">
<div class="">Hi,<br class=""><br class="">
</div>We've come across a weird one which I can't decide from the RFCs how it should be dealt with (so we're going by how it's displayed when imported).<br class=""><br class="">
</div>
<div class="">Here's a cut down example of what we've seen:<br class="">
</div>
<div class=""><br class=""></div>
<span style="font-family:monospace,monospace" class="">BEGIN:VCALENDAR<br class="">VERSION:2.0<br class="">BEGIN:VEVENT<br class="">DTSTART:20180323T070000Z<br class="">DTEND:20180323T083000Z<br class="">RRULE:FREQ=DAILY<br class="">SEQUENCE:0<br class="">SUMMARY:example<br class="">UID:override-with-rrule<br class="">END:VEVENT<br class="">BEGIN:VEVENT<br class="">DTSTART:20180323T080000Z<br class="">DTEND:20180323T093000Z<br class=""><b class="">RECURRENCE-ID:20180323T070000z<br class="">RRULE:FREQ=DAILY</b><br class="">SEQUENCE:0<br class="">SUMMARY:example<br class="">UID:override-with-rrule<br class="">END:VEVENT<br class="">END:VCALENDAR</span><br class=""><br class="">
</div>I thought that a RECURRENCE-ID couldn't have a RRULE and/or that only the master should have RRULEs. I can't find anything in the RFCs to confirm this (my Google-fu/reading skills may be weak!).<br class=""><br class="">
</div>To reflect what is displayed in Calendar.app we're ignoring the RRULE in the override. However, I wanted to check here to see if that's what we should be doing, whether this is valid, etc.<br class=""><br class="">
</div>Cheers,<br class="">
</div>Garry<br clear="all" class=""><div class=""><div class=""><div class=""><div class=""><div class=""><div class=""><div class=""><div class=""><div class=""><div class=""><div class=""><div class="m_4297226817455247462gmail_signature"><div dir="ltr" class=""><div class=""><div dir="ltr" class=""><div dir="ltr" class="">
<br class=""><div class=""><div style="" class=""><span style="border-spacing:0px;border-collapse:separate;font-family:Helvetica" class=""><b style="color:rgb(102,102,102)" class="">Garry Shutler</b> <font color="#3D85C6" class="">|</font> <font color="#666666" class="">CTO</font></span></div></div>
</div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div>
</div>
</div></div><hr class="">______________________________<wbr class="">_________________<br class="">caldeveloper-l mailing list<br class=""><a href="mailto:caldeveloper-l@lists.calconnect.org" target="_blank" class="">caldeveloper-l@lists.<wbr class="">calconnect.org</a><br class=""><a href="http://lists.calconnect.org/listinfo.cgi/caldeveloper-l-calconnect.org" target="_blank" class="">http://lists.calconnect.org/<wbr class="">listinfo.cgi/caldeveloper-l-<wbr class="">calconnect.org</a><br class="">
</blockquote>
</div></div>


</blockquote></div><br class=""></div>
_______________________________________________<br class="">caldeveloper-l mailing list<br class=""><a href="mailto:caldeveloper-l@lists.calconnect.org" class="">caldeveloper-l@lists.calconnect.org</a><br class="">http://lists.calconnect.org/listinfo.cgi/caldeveloper-l-calconnect.org<br class=""></div></blockquote></div><br class=""></div></div></body></html>