フリー・ビジーコンポーネント(VFREEBUSY) [iCalendar]
のんびり、コンポーネントについて一つづつ読んで行っていますが、続いて「VFREEBUSY」です。これまでも、何度かfreeとかbusyとかは出てきましたが、具体的にどういうものなのかが分かりませんでした。今回の節でわかりますでしょうか・・。
このコンポーネントは、「free time」もしくは「busy time」情報の要求、その要求への応答および、「busy time」の告知のために使われる様ですね。基本的に第3者とのやり取りのために使われる様な感じです。
下記の通りに定義されています。
こちらも表にしておきましょう。「M」は「必須」、「O」は「オプション」です。
このコンポーネントは、単に自分のカレンダー上に表示するだけでなく、人に対していつが空いてるのか問い合わせたり、逆に自分の空き時間を返答したりと言う用途も考慮しているようです。用途ごとのプロパティの設定値の意味の説明が書かれていたので、下記にまとめてみます。
続いて、残りの部分に書かれていることを列挙しておきます。
最後に、例をまとめておきます。
「VFREEBUSY」コンポーネントは普通のカレンダーソフトには不要ですかね・・。グループウェアなどでは利用価値があるかも。
このコンポーネントは、「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」は「オプション」です。
dtstamp | M | 二つ以上設定しない(MUST NOT) |
uid | M | 二つ以上設定しない(MUST NOT) |
contact | O | 二つ以上設定しない(MUST NOT) |
dtstart | O | 二つ以上設定しない(MUST NOT) |
dtend | O | 二つ以上設定しない(MUST NOT) |
organizer | O | 二つ以上設定しない(MUST NOT) |
url | O | 二つ以上設定しない(MUST NOT) |
attendee | O | 二つ以上設定してもよい(MAY) |
comment | O | 二つ以上設定してもよい(MAY) |
freebusy | O | 二つ以上設定してもよい(MAY) |
rstatus | O | 二つ以上設定してもよい(MAY) |
x-prop | O | 二つ以上設定してもよい(MAY) |
iana-prop | O | 二つ以上設定してもよい(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」コンポーネントは普通のカレンダーソフトには不要ですかね・・。グループウェアなどでは利用価値があるかも。