I think I found the problem and solution. I was sending
DTSTART:20171026T030000Z - as UTC time
But then I read
The "
DTSTART" and "
DTEND" property pair or "
DTSTART" and "
DURATION"
property pair, specified within the iCalendar object defines the
first instance of the recurrence. When used with a recurrence rule,
the "
DTSTART" and "
DTEND" properties MUST be specified in local time
and the appropriate set of "
VTIMEZONE" calendar components MUST be
included. For detail on the usage of the "
VTIMEZONE" calendar
component, see the "
VTIMEZONE" calendar component definition.
When I send DTSTART;TZID=America/Los_Angeles:20171026T030000, it works.
I have a different question, is it necessary to send VTIMEZONE within the iCalendar object for recurrence to work?
After the above changes, it works even if there is no VTIMEZONE in iCalendar object.