SSブログ

フリー・ビジーコンポーネント(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」コンポーネントは普通のカレンダーソフトには不要ですかね・・。グループウェアなどでは利用価値があるかも。




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

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

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