SSブログ

タイムゾーンコンポーネント(VTIMEZONE) [iCalendar]

さて、次は「VTIMEZONE」ですね。時間関係ですねぇ・・。また、大半が後回しになるかも・・。

それはさておき、このコンポーネントは「タイムゾーン」を定義するために使用されるコンポーネントです。定義は下記の通り。

timezonec  = "BEGIN" ":" "VTIMEZONE" CRLF
             *(
             ;
             ; ’tzid’ is REQUIRED, but MUST NOT occur more
             ; than once.
             ;
             tzid /
             ;
             ; ’last-mod’ and ’tzurl’ are OPTIONAL,
             ; but MUST NOT occur more than once.
             ;
             last-mod / tzurl /
             ;
             ; One of ’standardc’ or ’daylightc’ MUST occur
             ; and each MAY occur more than once.
             ;
             standardc / daylightc /
             ;
             ; The following are OPTIONAL,
             ; and MAY occur more than once.
             ;
             x-prop / iana-prop
             ;
                    )
                    "END" ":" "VTIMEZONE" CRLF
       standardc  = "BEGIN" ":" "STANDARD" CRLF
                    tzprop
                    "END" ":" "STANDARD" CRLF
       daylightc  = "BEGIN" ":" "DAYLIGHT" CRLF
                    tzprop
                    "END" ":" "DAYLIGHT" CRLF
       tzprop     = *(
                    ;
                    ; The following are REQUIRED,
                    ; but MUST NOT occur more than once.
                    ;
                    dtstart / tzoffsetto / tzoffsetfrom /
                    ;
                    ; The following is OPTIONAL,
                    ; but SHOULD NOT occur more than once.
                    ;
                    rrule /
                    ;
                    ; The following are OPTIONAL,
                    ; and MAY occur more than once.
                    ;
                    comment / rdate / tzname / x-prop / iana-prop
                    ;
                    )


定義を見る限り「VTIMEZONE」のコンポーネントは「STANDARD」コンポーネントと「DAYLIGHT」コンポーネントを中に含む形となる様です。それぞれのコンポーネントは少なくともいずれか一つは設定する必要があり、それぞれ複数存在してもいい様子です。

まず、プロパティ、コンポーネント(色つき背景)について、まとめておきます。

tzidM二つ以上は設定しない(MUST NOT)
last-modO二つ以上は設定しない(MUST NOT)
tzurlO二つ以上は設定しない(MUST NOT)
standardcM/O「standardc」「daylightc」のいずれかは必須(MUST)。二つ以上設定可(MAY)
daylightcM/O「standardc」「daylightc」のいずれかは必須(MUST)。二つ以上設定可(MAY)
x-propO二つ以上設定可(MAY)
iana-propO二つ以上設定可(MAY)


「STANDARD」「DAYLIGHT」コンポーネントの中身のプロパティは下記の通りです。

dtstartM二つ以上設定しない(MUST NOT)
tzoffsettoM二つ以上設定しない(MUST NOT)
tzoffsetfromM二つ以上設定しない(MUST NOT)
rruleO二つ以上設定すべきでない(SHOULD NOT)
commentO二つ以上設定可(MAY)
rdateO二つ以上設定可(MAY)
tznameO二つ以上設定可(MAY)
x-propO二つ以上設定可(MAY)
iana-propO二つ以上設定可(MAY)


タイムゾーンは、下記の様な各地で決められている時間に関するルールで明確に定義されています。

  • 標準時のUTCからのオフセット(多くの場合は1時間単位のオフセット)
  • サマータイム(Daylight Saving Time / Advanced Time / Summer Time / Legal Time)制による調整


この仕様ではタイムゾーンの登録情報については記載されていない様ですが、実装する際にはTZ databaseを参照すればいいとのこと。

「VTIMEZONE」カレンダーコンポーネントについて、その他いろいろ書かれていますが、概要は下記の通りだと思います。

  • 他のカレンダーコンポーネントにネストできない
  • 1つのカレンダーオブジェクトに複数存在できる
    →この場合、それぞれのコンポーネントは別々のタイムゾーンを定義すること(MUST)
  • 個々のコンポーネントはそれぞれ別々の「TZID」パラメータを定義する(MUST) ←上と同じこと?
  • 繰り返しのカレンダーコンポーネント(recurring calendar component)から参照される場合、全ての繰り返しに対して有効なタイムゾーンを提供すること(MUST) ←意味不明
  • 「STANDARD」サブコンポーネントは、標準時間(Standard time)について記述する
  • 「DAYLIGHT」サブコンポーネントは、サマータイム(Daylight Saving Time)について記述する
  • 「STANDARD」「DAYLIGHT」サブコンポーネントは次の要素から成る。
    • 式典(observance)の着手日時(the first onset DATE-TIME)
    • 分かる場合、式典(observance)の最終的な着手日時(the last onset DATE-TIME)
    • 式典の適用されるまでのオフセット(?)
    • 式典が有効になる日時を示すルール
    • 式典の名前(optional name)
    ここ、意味不明ですね・・。「onset」の意味も間違ってますかね・・・? 「offset」の反対語?


「observance(遵守事項?)」について、下記が書かれています。

  • それぞれのタイムゾーンに、一定の期間に守るべく独立した定義が複数ありえる
  • 「STANDARD」もしくは「DAYLIGHT」サブコンポーネントで記述される。
    →いくつかのサブコンポーネントで一定期間のタイムゾーンを記述する
  • もう一文の意味がよくわかりません・・・・・・(T_T)



なんか、よくわからないので、図示して欲しいですね・・。ちなみに、まだ後5ページ近くもあります・・。

長いので、つづく。

【参考】
What is an onset date? - YAHOO! ANSWERS







フリー・ビジーコンポーネント(VFREEBUSY) [iCalendar]

のんびり、コンポーネントについて一つづつ読んで行っていますが、続いて「VFREEBUSY」です。これまでも、何度かfreeとかbusyとかは出てきましたが、具体的にどういうものなのかが分かりませんでした。今回の節でわかりますでしょうか・・。

このコンポーネントは、「free time」もしくは「busy time」情報の要求、その要求への応答および、「busy time」の告知のために使われる様ですね。基本的に第3者とのやり取りのために使われる様な感じです。

下記の通りに定義されています。

freebusyc  = "BEGIN" ":" "VFREEBUSY" CRLF
             fbprop
             "END" ":" "VFREEBUSY" CRLF
fbprop     = *(
           ;
           ; The following are REQUIRED,
           ; but MUST NOT occur more than once.
           ;
           dtstamp / uid /
           ;
           ; The following are OPTIONAL,
           ; but MUST NOT occur more than once.
           ;
           contact / dtstart / dtend /
           organizer / url /
           ;
           ; The following are OPTIONAL,
           ; and MAY occur more than once.
           ;
           attendee / comment / freebusy / rstatus / x-prop /
           iana-prop
           ;
           )


こちらも表にしておきましょう。「M」は「必須」、「O」は「オプション」です。

dtstampM二つ以上設定しない(MUST NOT)
uidM二つ以上設定しない(MUST NOT)
contactO二つ以上設定しない(MUST NOT)
dtstartO二つ以上設定しない(MUST NOT)
dtendO二つ以上設定しない(MUST NOT)
organizerO二つ以上設定しない(MUST NOT)
urlO二つ以上設定しない(MUST NOT)
attendeeO二つ以上設定してもよい(MAY)
commentO二つ以上設定してもよい(MAY)
freebusyO二つ以上設定してもよい(MAY)
rstatusO二つ以上設定してもよい(MAY)
x-propO二つ以上設定してもよい(MAY)
iana-propO二つ以上設定してもよい(MAY)


このコンポーネントは、単に自分のカレンダー上に表示するだけでなく、人に対していつが空いてるのか問い合わせたり、逆に自分の空き時間を返答したりと言う用途も考慮しているようです。用途ごとのプロパティの設定値の意味の説明が書かれていたので、下記にまとめてみます。

情報の要求 「ATTENDEE」プロパティに要求先を記載する
「ORGANIZER」プロパティに要求元を記載する
「DTSTART」「DTEND」プロパティで空き時間、塞がっている時間の時間帯を記載する
「UID」「DTSTAMP」プロパティで複数の時間帯を適切に並べるための補助情報を記載する(?)
情報の応答 「ATTENDEE」プロパティに応答元を記載する
「ORGANIZER」プロパティに要求元を記載する
「FREEBUSY」プロパティに空き時間、塞がっている時間があれば、情報を記載する
「UID」「DTSTAMP」プロパティで複数の時間帯を適切に並べるための補助情報を記載する(?)
情報の告知 「ORGANIZER」プロパティに塞がっている時間の関係者を記載する
「DTSTART」「DTEND」プロパティで塞がっている時間の時間帯を記載する
「FREEBUSY」プロパティに塞がっている時間の情報を記載する
「DTSTAMP」プロパティで告知の発行日時(DATE-TIME)を記載する



続いて、残りの部分に書かれていることを列挙しておきます。

  • 他のカレンダーコンポーネント内にネストできない
  • 1つのiCalendarオブジェクト内に複数のコンポーネントを書くことが可能
    →これにより、月内の空き時間などの様に、論理的なグルーピングをすることが可能。
  • 空き時間情報の要求やその応答などiCalendar object methodとして使用されることが想定されている
  • 空き時間などは1つ以上の「FREEBUSY」プロパティで表わす
  • 本コンポーネント内に「DTSTART」や「DTEND」プロパティが存在する場合、「FREEBUSY」プロパティより前に記述するべき(SHOULD)
  • 繰り返しに関するプロパティ「RRULE」「RDATE」「EXDATE」は本コンポーネント内には書かない
    →定義から明白だと思います・・・。
  • 繰り返しのイベントに関しては「FREEBUSY」プロパティを用いて解決する(?)
    →「VEVENT」の定義を見る限り、そこに「FREEBUSY」プロパティは設定できない様に思いますが・・。


最後に、例をまとめておきます。

BEGIN:VFREEBUSY
UID:19970901T082949Z-FA43EF@example.com
ORGANIZER:mailto:jane_doe@example.com
ATTENDEE:mailto:john_public@example.com
DTSTART:19971015T050000Z
DTEND:19971016T050000Z
DTSTAMP:19970901T083000Z
END:VFREEBUSY
空き時間、忙しい時間を聞くために使用される例。
BEGIN:VFREEBUSY
UID:19970901T095957Z-76A912@example.com
ORGANIZER:mailto:jane_doe@example.com
ATTENDEE:mailto:john_public@example.com
DTSTAMP:19970901T100000Z
FREEBUSY:19971015T050000Z/PT8H30M,
 19971015T160000Z/PT5H30M,19971015T223000Z/PT6H30M
URL:http://example.com/pub/busy/jpublic-01.ifb
COMMENT:This iCalendar file contains busy time information for
  the next three months.
END:VFREEBUSY
忙しい時間を回答するために使用される例。
BEGIN:VFREEBUSY
UID:19970901T115957Z-76A912@example.com
DTSTAMP:19970901T120000Z
ORGANIZER:mailto:jsmith@example.com
DTSTART:19980313T141711Z
DTEND:19980410T141711Z
FREEBUSY:19980314T233000Z/19980315T003000Z
FREEBUSY:19980316T153000Z/19980316T163000Z
FREEBUSY:19980318T030000Z/19980318T040000Z
URL:http://www.example.com/calendar/busytime/jsmith.ifb
END:VFREEBUSY
忙しい時間の情報を公開するために使用される例。


「VFREEBUSY」コンポーネントは普通のカレンダーソフトには不要ですかね・・。グループウェアなどでは利用価値があるかも。




ウイルスバスター トレンドマイクロ・オンラインショップ

ジャーナルコンポーネント(VJORNAL) [iCalendar]

仕様を読み進んで行ってますが、今回は「VJOURNAL」です。日誌、日記と言う感じですかね。

定義は下記の通りです。

journalc   = "BEGIN" ":" "VJOURNAL" CRLF
             jourprop
             "END" ":" "VJOURNAL" CRLF
jourprop   = *(
           ;
           ; The following are REQUIRED,
           ; but MUST NOT occur more than once.
           ;
           dtstamp / uid /
           ;
           ; The following are OPTIONAL,
           ; but MUST NOT occur more than once.
           ;
           class / created / dtstart /
           last-mod / organizer / recurid / seq /
           status / summary / url /
           ;
           ; The following is OPTIONAL,
           ; but SHOULD NOT occur more than once.
           ;
           rrule /
           ;
           ; The following are OPTIONAL,
           ; and MAY occur more than once.
           ;
           attach / attendee / categories / comment /
           contact / description / exdate / related / rdate /
           rstatus / x-prop / iana-prop
           ;
           )


毎度のことながら、これも表にしておきます。「M」は「必須」、「M/O」は「場合によっては必須」、「O」は「オプション」です。

dtstampM二つ以上は設定しない(MUST NOT)
uidM二つ以上は設定しない(MUST NOT)
classO二つ以上は設定しない(MUST NOT)
createdO二つ以上は設定しない(MUST NOT)
dtstartO二つ以上は設定しない(MUST NOT)
last-modO二つ以上は設定しない(MUST NOT)
organizerO二つ以上は設定しない(MUST NOT)
recuridO二つ以上は設定しない(MUST NOT)
seqO二つ以上は設定しない(MUST NOT)
statusO二つ以上は設定しない(MUST NOT)
summaryO二つ以上は設定しない(MUST NOT)
urlO二つ以上は設定しない(MUST NOT)
rruleO二つ以上は設定すべきでない(SHOULD NOT)
attachO二つ以上設定可(MAY)
attendeeO二つ以上設定可(MAY)
categoriesO二つ以上設定可(MAY)
commentO二つ以上設定可(MAY)
contactO二つ以上設定可(MAY)
descriptionO二つ以上設定可(MAY)
exdateO二つ以上設定可(MAY)
relatedO二つ以上設定可(MAY)
rdateO二つ以上設定可(MAY)
rstatusO二つ以上設定可(MAY)
x-propO二つ以上設定可(MAY)
iana-propO二つ以上設定可(MAY)


以下、書かれている内容を列挙します。

  • 特定の日に関連するテキストノート(日誌や日記?)を記述する
  • 「DTSTART」プロパティは、エントリに関連する日付を示す。
    →「DTSTAMP」は作成日時か?
  • 「DTSTART」は一般的にはDATE型。DATE=TIME型も利用可。
  • 例えば、日々の議事録、通話記録、功績リストなどに利用できる。
  • フリータイム、ビジータイムの対象外。「TRANSPARENT」がtime transparencyに設定されているのと同様
  • 他のカレンダーコンポーネント内にネストは不可。
  • 「RELATED-TO」プロパティを設定することで、「VEVENT」「VTODO」と関連付けることは可


例を下記にあげておきます。

BEGIN:VJOURNAL
UID:19970901T130000Z-123405@example.com
DTSTAMP:19970901T130000Z
DTSTART;VALUE=DATE:19970317
SUMMARY:Staff meeting minutes
DESCRIPTION:1. Staff meeting: Participants include Joe\,
  Lisa\, and Bob. Aurora project plans were reviewed.
  There is currently no budget reserves for this project.
  Lisa will escalate to management. Next meeting on Tuesday.\n
  2. Telephone Conference: ABC Corp. sales representative
  called to discuss new printer. Promised to get us a demo by
  Friday.\n3. Henry Miller (Handsoff Insurance): Car was
  totaled by tree. Is looking into a loaner car. 555-2323
  (tel).
END:VJOURNAL

VJOURNALの例だそうです・・。


説明がシンプルですね。各プロパティの機能がわからないと掴みどころが無い様な感じもしています。


つづく。






TODOコンポーネント(VTODO) [iCalendar]

次に書かれているコンポーネントは「VTODO」です。

「TODOについて記載するもの」ですね。その記述については、下記の通りに定義されています。

 todoc      = "BEGIN" ":" "VTODO" CRLF
              todoprop *alarmc
              "END" ":" "VTODO" CRLF
 todoprop   = *(
            ;
            ; The following are REQUIRED,
            ; but MUST NOT occur more than once.
            ;
            dtstamp / uid /
            ;
            ; The following are OPTIONAL,
            ; but MUST NOT occur more than once.
            ;
            class / completed / created / description /
            dtstart / geo / last-mod / location / organizer /
            percent / priority / recurid / seq / status /
            summary / url /
            ;
            ; The following is OPTIONAL,
            ; but SHOULD NOT occur more than once.
            ;
            rrule /
            ;
            ; Either ’due’ or ’duration’ MAY appear in
            ; a ’todoprop’, but ’due’ and ’duration’
            ; MUST NOT occur in the same ’todoprop’.
            ; If ’duration’ appear in a ’todoprop’,
            ; then ’dtstart’ MUST also appear in
            ; the same ’todoprop’.
            ;
            due / duration /
            ;
            ; The following are OPTIONAL,
            ; and MAY occur more than once.
            ;
            attach / attendee / categories / comment / contact /
            exdate / rstatus / related / resources /
            rdate / x-prop / iana-prop
            ;
            )


これもVEVENTにならって、表にしてみます。ちなみに、「VEVENT」を見た時に見逃してましたが、定義によると「VALARM」は複数の設定ができる様ですね。

dtstampM二つ以上は書かない(MUST NOT)
uidM二つ以上は書かない(MUST NOT)
classO二つ以上は書かない(MUST NOT)
completedO二つ以上は書かない(MUST NOT)
createdO二つ以上は書かない(MUST NOT)
descriptionO二つ以上は書かない(MUST NOT)
dtstartM/O「duration」が設定されている場合は必ず設定する(MUST)。二つ以上は書かない(MUST NOT)
geoO二つ以上は書かない(MUST NOT)
last-modO二つ以上は書かない(MUST NOT)
locationO二つ以上は書かない(MUST NOT)
organizerO二つ以上は書かない(MUST NOT)
percentO二つ以上は書かない(MUST NOT)
priorityO二つ以上は書かない(MUST NOT)
recuridO二つ以上は書かない(MUST NOT)
seqO二つ以上は書かない(MUST NOT)
statusO二つ以上は書かない(MUST NOT)
summaryO二つ以上は書かない(MUST NOT)
urlO二つ以上は書かない(MUST NOT)
rruleO二つ以上は書くべきでない(SHOULD NOT)
dueO「duration」が設定されている場合は、設定してはいけない(MUST NOT)。
durationO「due」が設定されている場合は、設定してはいけない(MUST NOT)。これを設定する際は必ず「dtstart」も設定する(MUST)
attachO二つ以上設定してもよい(MAY)
attendeeO二つ以上設定してもよい(MAY)
categoriesO二つ以上設定してもよい(MAY)
commentO二つ以上設定してもよい(MAY)
contactO二つ以上設定してもよい(MAY)
exdateO二つ以上設定してもよい(MAY)
rstatusO二つ以上設定してもよい(MAY)
relatedO二つ以上設定してもよい(MAY)
resourcesO二つ以上設定してもよい(MAY)
rdateO二つ以上設定してもよい(MAY)
x-propO二つ以上設定してもよい(MAY)
iana-propO二つ以上設定してもよい(MAY)


「VTODO」について、記載されていたことを列挙します。

  • 「VALARM」コンポーネントを含むことができる
  • 他のカレンダーコンポーネントにネストすることは出来ない
  • 「RELATED-TO」プロパティを用いて「VEVENT」や「VJOURNAL」と関連付けることが可能
  • 「DTSTART」と「DUE」もしくは「DURATION」を含まない場合、完了するまで、各日付のコンポーネントとして扱う


終了日だけ設定された場合はどうなるんやろ?と思ったら、「DTEND」は設定する項目に無い様ですね・・。「EXDATE」ってなんでしょう?これもプロパティの意味がわからない限り謎が多いですね。

ま、とりあえず、下記に例をまとめておきます。

BEGIN:VTODO
UID:20070313T123432Z-456553@example.com
DTSTAMP:20070313T123432Z
DUE;VALUE=DATE:20070501
SUMMARY:Submit Quebec Income Tax Return for 2006
CLASS:CONFIDENTIAL
CATEGORIES:FAMILY,FINANCE
STATUS:NEEDS-ACTION
END:VTODO

2007/5/1までに完了させる必要のある項目を示す。2007/5/1の0時に期限切れとなる。
BEGIN:VTODO
UID:20070514T103211Z-123404@example.com
DTSTAMP:20070514T103211Z
DTSTART:20070514T110000Z
DUE:20070709T130000Z
COMPLETED:20070707T100000Z
SUMMARY:Submit Revised Internet-Draft
PRIORITY:1
STATUS:NEEDS-ACTION
END:VTODO
2007/7/9 1:00PMに到着予定で、2007/7/7 10:00AMに完了した項目


例を見ていると「DUE」プロパティが終了時点を示す様ですね。だから「DTEND」は無い様ですね。これらの例を見ていると、日付の表現がやはりややこしそうです・・。


「VTODO」については、以上です。







イベントコンポーネント(VEVENT) [iCalendar]

今回から各カレンダーコンポーネントについての記載を見て行きます。最初は「VEVENT」です。

「イベントを記載するコンポーネント」とのこと。そのままですね。記述は下記の通りに定義されています。

       eventc     = "BEGIN" ":" "VEVENT" CRLF
                    eventprop *alarmc
                    "END" ":" "VEVENT" CRLF
       eventprop  = *(
                  ;
                  ; The following are REQUIRED,
                  ; but MUST NOT occur more than once.
                  ;
                  dtstamp / uid /
                  ;
                  ; The following is REQUIRED if the component
                  ; appears in an iCalendar object that doesn’t
                  ; specify the "METHOD" property; otherwise, it
                  ; is OPTIONAL; in any case, it MUST NOT occur
                  ; more than once.
                  ;
                  dtstart /
                  ;
                  ; The following are OPTIONAL,
                  ; but MUST NOT occur more than once.
                  ;
                  class / created / description / geo /
                  last-mod / location / organizer / priority /
                  seq / status / summary / transp /
                  url / recurid /
                  ;
                  ; The following is OPTIONAL,
                  ; but SHOULD NOT occur more than once.
                  ;
                  rrule /
                  ;
                  ; Either ’dtend’ or ’duration’ MAY appear in
                  ; a ’eventprop’, but ’dtend’ and ’duration’
                  ; MUST NOT occur in the same ’eventprop’.
                  ;
                  dtend / duration /
                  ;
                  ; The following are OPTIONAL,
                  ; and MAY occur more than once.
                  ;
                  attach / attendee / categories / comment /
                  contact / exdate / rstatus / related /
                  resources / rdate / x-prop / iana-prop
                  ;
                  )


見通しが悪いので、表にしてみますか・・。「M」は「必須」、「M/O」は「場合によっては必須」、「O」は「オプション」です。

dtstampM二つ以上は書かない(MUST NOT)。
uidM二つ以上は書かない(MUST NOT)。
dtstartM/O「METHOD」プロパティの無いiCalendarオブジェクトの場合必須。二つ以上は書かない(MUST NOT)。
classO二つ以上は書かない(MUST NOT)。
createdO二つ以上は書かない(MUST NOT)。
descriptionO二つ以上は書かない(MUST NOT)。
geoO二つ以上は書かない(MUST NOT)。
last-modO二つ以上は書かない(MUST NOT)。
locationO二つ以上は書かない(MUST NOT)。
organizerO二つ以上は書かない(MUST NOT)。
priorityO二つ以上は書かない(MUST NOT)。
seqO二つ以上は書かない(MUST NOT)。
statusO二つ以上は書かない(MUST NOT)。
summaryO二つ以上は書かない(MUST NOT)。
transpO二つ以上は書かない(MUST NOT)。
urlO二つ以上は書かない(MUST NOT)。
recuridO二つ以上は書かない(MUST NOT)。
rruleO二つ以上は書くべきでない(SHOULD NOT)。
dtendO「duration」設定されている場合は書かない(MUST NOT)。
durationO「dtend」設定されている場合は書かない(MUST NOT)。
attachO複数指定可(MAY)。
attendeeO複数指定可(MAY)。
categoriesO複数指定可(MAY)。
commentO複数指定可(MAY)。
contactO複数指定可(MAY)。
exdateO複数指定可(MAY)。
rstatusO複数指定可(MAY)。
relatedO複数指定可(MAY)。
resourcesO複数指定可(MAY)。
rdateO複数指定可(MAY)。
x-propO複数指定可(MAY)。
iana-propO複数指定可(MAY)。


「VEVENT」の用途には下記のものが挙げられています。

  • scheduled amount of time on a calendar
  • 記念日(anniversary)
  • 日々の備忘録(daily reminder)


また、良く理解できていない(ので理解が間違えているかもしれない)こともあるのですが、記載されていた事項について、以下に羅列しておきます。

  • 「VALARM」を含むことができる
  • Time Transparencyを「TRANSPARENT」に設定することでbusy timeの検索から外せる(?)
  • 記念日や備忘録はデフォルトのDATE-TIMEの代わりに「DTSTART」プロパティを設定する
  • 「DTEND」プロパティを含む場合、DATE値の記述が必須(MUST)
  • 記念日は複数の日にまたがることも可能(「DTEND」を「DTSTART」よりも後に設定)
  • 「DURATION」プロパティを含む場合、「dur-day」か「dur-week」を記述すること(MUST)
  • 「DTSTART」プロパティはイベントの開始点(inclusive start)を記述し、繰り返しのイベント()の場合は始めの要素になる
  • 「DTEND」プロパティはイベントの終了点(non-inclusive end)を記述する
  • DATE型の「DTSTART」を含むが「DTEND」や「DURATION」を含まないイベントの期間は1日(終日?)となる
  • DATETIME型の「DTSTART」を含むが「DTEND」を含まないイベントは「DTSTART」の日時を終了時とする
  • 「VEVENT」カレンダーコンポーネントは他のカレンダーコンポーネント内にネストできない
  • 「VTODO」や「VJOURNAL」等の他のコンポーネントと関連性のある場合は「REATED-TO」プロパティを設定する


う~ん、だ~っと羅列しましたが、ちゃんとまとめたい気もしますね・・・。

最後に、例が並べられていたので、表にしときます。

BEGIN:VEVENT
UID:19970901T130000Z-123401@example.com
DTSTAMP:19970901T130000Z
DTSTART:19970903T163000Z
DTEND:19970903T190000Z
SUMMARY:Annual Employee Review
CLASS:PRIVATE
CATEGORIES:BUSINESS,HUMAN RESOURCES
END:VEVENT

ビジータイム(busy time)として検索されるミーティング
BEGIN:VEVENT
UID:19970901T130000Z-123402@example.com
DTSTAMP:19970901T130000Z
DTSTART:19970401T163000Z
DTEND:19970402T010000Z
SUMMARY:Laurel is in sensitivity awareness class.
CLASS:PUBLIC
CATEGORIES:BUSINESS,HUMAN RESOURCES
TRANSP:TRANSPARENT
END:VEVENT

ビジータイム(busy time)と検索されないリマインダ。ビジータイムでないが、トランスペアレントだとの事。
BEGIN:VEVENT
UID:19970901T130000Z-123403@example.com
DTSTAMP:19970901T130000Z
DTSTART;VALUE=DATE:19971102
SUMMARY:Our Blissful Anniversary
TRANSP:TRANSPARENT
CLASS:CONFIDENTIAL
CATEGORIES:ANNIVERSARY,PERSONAL,SPECIAL OCCASION
RRULE:FREQ=YEARLY
END:VEVENT

毎年の記念日。
BEGIN:VEVENT
UID:20070423T123432Z-541111@example.com
DTSTAMP:20070423T123432Z
DTSTART;VALUE=DATE:20070628
DTEND;VALUE=DATE:20070709
SUMMARY:Festival International de Jazz de Montreal
TRANSP:TRANSPARENT
END:VEVENT

2007/6/28〜2007/7/8に予定されているイベント。「DTEND」が「2007/7/9」に設定されているが、「DTEND」はイベントの最後の日に含まれない事に注意。(?なんで??)


謎も多いですが、おそらく3.7、3.8にプロパティについての詳細が書かれているんでしょう


つづく。






ブログを作る(無料) powered by SSブログ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。