XML을 통해 Google 캘린더에 반복 이벤트 추가
-
16-09-2019 - |
문제
프로토콜 API를 통해 반복적 인 이벤트를 내 달력에 추가하려고합니다. Google의 인터페이스에서 만든 이벤트에서 Repurence 태그의 구문을 가져 와서 제작 요청에서 사용했습니다. 내가 제출 한 내용은 다음과 같습니다.
<?xml version='1.0' encoding='utf-8' ?>
<entry xmlns='http://www.w3.org/2005/Atom' xmlns:gd='http://schemas.google.com/g/2005'>
<category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/g/2005#event'></category>
<title type='text'>Hi Stack Overflow!</title>
<content type='text'>Help me please!</content>
<gd:where valueString='StackOverflow.com'></gd:where>
<gd:recurrence>
DTSTART;TZID=America/Los_Angeles:20090824T080000
DTEND;TZID=America/Los_Angeles:20090824T090000
RRULE:FREQ=DAILY;WKST=SU;UNTIL=20090828T090000
BEGIN:VTIMEZONE TZID:America/Los_Angeles X-LIC-LOCATION:America/Los_Angeles
BEGIN:DAYLIGHT TZOFFSETFROM:-0800 TZOFFSETTO:-0700 TZNAME:PDT DTSTART:19700308T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
END:DAYLIGHT
BEGIN:STANDARD TZOFFSETFROM:-0700 TZOFFSETTO:-0800 TZNAME:PST DTSTART:19701101T020000
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
END:STANDARD
END:VTIMEZONE
</gd:recurrence>
</entry>
이벤트가 추가되지만 반복되지 않습니다. 결과 이벤트 피드의 재발 섹션을 살펴보면 반복을 정의하는 rrule은 없습니다.
도움을 주셔서 감사합니다!
해결책
두가지:
귀하의 시간대 섹션은 유효하지 않습니다. 각 속성이 자체적으로 라인에 있어야한다고 생각합니다.
당신의 "Tlo Tlo"는 UTC 시간이어야합니다. RFC2445에서 :
날짜 시간 값으로 지정된 경우 UTC 시간 형식으로 지정해야합니다.
따라서 여기에는 "The Ther"부분에 대한 UTC로 현지 시간을 조정하고 시간대를 확장 한 완전한 예입니다.
DTSTART;TZID=America/Los_Angeles:20090824T080000
DTEND;TZID=America/Los_Angeles:20090824T090000
RRULE:FREQ=DAILY;WKST=SU;UNTIL=20090828T160000Z
BEGIN:VTIMEZONE
TZID:America/Los_Angeles
X-LIC-LOCATION:America/Los_Angeles
BEGIN:DAYLIGHT
TZOFFSETFROM:-0800
TZOFFSETTO:-0700
TZNAME:PDT
DTSTART:19700308T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0700
TZOFFSETTO:-0800
TZNAME:PST
DTSTART:19701101T020000
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
END:STANDARD
END:VTIMEZONE
나는 이것을 몰래 의심했다 5월 최근의 변화였습니다.
또는 vtimezone 섹션을 완전히 생략하려고 시도 할 수 있습니다. Google 캘린더가 지원하는 ID 인 TZID를 제공합니다. 예를 들어:
DTSTART;TZID=America/Los_Angeles:20090824T080000
DTEND;TZID=America/Los_Angeles:20090824T090000
RRULE:FREQ=DAILY;WKST=SU;UNTIL=20090828T160000Z
제휴하지 않습니다 StackOverflow