SSブログ

イベントコンポーネント(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にプロパティについての詳細が書かれているんでしょう


つづく。






nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

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

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