2009-08-13 29 views
4

プロトコルAPIを使用してカレンダーに定期的な予定を追加しようとしています。私は、Googleのインターフェースで作成したイベントから繰り返しタグの構文を取り、作成リクエストでそのタグを使用しました。ここに私が提出したものがあります:XMLを使用して定期的な予定をGoogleカレンダーに追加する

<?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は存在しません。

ありがとうございました!

答えて

5

2つのこと:

  1. あなたのタイムゾーンの部分は有効ではありません - 私は、各プロパティは、独自の行にあるべきと考えています。

  2. "UNTIL"はUTC時間である必要があります。 RFC2445から:

日付時刻値として指定した場合、それはUTC時刻形式で指定する必要があります。

だからここの部分「まで」のために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 

を最近の変化。

また、VTIMEZONEセクションを完全に省略することもできます.TZIDはGoogleカレンダーでサポートされていることがわかっているIDでなければなりません。例:

+1

それに、先頭の空白を削除すると(私はインデントしていました)、それを行いました。 – KingErroneous

+0

同様の問題があり、原因は空白でした!ありがとう – aldrin

関連する問題