![]() |
iPlanet Calendar Server プログラマリファレンス |
第 10 章 WCAP コマンド
この章は、各 WCAP コマンドに共通のトピックと個々の WCAP コマンドに関するトピックに分かれています。
アクセスコントロールエントリ (ACE)
コマンド
アプリケーションまたは URL 符号化方式で指定されたイベントを保存する。このコマンドは、URL 内のプロパティを渡してイベントを保存します。
表 10-1 は、WCAP コマンドのアルファベット順のリストです。
共通のトピック
この節では、1 つまたは複数のコマンドに適用される共通のトピックについて説明します。トピックはアルファベット順に並んでいます。
アクセスコントロールエントリ (ACE)
アクセスコントロールエントリ (ACE)
アクセスコントロールエントリ (ACE 文字列) によって、カレンダーのアクセスコントロールが決まります。カレンダーには、複数の ACE 文字列を適用できます。適用されるすべての ACE 文字列は、まとめてアクセスコントロールリスト (ACL) と呼ばれます。システムが ACL リストを調べる際には、アクセスを許可するか拒否するかにかかわらず、最初に見つかった ACE が使用されます。このため、ACL の順序は重要な意味を持っています。ACE 文字列は、適用範囲の狭い ACE から、適用範囲の広い ACE の順序に配置しておく必要があります。一部のアクセス権は初めから組み込まれています。たとえば、主な所有者は所有するカレンダーのすべての機能にアクセスできます。このため、システムは主な所有者が自身のカレンダーにアクセスする際にアクセスコントロールチェックを行う必要はありません。
set_calprops コマンドでは、カレンダーへの ACE 文字列の登録を容易にするために、acl パラメータが使用されます。acl パラメータは、セミコロンで区切られた ACE 文字列のリストです。デフォルトの acl は ics.conf ファイルで設定できます。calstore.calendar.default.acl の設定を変更するか、cscal コマンドラインユーティリティを使用します。構成の設定に関する詳細は、『iPlanet Calendar Server 管理ガイド』を参照してください。
この文字列は、3 つの「^」文字で区切られた 4 つの要素で構成されています。4 つの要素は、それぞれ次の内容を示します。
ACE の最初の要素は、ACE が適用されるユーザを示します。
ACE の 2 番目の要素は、ACE が適用される対象を示します。
- この要素には、ユーザ ID で指定された個々のユーザ、ドメイン、またはユーザのクラスタイプを指定できます。ユーザのクラスには、次の 4 つのタイプがあります。
- ACE はカレンダーの次の範囲に適用できます。
カレンダー全体
ACE の 3 番目の要素は、ACE が適用されるアクセス値を示します。
カレンダーのコンポーネントだけ
- コンポーネントとカレンダープロパティの両方に適用します。カレンダー全体を示すには、値 a を渡します。
カレンダーのカレンダープロパティだけ
- カレンダーコンポーネント (イベントまたは仕事) に適用します。コンポーネントだけを示すには、値 c を渡します。
- カレンダープロパティ (表示名、所有者リスト) に適用します。カレンダープロパティを示すには、値 p を渡します。
ACE の 4 番目の要素は、アクセスの許可または拒否を示します。
- 同時に複数の値を指定できます。その際には、チェックしたいビットを示す文字列を呼び出し元から渡す必要があります。
- ACE 文字列で使用されるアクセスコントロール文字を 表 10-2 に示します。3 番目の要素は、1 つまたは複数のアクセスコントロール文字を含む文字列です。
- たとえば、読み取りアクセスを許可するには、値 r を渡します。書き込みおよび削除アクセスを許可するには、値 wd を渡します。
- ACE では、アクセスを許可または拒否できます。
ACE の要約
ACE の順序についてわかりやすくまとめると、次のようになります。
who = 文字列、タイプ (str)
how = 表 10-2 で説明した 1 つまたは複数のアクセスコントロール文字で構成されるアクセス文字列
応用例
jdoe のカレンダーに関して、以下に、状況の例と、どのように ACE を acl パラメータに設定するかを示します。
john にコンポーネントおよびカレンダープロパティの読み取りアクセスを許可し (acl=john a r g)、susan にコンポーネントだけの書き込みおよび削除アクセスを許可する場合 (acl=susan c wd g)、コマンド全体は次のようになります。
[「共通のトピック」に戻る]
ドメインのすべてのユーザに対して、コンポーネントだけのスケジュール、予定なし/予定あり、および読み取りアクセスを許可し (@domainname c sfr g)、所有者に対して、コンポーネントだけの書き込みおよび削除アクセスを許可し (@@o c wd g)、所有者に対して、コンポーネントおよびカレンダープロパティの自己管理、スケジュール、予定なし/予定あり、および読み取りアクセスを許可し (@@o a zsfr g)、susan に対して、コンポーネントとカレンダープロパティのすべてのアクセスを拒否し (susan a zsfdwr d)、すべてのユーザに対して読み取りアクセスを許可 (@ c r g) する場合、コマンド全体は次のようになります。
- set_calprops.wcap?id=${SESSIONID}&calid=jdoe&acl=john^a^r^g; susan^c^wd^g
ほかの言語または文字セットの選択
システムデフォルト以外の言語でデータを取得する要求を出すには、lang または charset パラメータを設定します。言語のシステムデフォルトは、ics.conf ファイルで設定されたサーバ設定です。詳細は、『管理者ガイド』を参照してください。login コマンドでは、lang パラメータだけを使用します。set_calprops コマンドでは、ほとんどの場合、lang パラメータだけの指定で十分です。ただし、場合によっては、lang パラメータの代わりに charset パラメータを使用する必要があります。たとえば、要求したデータを特定の文字セットで取得するには、charset を使用してその文字セットを指定する必要があります。charset 値には、iso-8859-1 などを指定できます。形式仕様に関する詳細は、この章の 「時刻、文字列、パラメータなどの形式」に記載されている RFC を参照してください。
iCalendar または XML 形式のデータを要求した場合は、RFC 仕様に従って常に UTF-8 形式でデータが返されます。charset を設定しても UTF-8 形式で返されます。
[「共通のトピック」に戻る]
注 これは、これらの言語のすべてがサーバで現在サポートされていることを意味するものではありません。サーバで現在サポートされている言語については、iPlanet の購入先に問い合わせてください。
繰り返しコンポーネントの削除
コンポーネントを削除するときに、コンポーネントが繰り返しているかどうかを指定できます。場合によっては、必ず指定しなければならないこともあります。また、繰り返している場合は、その繰り返しているコンポーネントだけでなく元のイベントまたは仕事も削除するかどうかを指定できます。mod パラメータを使用して、以下の削除オプションを選択します。
各オプションについて、rid パラメータを渡してイベントの繰り返し ID を指定し、さらに削除のタイプを渡す必要があります。
イベントの単一インスタンスだけを削除するには、mod パラメータを 1 に設定します。たとえば、次の URL は、2000 年 3 月 1 日の午前 11 時 22 分 33 秒 (世界標準時) に発生するイベントだけを削除します。
http://webcalendarserver/deleteevents_by_id.wcap?id=23423423434abc& calid=jdoe&uid=001&rid=20000301T112233Z&mod=1
このイベントとそれ以降のインスタンスをすべて削除するには、mod パラメータを 2 に設定します。たとえば、次の URL は、2000 年 3 月 1 日の午前 11 時 22 分 33 秒 (世界標準時) に発生するイベントとそれ以降のインスタンスをすべて削除します (uid 001)。
http://jdoe/deleteevents_by_id.wcap?id=23423423434abc&calid=jdoe&ui d=001&rid=20000301T112233Z&mod=2
このイベントとそれ以前のインスタンスをすべて削除するには、mod パラメータを 3 に設定します。
たとえば、次の URL は、2000 年 3 月 1 日の午前 11 時 22 分 33 秒 (世界標準時) に発生するイベントとそれ以前のインスタンスをすべて削除します (uid 001)。
http://jdoe/deleteevents_by_id.wcap?id=23423423434abc&calid=jdoe&ui d=001&rid=20000301T112233Z&mod=3
このイベントのインスタンスをすべて削除するには、mod パラメータを 4 に設定します。たとえば、次の URL は、このイベントのインスタンスをすべて削除します (uid 001)。
http://jdoe/deleteevents_by_id.wcap?id=23423423434abc&calid=jdoe&ui d=001&rid=20000301T112233Z&mod=4
[「共通のトピック」に戻る]
符号化文字
前述の例では、cal に関するパラメータの符号化したリストに、いくつかの符号化された文字が含まれています。符号化文字の例をいくつか挙げます。
%XX は、その文字の ASCII 値を 16 進で表しています。たとえば、「&」文字は 16 進で 26 です (10 進では 38)。
[「共通のトピック」に戻る]
エラー処理
コンポーネントデータを返す WCAP コマンド (fetch、delete、および store コマンド) を呼び出すと、配列およびエラー文字列も返されます。
エラー文字列
エラー文字列 errno は、トランザクションに対してゼロ以外のエラー番号を返します。コマンドが正常に実行された場合、その値は 0 になります。
レイヤーエラー番号配列
トランザクションのエラーの他に、トランザクション中に 1 つまたは複数のレイヤーでエラーが発生する可能性があります。レイヤーとは、要求されている複数のアクションまたはアイテムの 1 つです。たとえば、fetch_components_by_range に取り込み元のカレンダー ID のリストを渡すことがあります。この場合、各カレンダーがレイヤーです。エラー番号は、レイヤーに固有です。レイヤー配列のインデックスは、渡されたレイヤーのインデックス番号に対応します。つまり、layer_errno[3] は、取り込みコマンドに渡した 3 番目のアイテムを指します。
1 つのレイヤーのエラーが、ほかのレイヤーの処理に影響することはありません。
レイヤーカウント配列
さらに、deleteevents_by_id および deletetodos_by_id の場合は、2 つ目の配列 delete_event_count または delete_todo_count がそれぞれ返されます。この配列には、エラーが発生する前に正常に削除された回数が格納されます。この配列は、渡されたコンポーネントに繰り返しがある場合に有用です。レイヤーエラー番号配列と同様に、このレイヤーのインデックスは、コマンドに渡されたレイヤーのインデックス番号に対応します。たとえば、3 つのコンポーネントを deleteevents_by_id に渡したときに、2 つ目のイベントでエラーが発生した場合は、delete_layer_errno[2] にエラーコードが格納されます。次に、delete_event_count[2]を参照すると、エラーが発生する前に正常に削除されたイベントの数を確認できます。
エラーコード
表 10-4 は、エラー番号配列に返されるエラーコードの一部です。
[「共通のトピック」に戻る]
時刻、文字列、パラメータなどの形式
すべての時刻、文字列、パラメータなどの正確な形式および定義については、RFC2445、RFC2446、および RFC2447 を参照してください。特に指定がない限り、すべての WCAP コマンドはこれらの仕様に従います。
http://www.ietf.org/rfc/rfc2445.txt
[「共通のトピック」に戻る]http://www.ietf.org/rfc/rfc2446.txt
http://www.ietf.org/rfc/rfc2447.txt
注 WCAP の文字列パラメータのサイズに制限がない場合は、パラメータの長さを 1024 文字以下にすることをお勧めします。
予定なし/予定ありに限定したアクセス
予定なし/予定ありに限定したアクセスでは、カレンダーのスケジュール時刻の表示はユーザに許可されますが、イベントの詳細の表示は許可されません。代わりに、時間ブロックごとに「予定あり」という文字が表示されます。予定されたイベントのない時間ブロックの横には、「予定なし」という文字が表示されます。たとえば、jdoe というカレンダーに次のイベントがあります。
10:00 〜 11:00
最初の会議
12:00 〜 1:00
昼食
3:00 〜 4:00
次の会議
ユーザ john には、カレンダー jdoe への予定なし/予定ありアクセス権が与えられていると想定します。jdoe の予定なし/予定あり時間 (9:00 〜 6:00) は、次のようになります。
9 〜 10
:
空き時間
10 〜 11
:
予定あり
11 〜 12
:
空き時間
12 〜 1
:
予定あり
1 〜 3
:
空き時間
3 〜 4
:
予定あり
4 〜 6
:
空き時間
john は、予定の内容はわかりませんが、予定があることだけはわかります。
[「共通のトピック」に戻る]
iPlanet Calendar Server 5.0 の新しいコマンドおよびパラメータ
新しい WCAP コマンドでは、2.x との下位互換性を保持しながら、多くの変更が加えられています。重要な変更点の 1 つは、set_calprops コマンドが置換モードではなく更新モードで機能することです。つまり、2.x のように、コマンドですべてのパラメータを指定する必要がなくなりました。set_calprops コマンドで指定されていないパラメータは、変更されません。このバージョンには、いくつかの新しいコマンドと、既存のコマンド用の新しいパラメータが追加されています。
check_id
fetchcomponents_by_alarmrange
- 管理者はこのコマンドを使用して、セッションがまだ有効かどうかを確認できます。
fetchcomponents_by_attendee_error
- 指定した期間内にアラームが配信されるコンポーネントを照会します。
get_freebusy
- グループスケジューリングメッセージの送信中にエラーが発生したコンポーネントを照会します。
- カレンダーの予定なし/予定あり時間帯の情報を返します。
acl
このバージョンでは、以前は別のコマンドだけで使われていたパラメータが、次のコマンドに追加されています。
alarmAudio
- set_calprops に追加されたパラメータ。アクセスコントロールの ACE 文字列を登録します。「アクセスコントロールエントリ (ACE)」を参照してください。
alarmFlashing
- storeevents および storetodos に追加されたパラメータ。オーディオアラームを使用可能にします。
alarmPopup
- storeevents および storetodos に追加されたパラメータ。フラッシュアラームを有効にします。
compstate
- storeevents および storetodos に追加されたパラメータ。ポップアップダイアログアラームを有効にします。
convertCalid
- fetchcomponents_by_attendee_error 以外のすべての fetch コマンドでは、パラメータ compstate を使用して、状態別にコンポーネントを取り込むことができます。これらのコマンドでは通常、すべてのコンポーネントが取り込まれるため、このパラメータを使って取り込むコンポーネントのタイプを制限します。
- パラメータが指定されていない場合、デフォルト値は ALL です。
- 表 10-5 は、コンポーネントの状態値の一覧です。コンポーネントの状態は、参加者と開催者のどちらかに属しています。
表 10-5 compstate パラメータに関するコンポーネントの状態値
language
- set_userprefs で、カレンダーの予約購読リスト (icsSubscribed) およびグループの予約購読リスト (icsSet) を設定できるようにします。
- コロン「:」の使用を禁止するサーバ制限の回避策として、set_userprefs に追加されました。
- icsSet または icsSubscribed を設定する場合、WCAP ではこのパラメータの値だけが検索されます。
method
- storeevents および storetodos に追加されたパラメータ。コンポーネントの言語を指示します。
orgUID
- グループスケジューリングにおいて、storeevents コマンドおよび storetodos コマンドで使用する ITIP メソッドを指定します。
userid
- storeevents および storetodos に追加されたパラメータ。イベントの開催者または仕事の依頼者のユーザ ID を保持します。
- 管理者がユーザ設定を取得または設定できるように get_userprefs および set_userprefs に追加されたパラメータ。
fmt-out が set_calprops に追加されています。
[「共通のトピック」に戻る]orgEmail が storetodos に追加されています。
deleteevents_by_id
- さらに、storeevents および storetodos の tzid が変更されています。このパラメータでは、前述のコマンドと同じタイプ、つまり、「America/Los_Angeles」などのタイムゾーン ID 文字列を使用できます。
出力形式
管理者は、次の 3 つのコンテンツタイプの出力形式を要求できます。出力形式を変更するには、fmt-out に目的の値を設定します。fmt-out が指定されていない場合は、デフォルト形式の text/js で返されます。
簡略出力
brief パラメータを使用すると、簡略化されたイベントおよび仕事データを JavaScript で出力することができます。返される出力は、通常の出力の約半分のサイズになり、次のパラメータが含まれます。
[「共通のトピック」に戻る]
繰り返し処理
繰り返しの指定には、次の 6 つのパラメータを使用できます。
rrules。イベントの繰り返しに関する繰り返し規則文字列を二重引用符で囲み、各文字列をセミコロンで区切ったリスト
rdates。繰り返しの日付の ISO8601 日付文字列をセミコロンで区切ったリスト
exrules。除外する日付に関する繰り返し規則文字列を二重引用符で囲み、各文字列をセミコロンで区切ったリスト
exdates。除外する日付の ISO8601 日付文字列をセミコロンで区切ったリスト
rid。イベントの繰り返し ID を示す ISO8601 日付文字列
mod。1 〜 4 の数値。イベントのどのインスタンスを登録するかを指定する修飾子
rchange。storecomponents の繰り返しを継続するかどうかを指定するブール値
rrules
rrules パラメータは、繰り返し規則文字列を二重引用符で囲み、各文字列をセミコロンで区切ったリストの形式をとります。各文字列は、イベントの繰り返し規則を表します。各文字列は、二重引用符で囲む必要があります。繰り返し規則には、さまざまなパラメータを使用できます。構文の詳細は、RFC2445 を参照してください。繰り返しを指定するときは、freq パラメータと count パラメータを使うと便利です。
規則内の freq パラメータには、イベントの周期性を定義します。次の値を指定できます。
次の例では、rrules パラメータを使って 2 つの繰り返し規則を示しています。
DAILY
イベントを毎日繰り返します。
WEEKLY
イベントを毎週繰り返します。
MONTHLY
イベントを毎月繰り返します。
YEARLY
イベントを毎年繰り返します。
規則内の count パラメータには、会議を繰り返す回数を定義します。count を指定しなかった場合は、デフォルトの最大許容繰り返し数が使用されます。デフォルトの最大数は 60 です。最大数を変更するには、サーバ設定の
calstore.recurrence.bound を設定します。rrules="count%3D10%3Bfreq%3Ddaily";"freq%3Dweekly%3Bcount%3D4"
(COUNT=10;FREQ=DAILY and FREQ=WEEKLY;COUNT=4 encoded)
最初の規則では、イベントが毎日発生し、10 回繰り返されることを指定しています。2 番目の規則では、イベントが毎週発生し、4 回繰り返されることを指定しています。
http://webcalendarserver/storecomponents.wcap?id=b5q2o8ve2rk02nv9t6
&calid=jdoe&uid=333&dtstart=20000301T112233Z
&rrules="count%3D10%3Bfreq%3Ddaily";"freq%3Dweekly%3Bcount%3D4"
&dtend=20000301T112233&summary=uuuu
rdates
rdates パラメータは、日付と時刻の指定をセミコロンで区切ったリストの形式をとります。それぞれの日付と時刻はイベントの繰り返し日付を指定しています。たとえば、次の rdates パラメータでは、2 つの繰り返し日付 (2000 年 3 月 31 日 11 時 22 分 33 秒と 2000 年 5 月 31 日 11 時 22 分 33 秒) にイベントを繰り返すことを示しています。
rdates=20000331T112233;20000531T112233
http://webcalendarserver/storecomponents.wcap?id=b5q2o8ve2rk02nv9t6
&calid=jdoe&uid=333&dtstart=20000301T112233Z
&rdates=20000331T112233;20000531T112233
&dtend=20000301T112233&summary=uuuu特定の日付のあとの繰り返し規則を変更する場合は、rchange を 1 に設定する必要があります。
exrules
exrules パラメータは、繰り返し規則文字列を二重引用符で囲み、各文字列をセミコロンで区切ったリストをとります。各規則は除外するイベントの繰り返し規則です。たとえば、次の exrules パラメータでは、2 つの規則で指定した時期に繰り返しイベントを繰り返さないことを指定します。
exrules="count%3D10%3Bfreq%3Ddaily";"freq%3Dweekly%3Bcount%3D4"
(COUNT=10;FREQ=DAILY and FREQ=WEEEKLY;COUNT=4 encoded)
最初の規則では 10 回に渡って、イベントを毎日繰り返さないことを指定します。2 番目の規則では 4 回に渡って、イベントを毎週繰り返さないことを指定します。
http://webcalendarserver/storecomponents.wcap?id=b5q2o8ve2rk02nv9t6
&calid=jdoe&uid=333&dtstart=20000301T112233Z
&exrules="count%3D10%3Bfreq%3Ddaily";"freq%3Dweekly%3Bcount%3D4"
&rrules="count%3D100%3Bfreq%3Ddaily"&dtend=20000301T112233&summary= uuuu
exdates
exdates パラメータは、日付と時刻の指定をセミコロンで区切ったリストの形式をとります。それぞれの日付と時刻は、除外するイベントの日時を表します。たとえば、次の exdates パラメータでは、繰り返しイベントが 2 つの指定された日付 (2000 年 3 月 31 日 11 時 22 分 33 秒と 2000 年 5 月 31 日 11 時 22 分 33 秒) に発生しないことを示しています。
exdates=20000331T112233;20000531T112233
http://webcalendarserver/storecomponents.wcap?id=b5q2o8ve2rk02nv9t6
&calid=jdoe&uid=333&dtstart=20000301T112233Z
&exdates=20000331T112233;20000531T112233
&rrules="COUNT%3D200%3BFREQ=DAILY";dtend=20000301T112233&summary=uu uu
rid
このパラメータは、イベントまたは仕事の繰り返し日付を一意に指定します。rid と mod パラメータを組み合わせて、イベントおよび仕事の変更範囲を指定します。http://webcalendarserver/storecomponents.wcap?id=b5q2o8ve2rk02nv9t6
&calid=jdoe&uid=333&dtstart=20000301T112233Z
&rid=20000331T112233;dtend=20000301T112233&summary=uuuu&mod=1
mod
このパラメータでは、変更を適用するイベントまたは仕事のインスタンスを指定します。mod 値によって、次のようになります。
繰り返しのないイベントまたは仕事の場合、rid は 0 です。
rchange
rchange パラメータは、storecomponents で繰り返しを継続するかどうかを指定します。通常、イベントおよび仕事カレンダーコンポーネントは継続されるため、デフォルトは 1 になっています。しかし、複数のイベントを修正する際には、繰り返しを継続したくない場合があります。たとえば、会議が 2000 年 1 月 1 日から毎週金曜日に繰り返されていたとします。2000 年 2 月 1 日以後の各イベントの summary パラメータを changed-event に変更するには、次の URL を使用します。この例では、rchange パラメータを 0 に設定しています。こうすることで、イベントを追加せずに変更を行うことができます。
http://webcalendarserver/storeevents.wcap?id=b5q2o8ve2rk02nv9t6
&calid=jdoe&uid=abcxyz&dtstart=20000201T112233Z
&rrules="byday%3Dfr%3Bfreq%3Dweekly"&summary=changed-event
&rid=20000201T112233Z&mod=2&rchange=0[「共通のトピック」に戻る]
コマンド
id パラメータ ( セッション ID) を持つコマンドでは、このパラメータを必ず指定する必要があります。ただし、この規則には 2 つの例外があります。カレンダーへの 匿名 (anonymous) アクセスを許可している場合、または公開カレンダーへの読み取りアクセスを許可している場合、このパラメータは指定する必要がありません。その他の場合は、セッション ID を id パラメータに指定する必要があります。
注 サーバは、特別で重要な名前として「anonymous」をサポートしています。anonymous ユーザは、任意のパスワードでログインできます。また、特定のドメインに関連付けられていません。
目的
特定のカレンダーのイベントまたは仕事から別のカレンダーへのリンクを追加します。
パラメータ
表 10-7 は、このコマンドの 5 つのパラメータの一覧です。
パラメータ
タイプ
目的
必須/任意
デフォルト
説明
このコマンドを使用して、srcCal カレンダー中の指定したイベント/仕事へのリンクを、destCal カレンダーの中に追加します。指定するカレンダーが公開カレンダーである場合を除き、コマンドと一緒に id パラメータを指定する必要があります。
uid リストと rid リストのアイテム数は、正確に一致していなければなりません。さらに、各 rid とそれに対応する uid は、リスト内で同じ位置になければなりません。イベントまたは仕事に繰り返し ID がない場合は、rid リストで 0 を使用します。
次の 3 つの要件を満たしていない場合は、トランザクションが失敗します。
srcCal カレンダーと destCal カレンダーのパラメータが有効なカレンダーID であること
戻り値
トランザクションが失敗した場合は、ADDLINK_FAILED(12) のエラーが返されます。成功した場合のリターンコードは 0 です。
例
この例では、2 つのイベントリンクをカレンダー jdoe に追加する方法を示しています。このリンクは、pub カレンダー内のイベントを指すことになります。イベントは、1111 と 2222 です (イベントの uid)。どちらのイベントも繰り返さないため、繰り返し ID は 0 です。http://webcalendarserver/addlink.wcap?id=b5q2o8ve2rk02nv9t6&destCal =jdoe&srcCal=pub&uid=1111;2222&rid=0;0
目的
現在のユーザのパスワードを変更します。このコマンドは、5.0 では使わないでください。2.x との下位互換性の保持するために残されています。パスワードの変更に関する詳細は、『管理者ガイド』を参照してください。
パラメータ
表 10-8 は、このコマンドの 4 つのパラメータの一覧です。
目的
このコマンドは、ユーザのパスワードを変更します。パスワードはプレーンテキストで渡されます。service.wcap.allowchangepassword が設定されている場合を除き、このコマンドを使用できるのは管理権限を持つユーザだけです。指定するカレンダーが公開カレンダーである場合を除き、コマンドと一緒に id パラメータを指定する必要があります。
戻り値
コマンドの実行に失敗すると、エラー CHANGE_PASSWORD_FAILED(27) が返されます。http://webcalendarserver/change_password.wcap?id=b5q2o8ve2rk02nv9t6 &oldPassword=abc&newPassword=def
目的
管理者がセッションの有効性を確認するときに使う管理者用コマンドです。
パラメータ
表 10-8 は、このコマンドの 4 つのパラメータの一覧です。
目的
管理者はこのコマンドを使って、セッションの有効性を確認できます。
戻り値
サーバは、プロパティ X-NSCP-WCAP-CHECK-ID を返します。このプロパティの値が 1 の場合、セッションは有効です。ゼロ (0) が返された場合、セッションは無効です。原因は、セッションがタイムアウトしていたか、そのセッション ID を認識できなかったかのどちらかです。
例
次のコマンドは、指定されたセッションが有効かどうかを返します。http://webcalendarserver/check_id.wcap?id=n3l0eeu6s3n3o3b8v&fmt-out =text/calendar
HTTP/1.1 200
Date:Thu, 14 Dec 2000 19:48:17 GMT
Content-type:text/calendar; charset=UTF-8
Content-length: 131
Last-modified:Thu, 14 Dec 2000 19:48:17 GMT
Pragma:no-cache
Expires: 0
Cache-Control:no-cache
Connection:Keep-AliveBEGIN:VCALENDAR
PRODID:-//iPlanet/Calendar Hosting Server//EN
METHOD:PUBLISH
VERSION:2.0
X-NSCP-WCAP-CHECK-ID:1
END:VCALENDAR lendar
パラメータ
表 10-10 は、このコマンドの 4 つのパラメータの一覧です。
表 10-10 createcalendars のパラメータ
パラメータ
タイプ
目的
必須/任意
デフォルト
説明
このコマンドを使用して、現在のユーザに新しいカレンダーを作成します。管理権限のないユーザがこのコマンドを使用できるようにするには、ics.conf ファイルの service.wcap.allowcreatecalendars を設定します。
有効な caild の作成
作成したカレンダーの新しい calid は、ユーザの userid と渡された calid パラメータの組み合わせです。userid を取得するために、id パラメータに指定されたセッションが検索されます。新しいカレンダーの calid の形式は、userid:calid です。たとえば、ユーザが jdoe、calid パラメータが tv の場合、新しいカレンダーの calid は jdoe:tv です。calid パラメータが長すぎる場合、または不正な文字を含んでいる場合は、サーバによって切り捨てられます。calid パラメータの切り捨てに失敗した場合は、エラー ILLEGAL_CALID_NAME(30) が返されます。
たとえば、calendar1、calendar-1、calendar_1、calendar.1 は、calid パラメータの正しい値です。
カレンダープロパティの設定
バージョン 5.0 では、カレンダーの作成中にカレンダープロパティを設定できます。設定するには、set_calprops パラメータを 1 の値で渡します。そして、set_calprops コマンドで定義されている追加パラメータを渡すことによってカレンダープロパティを設定できます。設定可能なカレンダープロパティの詳細は、set_calpropsを参照してください。
戻り値
fetchcomponents_by_range コマンドを呼び出して取得されたカレンダープロパティが、fmt-out 値に基づいた形式で返されます。
エラーコード
処理に成功した場合は、エラー番号 0 がエラー文字列に追加されます。新しく作成された calid がデータベースにすでに存在する場合は、エラーコード
CREATECALENDAR_ALREADY_EXISTS_FAILED(25) が返されます。
例
次の URL では、ユーザ jdoe に対して、ID jdoe:newcal のカレンダーが作成され、カレンダー名が New-Calendar、カテゴリが business および work に設定されます。http://webcalendarserver/createcalendar.wcap?id=b5q2o8ve2rk02nv9t6& calid=newcal&set_calprops=1&name=New-Calendar&categories=business;w ork
パラメータ
表 10-11 は、このコマンドの 3 つのパラメータの一覧です。
表 10-11 deletecalendars のパラメータ
パラメータ
タイプ
目的
必須/任意
デフォルト
説明
このコマンドを使用して、ユーザのカレンダーを削除します。calid を渡して、削除するカレンダーの名前を指定する必要があります。service.wcap.allowdeletecalendars が設定されている場合を除き、このコマンドを使用できるのは管理権限を持つユーザだけです。
戻り値
fetchcomponents_by_range を呼び出して書式設定された出力が返されます。
エラーコード
処理に成功した場合は、エラー番号 0 がエラー文字列に追加されます。calid がデータベースに存在しない場合、delete_layer_errno[x] 値は 1 に設定されます。x は、渡された calid リストのカレンダーのインデックスです。また、errno 変数には、エラー CALENDAR_DOES_NOT_EXIST(29) が格納されます。
例
たとえば、次の URL を送信すると、newcal という名前のカレンダーが削除されます。http://webcalendarserver/deletecalendar.wcap?id=b5q2o8ve2rk02nv9t6& calid=newcal
目的
指定された範囲のイベントおよび仕事をカレンダーから削除します。
パラメータ
表 10-12 は、このコマンドの 6 つのパラメータの一覧です。
表 10-12 deletecomponents_by_range のパラメータ
JavaScript の簡略出力を出力するかどうかを示すブール値
説明
このコマンドを使用すると、指定した範囲のイベントおよび仕事が指定したカレンダーから削除されます。範囲を指定しない場合は、すべてのイベントおよび仕事が削除されます。範囲パラメータ dtstart および dtend は、最後に「Z」を付けた UTC 時間で指定する必要があります。UTC 時間を使用しない場合は、予測できない結果が発生します。
エラーコード
処理に成功した場合は、エラー番号 0 がエラー文字列に追加されます。カレンダーからイベントまたは仕事を削除するときにエラーが発生した場合、delete_layer_errno[x] 値は 1 に設定されます。x は、渡された calid リストのカレンダーのインデックスです。また、errno には、エラー
DELETECOMPONENTS_BY_RANGE_FAILED(21) が格納されます。
例
たとえば、ユーザがカレンダー jdoe および john の削除する権限を持っていると仮定します。次の URL では、その 2 つのカレンダーからイベントおよび仕事をすべて削除します。http://deletecomponents_by_range.wcap?id=2342347923479asdf
&calid=jdoe;john&dtstart=0&dtend=0
目的
イベント識別子を使用して、1 つまたは複数のイベントをカレンダーから削除します。
パラメータ
表 10-13 は、このコマンドの 8 つのパラメータの一覧です。
説明
このコマンドを使用して、指定した 1 つまたは複数のイベントを指定したカレンダーから削除します。
エラーコード
処理に成功した場合は、エラー番号 0 がエラー文字列に追加されます。エラーが発生した場合は、delete_layer_errno と delete_event_count の 2 つのエラー配列が返されます。配列の各要素は、uid リスト内の対応するイベントについて表しています。
delete_layer_errno の各要素は、対応するイベントのエラー番号を示します。
delete_event_count の各要素は、対応するイベントのうち削除が完了したイベント数を示します。「エラー処理」も参照してください。
通知
notify パラメータには、IMIP CANCEL メッセージをイベントの電子メール参加予定者に送信するかどうかを指定します。キャンセルメッセージを送信するには、notify 値を 1 に設定します。たとえば、次の URL は、IMIP CANCEL メッセージを uid=001 のイベントのすべての参加者に送信します。
http://webcalendarserver/deleteevents_by_id.wcap?id=3423423asdfasf& calid=jdoe&uid=001¬ify=1
繰り返し
rid パラメータを渡した場合は、mod パラメータの指定に従って、繰り返しも削除されます (「繰り返しコンポーネントの削除」を参照)。複数のイベントを削除するには、uid、rid、および mod パラメータをセミコロンで区切ったリストを指定します。この 3 つのリストの要素数は同じでなければなりません。各リストの要素は、ほかの 2 つのリストの同じ要素と対応しています。
例
たとえば、uid が uid-EVENT1 と uid-EVENT2 である繰り返しのないイベントが、データベースに 2 つあると想定します。これらのイベントは繰り返さないため、各イベントの rid 値を 0、各イベントの mod 値を 1 に設定します。http://webcalendarserver/deleteevents_by_id.wcap?id=br6p3t6bh5po35r
&uid=uid-EVENT1;uid-EVENT2&rid=0;0&mod=1;1HTTP/1.0 200
Date:Thu, 27 May 2000 18:40:24 GMT
Content-type:text/html; charset=iso-8859-1
Content-length: 4822
Last-modified:Thu, 27 May 2000 18:40:24 GMT
Pragma:no-cache
Expires: 0
Cache-Control:no-cache<html><head><script>
function color(s) { if (s) document.bgColor=s }
var id='br6p3t6bh5po35r'
var userid='jdoe'
var calid='jdoe'
var errno=new Array()
var delete_event_errno = new Array()
var delete_event_count = new Array()
delete_event_errno[0]=0
delete_event_count[0]=1
delete_event_errno[1]=0
delete_event_count[1]=1
errno[0]=0
...
...
parent.ceCB(window.name)
</script></head></html>
パラメータ
表 10-14 は、このコマンドの 6 つのパラメータの一覧です。
表 10-14 deleteevents_by_range のパラメータ
JavaScript の簡略出力を出力するかどうかを示すブール値
説明
このコマンドを使用して、指定した範囲に含まれるイベントを指定したカレンダーから削除します。範囲 (dtstart および dtend) を指定しない場合、指定したカレンダーからイベントがすべて削除されます。指定するカレンダーが公開カレンダーである場合を除き、コマンドと一緒に id パラメータを指定する必要があります。データは、fmt-out パラメータに指定した形式で返されます。このパラメータを渡さない場合、データはデフォルトの JavaScript 形式で返されます。
エラーコード
処理に成功した場合は、エラー番号 0 がエラー文字列 errno に追加されます。カレンダーからイベントを削除するときにエラーが発生した場合、delete_layer_errno[x] 値は 1 に設定されます。x は、渡された calid リストのカレンダーのインデックスです。また、errno 変数には、エラー DELETEEVENTS_BY_RANGE_FAILED(22) が格納されます。「エラー処理」も参照してください。
例
たとえば、ユーザがカレンダー jdoe および john の削除する権限を持っていると仮定します。次の URL では、カレンダー jdoe および john から、イベントがすべて削除されます。http://webcalendarserver/deleteevents_by_range.wcap?id=234234792347 9asdf&calid=jdoe;john&dtstart=0&dtend=0
パラメータ
表 10-15 は、このコマンドの 8 つのパラメータの一覧です。
説明
このコマンドを使用して、指定した仕事を指定したカレンダーから削除します。指定するカレンダーが公開カレンダーである場合を除き、コマンドと一緒に id パラメータを指定する必要があります。データは、fmt-out パラメータで指定した形式で返されます。このパラメータを渡さない場合、データはデフォルトの JavaScript 形式で返されます。
エラーコード
エラーが発生した場合は、delete_layer_errno と delete_todo_count の 2 つのエラー配列が返されます。配列の各要素は、uid リスト内の対応する仕事を表しています。delete_layer_errno の各要素は、対応する仕事のエラー番号を示します。delete_event_count の各要素は、対応する仕事のうち削除が完了した仕事数を示します。「エラー処理」も参照してください。
通知
notify パラメータには、IMIP CANCEL メッセージを仕事の電子メール参加予定者に送信するかどうかを指定します。notify が 1 の場合、キャンセルメッセージが電子メールで送信されます。たとえば、次の URL は、IMIP CANCEL メッセージを uid=001 の仕事のすべての参加者に送信します。
http://webcalendarserver/deletetodos_by_id.wcap?id=3423423asdfasf&c alid=jdoe&uid=001¬ify=1
繰り返し
rid パラメータを渡した場合は、mod パラメータの指定に従って、繰り返しも削除されます。「繰り返しコンポーネントの削除」を参照してください。複数の仕事を削除するには、uid、rid、および mod パラメータをセミコロンで区切ったリストを指定します。この 3 つのリストの要素数は同じでなければなりません。各リストの要素は、ほかの 2 つのリストの同じ要素と対応しています。rid パラメータを渡した場合は、mod パラメータの指定に従って、繰り返しも削除されます。
例
たとえば、uid が uid-TODO1 と uid-TODO2 である繰り返しのないイベントが、データベースに 2 つあると想定します。これらのイベントは繰り返さないため、各イベントの rid 値を 0、各イベントの mod 値を 1 に設定します。http://webcalendarserver/deletetodos_by_id.wcap?id=br6p3t6bh5po35r
&uid=uid-TODO1;uid-TODO2&rid=0;0&mod=1;1HTTP/1.0 200
Date:Thu, 27 May 2000 18:40:24 GMT
Content-type:text/html; charset=iso-8859-1
Content-length: 4822
Last-modified:Thu, 27 May 2000 18:40:24 GMT
Pragma:no-cache
Expires: 0
Cache-Control:no-cache<html><head><script>
function color(s) { if (s) document.bgColor=s }
var id='br6p3t6bh5po35r'
var userid='jdoe'
var calid='jdoe'
var errno=new Array()
var delete_todo_errno = new Array()
var delete_todo_count = new Array()
delete_todo_errno[0]=0
delete_todo_count[0]=1
delete_todo_errno[1]=0
delete_todo_count[1]=1
errno[0]=0
...
...
parent.ceCB(window.name)
</script></head></html>
パラメータ
表 10-16 は、このコマンドの 6 つのパラメータの一覧です。
表 10-16 deletetodos_by_range のパラメータ
JavaScript の簡略出力を出力するかどうかを示すブール値
説明
このコマンドを使用して、指定した範囲に含まれる仕事を指定したカレンダーから削除します。範囲を指定しない場合は、すべての仕事が削除されます。たとえば、次の URL は、2000 年 3 月 1 日の午前 11 時 22 分 33 秒 (世界標準時) に発生する仕事だけを削除します。http://webcalendarserver/deletetodos_by_id.wcap?id=23423423434abc&c alid=jdoe&uid=001&rid=20000301T112233Z&mod=1
指定するカレンダーが公開カレンダーである場合を除き、コマンドと一緒に id パラメータを指定する必要があります。データは、fmt-out パラメータで指定した形式で返されます。このパラメータを渡さない場合、データはデフォルトの JavaScript 形式で返されます。
エラーコード
処理に成功した場合は、エラー番号 0 がエラー文字列に追加されます。カレンダーから仕事を削除するときにエラーが発生した場合、delete_layer_errno[x] 値は 1 に設定されます。x は、渡された calid リストのカレンダーのインデックスです。また、errno 変数には、エラー DELETETODOS_BY_RANGE_FAILED(23) が格納されます。「エラー処理」も参照してください。
目的
イベントおよび仕事をカレンダーからファイルにエクスポートします。
パラメータ
表 10-17 は、このコマンドの 5 つのパラメータの一覧です。
説明
このコマンドを使用して、1 つまたは複数のカレンダーからイベントおよび仕事をファイルにエクスポートします。エクスポートしたファイルの内容は、あとで import コマンドを使用してカレンダーにインポートできます。content-out パラメータの値に応じて、export.ics または export.xml という名前のファイルが作成されます。
範囲
開始日または終了日を指定しない場合は、カレンダー内のすべてのイベントおよび仕事がファイルに追加されます。開始日および終了日を指定すると、カレンダーのその期間内のイベントおよび仕事だけがエクスポートされます。開始日および終了日は、日付と時刻の最後に Z を付けた UTC 時間で指定します。
HTTP POST の例
このコマンドは、HTTP POST と共に使用する必要があります (参考: ほかのコマンドでは HTTP GET も使用可)。
例 1
次の HTTP POST メッセージでは、カレンダー jdoe と john のコンポーネントをすべて export.ica という名前の iCalendar ファイルにエクスポートします。POST
/export.wcap?id=t95qm0n0es3bo35r&calid=jdoe;john&dtstart=0&dtend=0
&content-out=text/calendar
Content-type:multipart/form-data;
boundary=---------------------------41091400621290
Content-Length: 47
-----------------------------41091400621290--
WinNT; U)
Host:jdoe:12345
Accept:image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png
*/*
Accept-Encoding:gzip
Accept-Language:en
Accept-Charset:iso-8859-1,*,utf-8
例 2
次の HTML では、export コマンドを使用して、iCalendar および XML の両方の形式でファイルを作成する POST メッセージを生成します。<form METHOD=POST ENCTYPE="multipart/form-data" NAME="john.ics"
ACTION="http://webcalendarserver:12345/export.wcap?id=t9u9m0eh8x5pu 9b
&calid=jdoe;john&dtstart=0&dtend=0&content-out=text/calendar">
<ul>
<li>Press Export ICAL Now:<input type="submit" value="Export ICAL now">
</li> </ul> </form>
<form METHOD=POST ENCTYPE="multipart/form-data" NAME="john.xml"
ACTION="http://webcalendarserver:12345/export.wcap?id=t9u9m0eh8x5pu 9b
&calid=jdoe;john&dtstart=0&dtend=0&content-out=text/xml">
<ul>
<li>Press Export XML Now:<input type="submit" value="Export XML nowモ>
</ul> </form>HTTP/1.0 200
Date:Thu, 03 Jun 2000 22:15:52 GMT
Content-type:text/calendar
Content-disposition:attachment; filename="export.ics"
Content-length: 7004BEGIN:VCALENDAR
METHOD:PUBLISH
VERSION:2.0
BEGIN:VEVENT
UID:tm-001
RECURRENCE-ID:20000519T010000Z
DTSTAMP:20000603T221548Z
SUMMARY:Calendar Staff
DTSTART:20000518T170000Z
DTEND:20000518T190000Z
CREATED:20000603T024254Z
LAST-MODIFIED:20000603T024254Z
PRIORITY:1
SEQ:1
GEO:37.463581;-121.897606
DESC:This is the description for event with UID = tm-001
URL:http://webcalendarserver/susan?uid=tm-001
LOCATION:Green Conference Room
STATUS:CONFIRMED
TRANSP:OPAQUE
END:VEVENT
BEGIN:VEVENT
UID:tm-001
RECURRENCE-ID:20000526T010000Z
DTSTAMP:20000603T221548Z
SUMMARY:Calendar Staff
DTSTART:20000525T170000Z
DTEND:20000525T190000Z
CREATED:20000603T024254Z
LAST-MODIFIED:20000603T024254Z
PRIORITY:1
SEQ:1
GEO:37.463581;-121.897606
DESC:This is the description for event with UID = tm-001
URL:http://webcalendarserver/susan?uid=tm-001
LOCATION:Green Conference Room
STATUS:CONFIRMED
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR
目的
カレンダーからアラームトリガーを持つイベントおよび仕事を取得します。
パラメータ
表 10-18 は、このコマンドの 7 つのパラメータの一覧です。
表 10-18 fetchcomponents_by_alarmrange のパラメータ
JavaScript の簡略出力を出力するかどうかを示すブール値
compstate 値については、表 10-5 を参照
説明
このコマンドは、指定した期間に配信されるアラームを持つイベントおよび仕事のリストを返します。
出力形式
データは、fmt-out パラメータで指定した形式で返されます。このパラメータを渡さない場合、データはデフォルトの JavaScript 形式で返されます。JavaScript 出力の場合、イベントは 2 つの配列に分けられます。継続時間の短いイベント (ほとんどの通常のイベント) は、event 配列に出力されます。24 時間以上継続するイベント (終日イベント) は、すべて eventD 配列に出力されます。終日イベントがある場合は、isAllDay フラグがオンになります。
maxResults 値
最大数 n を指定すると、指定した範囲から最初の n 個のイベントと最初の n 個の仕事が返されます。たとえば、maxResults 値に 75 を指定すると、次の変数を含む JavaScript が返されます。var maxResults=75 /* 渡された最大数 */
var size=75 /* イベントのサイズが最大 75 に制限されています */
var todosize=28 /* 仕事のサイズが 75 に満たないため、影響を受けません */maxResults パラメータを 0 に設定するか、渡さなかった場合は、var maxResults 文を含まない JavaScript が返されます。
戻り値
calid で指定した各カレンダーから、dtstart および dtend で指定した時間範囲内に配信されるアラームを持つ、イベントおよび仕事が返されます。範囲は、ISO8601 DateTime Z 文字列形式で指定します。開始日時も終了日時も指定しなかった場合は、アラームを持つすべてのイベントおよび仕事が、指定した最大数まで返されます。
エラーコード
処理に成功した場合は、エラー番号 0 がエラー文字列に追加されます。カレンダーにアクセスできない場合、またはカレンダーが見つからない場合、errno は
FETCH_BY_ALARM_RANGE_FAILED(41) です。このカレンダーに対する 3 つのクエリーとその戻り値について説明します。
次のクエリーは、アラームを持つイベントおよび仕事をすべて取り込みます。
次のクエリーは、2000 年 12 月 1 日〜 2001 年 1 月 31 日に配信されるアラームを持つイベントおよび仕事をすべて、取り込みます。
- http://webcalendarserver/fetchcomponents_by_alarmrange.wcap?id=abcdefg&dtstart=0&dtend=0
- eventA、eventB、および todoA が返されます。
次のクエリーは、2000 年 1 月 1 日〜 2000 年 6 月 1 日に配信されるアラームを持つイベントおよび仕事をすべて、取り込みます。
- http://webcalendarserver/fetchcomponents_by_alarmrange.wcap?id=abcdefg&dtstart=20001201T112233Z&dtend=20010131T112233Z
- eventB および todoA が返されます。
fetchcomponents_by_attendee_error
目的
グループスケジューリングメッセージの送信中にエラーが発生したコンポーネントのリストを取り込みます。表 10-19 は、このコマンドの 5 つのパラメータの一覧です。
表 10-19 fetchcomponents_by_attendee_error のパラメータ
検索する参加者の calid。calid パラメータで指定されているカレンダーから、この参加者に関するイベントで発生したすべてのエラーを検索する
JavaScript の簡略出力を出力するかどうかを示すブール値
説明
このコマンドを使用して、グループスケジューリングメッセージの送信中にエラーが発生したイベントおよび仕事のリストを取得します。このコマンドの機能は、fetchcomponents_by_range と似ています。
出力形式
データは、fmt-out パラメータで指定した形式で返されます。このパラメータを渡さない場合、データはデフォルトの JavaScript 形式で返されます。JavaScript 出力の場合、イベントは 2 つの配列に分けられます。継続時間の短いイベント (ほとんどの通常のイベント) は、event 配列に出力されます。24 時間以上継続するイベント (終日イベント) は、すべて eventD 配列に出力されます。終日イベントがある場合は、isAllDay フラグがオンになります。
maxResults 値
最大数 n を指定すると、指定した範囲から最初の n 個のイベントと最初の n 個の仕事が返されます。たとえば、maxResults 値に 75 を指定すると、次の変数を含む JavaScript が返されます。var maxResults=75 /* 渡された最大数 */
var size=75 /* イベントのサイズが最大 75 に制限されています */
var todosize=28 /* 仕事のサイズが 75 に満たないため、影響を受けません */maxResults パラメータを 0 に設定するか、渡さなかった場合は、var maxResults 文を含まない JavaScript が返されます。
戻り値
calid で指定した各カレンダーから、指定した参加者のイベントおよび仕事のうち、グループスケジューリングメッセージの送信中にエラーが発生したものが返されます。たとえば、calid パラメータに cal1 および cal2 を指定し、attendee パラメータに jdoe を指定した場合、cal1 および cal2 から jdoe が参加者として含まれているイベントのエラーが検索されます。次の表の cal1 と cal2 には、4 つのイベントとそれぞれに関連付けられている参加者が格納されています。
参加者 jdoe に関してこのコマンドを実行すると、イベント 1c1 と 2c2 が返されます。
エラーコード
処理に成功した場合は、エラー番号 0 がエラー文字列に追加されます。何らかの理由でコマンドの実行に失敗した場合、errno は FETCH_BY_ATTENDEE_ERROR_FAILED(42) です。
目的
指定した期間中に変更されたコンポーネントのリストを取り込みます。表 10-20 は、このコマンドの 7 つのパラメータの一覧です。
表 10-20 fetchcomponents_by_lastmode のパラメータ
JavaScript の簡略出力を出力するかどうかを示すブール値
compstate 値については、表 10-5 を参照
説明
このコマンドを使用して、指定した期間中に変更されたイベントおよび仕事のリストを取得します。このコマンドの機能は、fetchcomponents_by_range と似ています。
出力形式
データは、fmt-out パラメータで指定した形式で返されます。このパラメータを渡さない場合、データはデフォルトの JavaScript 形式で返されます。JavaScript 出力の場合、イベントは 2 つの配列に分けられます。継続時間の短いイベント (ほとんどの通常のイベント) は、event 配列に出力されます。24 時間以上継続するイベント (終日イベント) は、すべて eventD 配列に出力されます。終日イベントがある場合は、isAllDay フラグがオンになります。
maxResults 値
最大数 n を指定すると、指定した範囲から最初の n 個のイベントと最初の n 個の仕事が返されます。たとえば、maxResults 値に 75 を指定すると、次の変数を含む JavaScript が返されます。var maxResults=75 /* 渡された最大数 */
var size=75 /* イベントのサイズが最大 75 に制限されています */
var todosize=28 /* 仕事のサイズが 75 に満たないため、影響を受けません */maxResults パラメータを 0 に設定するか、渡さなかった場合は、var maxResults 文を含まない JavaScript が返されます。
戻り値
calid で指定した各カレンダーから、dtstart および dtend で指定した時間範囲内に変更されたカレンダーのイベントおよび仕事が返されます。範囲は、ISO8601 DateTime Z 文字列形式で指定します。開始日時も終了日時も指定しなかった場合は、変更されたイベントおよび仕事がすべて、指定した最大数まで返されます。
エラーコード
処理に成功した場合は、エラー番号 0 がエラー文字列に追加されます。カレンダーにアクセスできない場合、またはカレンダーが見つからない場合は、エラー番号がエラー文字列に追加されます。
例
たとえば、カレンダー jdoe に次の 3 つのイベントがあります。
eventA: 最終更新日時は 2000 年 2 月 10 日の午前 10 時 00 分 (GMT)
このカレンダーに対するいくつかのクエリーとその戻り値について説明します。http://webcalendarserver/fetchcomponents_by_lastmod.wcap?id=jdoe
&dtstart=0&dtend=0このクエリーは、これまでに修正されたイベントおよび仕事をすべて取り込みます。したがって、eventA、eventB、および todoA が返されます。
http://webcalendarserver/fetchcomponents_by_lastmod.wcap?id=jdoe
&dtstart=20001201T112233Z&dtend=20000131T112233Zこのクエリーは、2000 年 12 月 1 日〜 2000 年 1 月 31 日に変更されたイベントおよび仕事をすべて取り込みます。したがって、eventB および todoA が返されます。
http://webcalendarserver/fetchcomponents_by_lastmod.wcap?id=jdoe
&dtstart=20000101T112233Z&dtend=20000601T112233Zこのクエリーは、2000 年 1 月 1 日〜 2000 年 6 月 1 日に変更されたイベントおよび仕事をすべて取り込みます。したがって、eventA および todoA が返されます。
パラメータ
表 10-21 は、このコマンドの 7 つのパラメータの一覧です。
表 10-21 fetchcomponents_by_range のパラメータ
JavaScript の簡略出力を出力するかどうかを示すブール値
compstate 値については、表 10-5 を参照
説明
このコマンドを使用して、指定した 1 つまたは複数のカレンダーのプロパティ、イベント、および仕事を取得します。
出力形式
データは、fmt-out パラメータで指定した形式で返されます。このパラメータを渡さない場合、データはデフォルトの JavaScript 形式で返されます。JavaScript 出力の場合、イベントは 2 つの配列に分けられます。継続時間の短いイベント (ほとんどの通常のイベント) は、event 配列に出力されます。24 時間以上継続するイベント (終日イベント) は、すべて eventD 配列に出力されます。終日イベントがある場合は、isAllDay フラグがオンになります。
戻り値
calid で指定した各カレンダーに対して、dtstart および dtend に指定した時間範囲にあるカレンダープロパティ、イベント、および仕事が返されます。範囲は、ISO8601 DateTime Z 文字列形式で指定します。開始日時も終了日時も指定しなかった場合は、イベントおよび仕事がすべて、指定した最大数まで返されます。
エラーコード
処理に成功した場合は、エラー番号 0 がエラー文字列に追加されます。カレンダーにアクセスできない場合、またはカレンダーが見つからない場合は、エラー番号がエラー文字列に追加されます。
例
たとえば、カレンダー jdoe および susan に関する 2000 年 1 月 1 日〜 2000 年 2 月 1 日のイベントを取得するには、次の URL を使用します。http://webcalendarserver:81/fetchcomponents_by_range.wcap?id=b5q2o8 ve2rk02nv9t6&calid=jdoe
ヒント カレンダーに有効なタイムゾーン (tzid) が関連付けられていない場合は、GMT タイムゾーンが使用されます。 timezoneList[0]=new TZ('GMT',
'GMT',
'GMT',
'+0000',
'+0000',
new Array())
出力形式
データは、fmt-out パラメータで指定した形式で返されます。このパラメータを渡さない場合、データはデフォルトの JavaScript 形式で返されます。JavaScript 出力の場合、イベントは 2 つの配列に分けられます。継続時間の短いイベント (ほとんどの通常のイベント) は、event 配列に出力されます。24 時間以上継続するイベント (終日イベント) は、すべて eventD 配列に出力されます。終日イベントがある場合は、isAllDay フラグがオンになります。
maxResults 値
最大数 n を指定すると、指定した範囲から最初の n 個のイベントと最初の n 個の仕事が返されます。たとえば、maxResults 値に 75 を指定すると、次の変数を含む JavaScript が返されます。var maxResults=75 /* 渡された最大数 */
var size=75 /* イベントのサイズが最大 75 に制限されています */
var todosize=28 /* 仕事のサイズが 75 に満たないため、影響を受けません */maxResults パラメータを 0 に設定するか、渡さなかった場合は、var maxResults 文を含まない JavaScript が返されます。
エラーコード
処理に成功した場合は、エラー番号 0 がエラー文字列に追加されます。カレンダーにアクセスできない場合、またはカレンダーが見つからない場合は、エラー番号がエラー文字列に追加されます。
例
たとえば、カレンダー jdoe および john に関する 2000 年 1 月 1 日〜 2001 年 2 月 1 日のイベントを取得するには、次の URL を使用します。http://webcalendarserver/fetchcomponents_by_range.wcap?id=asdfasdf3 2424&calid=jdoe;john&dtstart=20000101T000000&dtend=20010101T000000
この例のように、開始日および終了日を指定しない場合は、カレンダー内のすべてのイベントおよび仕事が返されます。
http://webcalendarserver/fetchcomponents_by_range.wcap?id=b5q2o8ve2 rk02nv9t6&calid=jdoe
HTTP/1.0 200
Date:Tue, 28 Jul 2000 22:43:01 GMT
Content-type: text/html; charset=iso-8859-1
Content-length: 5504
Last-modified:Tue, 15 Jun 2000 22:43:01 GMT
Pragma:no-cache
Expires: 0
Cache-Control:no-cache<html><head><script>
function color(s) { if (s) document.bgColor=s }
var id='bb2ot68wp0t95q'
var userid='jdoe'
var calid='jdoe'
var errno=new Array()
var timezoneList = new Array()
var calprops = new Array()
var layer_errno = new Array()function iso(p) {
if (!p) return null;
var y = p.substring(0,4)
var m = p.substring(4,6)
var d = p.substring(6,8)
var h = p.substring(9,11)
var i = p.substring(11,13)
var s = p.substring(13,15)
return new Date(y, m - 1, d, h, i, s, 0)
}
function
E(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a1 9,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31,a32,a33){this.uid=a1
this.rid=a2
this.calid=a3
this.dtstart=iso(a4)
this.dtend=iso(a5)
this.status=a6
this.isAllDay=a7
this.summary=a8
this.created=iso(a9)
this.lastMod=iso(a10)
this.seq=a11
this.geo=new Array(a12,a13)
this.desc=a14
this.icsUrl=a15
this.icsClass=a16
this.location=a17
this.alarmStart=a18
this.alarmEmails=a19
this.rrules=a20
this.rdates=a21
this.exrules=a22
this.exdates=a23
this.tzid=a24
this.priority=a25
this.relatedTos=a26
this.resources=a27
this.categories=a28
this.attachments=a29
this.contacts=a30
this.attendees=a31
this.orgEmail=a32
this.linkCalid=a33
}function
T(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a1 9,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31,a32,a33,a34,a35){this.uid=a1
this.rid=a2
this.calid=a3
this.dtstart=iso(a4)
this.due=iso(a5)
this.status=a6
this.isAllDay=a7
this.summary=a8
this.created=iso(a9)
this.lastMod=iso(a10)
this.seq=a11
this.geo=new Array(a12,a13)
this.desc=a14
this.icsUrl=a15
this.icsClass=a16
this.location=a17
this.alarmStart=a18
this.alarmEmails=a19
this.rrules=a20
this.rdates=a21
this.exrules=a22
this.exdates=a23
this.completed=iso(a24)
this.percent=a25
this.tzid=a26
this.priority=a27
this.relatedTos=a28
this.resources=a29
this.categories=a30
this.attachments=a31
this.contacts=a32
this.attendees=a33
this.orgEmail=a34
this.linkCalid=a35
}
function TZ(a1,a2,a3,a4,a5,a6) {
this.tzid=a1
this.sName=a2
this.dName=a3
this.sOffset=a4
this.dOffset=a5
this.crossOver=a6
}
function
CP(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15) {
this.calid=a1
this.name=a2
this.parent=a3
this.tzid=a4
this.read=a5
this.write=a6
this.charset=a7
this.lang=a8
this.master=a9
this.desc=a10
this.lastMod=iso(a11)
this.created=iso(a12)
this.primaryOwner=a13
this.owners=a14
this.categories=a15
}
var event=new Array()
var event=new Array()
var todo=new Array()
var status_types=new Array('confirmed', 'tentative',
'cancelled')
calprops[0] = new CP('John Doe',
'jdoe',
'',
'',
'0',
'0',
'',
'',
'',
'Work Calendar for John Doe',
'20000615T164146Z',
'20000615T164146Z',
'jdoe',
new Array('john'),
new Array(),
new Array('business'))
event[0]=new E('52452531427158444',
'0',
'jdoe',
'20001223T233000',
'20001224T023000',
0,0,'jdoe event 3',
'20000615T222725','20000615T222725',
'1',
'37.463581','-121.897606',
'This is the description for event with UID =
52452531427158444',
'http://webcalendarserver/'+'john?uid=52452531427158444',
'',
'Green Conference Room',
0,
new Array(),
new Array(),
new Array(),
new Array(),
new Array(),'GMT','1',
new Array(),
new Array(),
new Array(),
new Array(),
new Array(),
new Array(),
'',
'')
event[1]=new E('51452531524178674', '0',
'jdoe',
'20001223T130000',
'20001223T123000',
0,0,'jdoe event 2',
'20000615T222725','20000615T222725',
'1',
'37.463581','-121.897606',
'This is the description for event with UID =
51452531524178674',
'http://webcalendarserver/'+'john?uid=51452531524178674',
'',
'Green Conference Room',
0,
new Array(),
new Array(),
new Array(),
new Array(),
new Array(),'GMT','1',
new Array(),
new Array(),
new Array(),
new Array(),
new Array(),
new Array(),
'',
'')
event[2]=new E('tm-001',
'20000519T010000Z',
'jdoe',
'20000518T170000',
'20000518T190000',
0,0,'Calendar Staff',
'20000615T222725','
20000615T222725',
'1',
'37.463581','-121.897606',
'This is the description for event with UID = tm-001',
'http://webcalendarserver/'+'john?uid=tm-001',
'',
'Green Conference Room',
0,
new Array(),
new Array(),
new Array(),
new Array(),
new Array(),'GMT','1',
new Array(),
new Array(),
new Array(),
new Array(),
new Array(),
new Array(),
'',
'')
event[3]=new E('tm-001',
'20000526T010000Z',
'jdoe',
'20000525T170000',
'20000525T190000',
0,0,'Calendar Staff',
'20000615T222725','20000615T222725',
'1',
'37.463581','-121.897606',
'This is the description for event with UID = tm-001',
'http://webcalendarserver/'+'john?uid=tm-001',
'',
'Green Conference Room',
0,
new Array(),
new Array(),
new Array(),
new Array(),
new Array(),'GMT','1',
new Array(),
new Array(),
new Array(),
new Array(),
new Array(),
new Array(),
'',
'')
event[4]=new E('tm-001',
'20000602T010000Z',
'jdoe',
'20000601T170000',
'20000601T190000',
0,0,'Calendar Staff',
'20000615T222725','20000615T222725',
'1',
'37.463581','-121.897606',
'This is the description for event with UID = tm-001',
'http://webcalendarserver/'+'john?uid=tm-001',
'',
'Green Conference Room',
0,
new Array(),
new Array(),
new Array(),
new Array(),
new Array(),'GMT','1',
new Array(),
new Array(),
new Array(),
new Array(),
new Array(),
new Array(),
'',
'')
todo[0]=new T('abctodo',
'0',
'jdoe',
'20000304T143000',
'20000620T222725',
3,0,'Fix the bugs',
'20000615T222725','20000615T222725',
'1',
'37.463581','-121.897606',
'This is the description for event with UID = abctodo',
'http://webcalendarserver/'+'john?uid=TODO1',
'',
'Green Conference Room',
0,
new Array(),
new Array(),
new Array(),
new Array(),
new Array(),'19700101T000000',
'-1',
'GMT','1',
new Array(),
new Array(),
new Array(),
new Array(),
new Array(),
new Array(),
'',
'')
layer_errno[0]=0
var size=5
var todosize=1
var dtstartrange="0"
var dtendrange="0"
errno[0]=0
parent.ceCB(window.name)
</script></head></html>
パラメータ
表 10-22 は、このコマンドの 7 つのパラメータの一覧です。
表 10-22 fetchevents_by_id のパラメータ
JavaScript の簡略出力を出力するかどうかを示すブール値
compstate 値については、表 10-5 を参照
1 = THISINSTANCE
2 = THISANDFUTURE
3 = THISANDPRIOR
4 = THISANDALL
説明
このコマンドを使用して、指定したカレンダーから指定したイベントおよびその繰り返しを取得します。指定するカレンダーが公開カレンダーである場合を除き、コマンドと一緒に id パラメータを指定する必要があります。このコマンドは、mod パラメータで指定した範囲の繰り返しを返します。「繰り返し処理」を参照してください。
出力形式
データは、fmt-out パラメータで指定した形式で返されます。このパラメータを渡さない場合、データはデフォルトの JavaScript 形式で返されます。JavaScript 出力の場合、イベントは 2 つの配列に分けられます。継続時間の短いイベント (ほとんどの通常のイベント) は、event 配列に出力されます。24 時間以上継続するイベント (終日イベント) は、すべて eventD 配列に出力されます。終日イベントがある場合は、isAllDay フラグがオンになります。
戻り値
データは、fmt-out パラメータで指定した形式で返されます。このパラメータを渡さない場合、データはデフォルトの JavaScript 形式で返されます。
エラーコード
処理に成功した場合は、エラー番号 0 がエラー文字列に追加されます。カレンダーにアクセスできない場合、またはカレンダーが見つからない場合は、エラー番号がエラー文字列に追加されます。
パラメータ
表 10-23 は、このコマンドの 7 つのパラメータの一覧です。
表 10-23 fetchtodos_by_id のパラメータ
JavaScript の簡略出力を出力するかどうかを示すブール値
compstate 値については、表 10-5 を参照
1 = THISINSTANCE
2 = THISANDFUTURE
3 = THISANDPRIOR
4 = THISANDALL
説明
このコマンドを使用して、指定したカレンダーから指定した仕事およびその繰り返しを取得します。指定するカレンダーが公開カレンダーである場合を除き、コマンドと一緒に id パラメータを指定する必要があります。
出力形式
データは、fmt-out パラメータで指定した形式で返されます。このパラメータを渡さない場合、データはデフォルトの JavaScript 形式で返されます。JavaScript 出力の場合、イベントは 2 つの配列に分けられます。継続時間の短いイベント (ほとんどの通常のイベント) は、event 配列に出力されます。24 時間以上継続するイベント (終日イベント) は、すべて eventD 配列に出力されます。終日イベントがある場合は、isAllDay フラグがオンになります。
戻り値
calid で指定した各カレンダーから、そのカレンダーの仕事が返されます。仕事に繰り返しがある場合は、rid パラメータおよび mod パラメータの指定に従って、繰り返しが返されます。「繰り返し処理」を参照してください。
エラーコード
処理に成功した場合は、エラー番号 0 がエラー文字列に追加されます。カレンダーにアクセスできない場合、またはカレンダーが見つからない場合は、エラー番号がエラー文字列に追加されます。
目的
サーバがサポートしているすべてのタイムゾーンに関するデータを取得します。
パラメータ
表 10-24 は、このコマンドの 4 つのパラメータの一覧です。
表 10-24 get_all_timezones のパラメータ
説明
このコマンドを使用して、サーバがサポートしているすべてのタイムゾーンに関するデータを取得します。クロスオーバー値は、そのタイムゾーンで夏時間が開始/終了する日付になるように定義されています。奇数番目の日付に、夏時間が始まります。偶数番目の日付に、夏時間が終わります。タイムゾーンに夏時間がない場合、この値は空の文字列に設定されます。
戻り値
dtstart パラメータおよび dtend パラメータで年の範囲を指定すると、範囲内の年のクロスオーバー日付だけが返されます。年の範囲を指定しない場合は、認識されている最初の年から最後の年 (1987 〜 2087) までのクロスオーバー日付がすべて返されます。データは、fmt-out パラメータで指定した形式で返されます。fmt-out パラメータを渡さない場合は、デフォルトの JavaScript 形式が使用されます。
エラーコード
タイムゾーンの取得中にエラーが発生した場合は、エラー
GET_ALL_TIMEZONES_FAILED(24) が返されます。
例
クロスオーバー日付が 1998 年の特定の時点から 2006 年に制限されている場合の、タイムゾーン配列要素の例を挙げます。timezoneList[20] = new TZ('America/Los_Angeles',
'PST',
'PDT',
'-0800',
'-0700',
new Array
('19981025T090000Z','20000404T100000Z','20001031T090000Z',
'20000402T100000Z','20001029T090000Z','20010401T100000Z',
'20011028T090000Z', '20020407T100000Z', '20021027T090000Z',
'20030406T100000Z', '20031026T090000Z', '20040404T100000Z',
'20041031T090000Z', '20050403T100000Z', '20051030T090000Z',
'20060402T100000Z', '20061029T090000Z'))「America/Phoenix」タイムゾーンに夏時間はありません。したがって、夏時間を表して いる項目は、標準時間の項目とまったく同じになります。また、クロスオーバー文字列は 空の文字列に設定されます。
timezoneList[23] = new TZ('America/Phoenix',
'MST',
'MST',
'-0700',
'-0700',
new Array())
パラメータ
表 10-25 は、このコマンドの 3 つのパラメータの一覧です。
説明
このコマンドを使用して、指定したカレンダーのカレンダープロパティを取得します。
戻り値
指定したカレンダーの次のプロパティに関する情報を示すページが返されます。
相対 ID
読み取りアクセス値 (0 = 読み取り不可、1 = 読み取り可能)
書き込みアクセス値 (0 = 書き込み不可、1 = 書き込み可能)
エラーコード
カレンダーは存在しているが、ユーザにそのカレンダーの READ アクセス権がない場合、そのカレンダーのインデックス番号に対応する layer_errno[x] の値は 1 に設定されます。カレンダーが見つからない場合、そのカレンダーのインデックス番号に対応する layer_errno[x] の値は 2 に設定されます。
カレンダーの取り込みに失敗した場合、そのエラー番号 errno は
GET_CALPROPS_FAILED(20) に設定されます。
例
次の例では、カレンダー jdoe、susan、pub、john、および hasdf の順で、カレンダープロパティを取得します。
ユーザは、カレンダー jdoe、pub、および john の読み取りアクセス権を持っているが、カレンダー susan の読み取りアクセス権は持っていない。
上記の結果は次のようになります。
get_calprops.wcap が呼び出されて、カレンダー jdoe、pub、および john に関するデータが返される。それらのインデックスの layer_errno[] の値は、0 である。
URL と返されるデータは、次のようになります。カレンダー susan に関するデータは返されない。また、このユーザにカレンダーへのアクセス権がないため、layer_errno[1] の値が 1 に設定される。
カレンダー hasdf に関するデータは返されない。カレンダーが存在しないため、layer_errno[4] の値が 2 に設定される。
カレンダーの取り込みに 1 つでも失敗した場合、そのエラー番号は
GET_CALPROPS_FAILED(20) に設定される。http://webcalendarserver/get_calprops.wcap?id=2mu95r5so0hq68ts6q3
&calid=jdoe;susan;pub;john;hasdfHTTP/1.0 200
Date:Wed, 16 Jun 2000 22:21:27 GMT
Content-type:text/html; charset=iso-8859-1
Content-length: 1624
Last-modified:Wed, 16 Jun 2000 22:21:27 GMT
Pragma:no-cache
Expires: 0
Cache-Control:no-cache
<html><head><script>
function color(s) { if (s) document.bgColor=s }
var id='bu9p3eb8x5p2nm0q3'
var userid='jsun'
var calid='jsun'
var errno=new Array()
var timezoneList = new Array()
var calprops = new Array()function iso(p)
{
if (!p) return null;
var y = p.substring(0,4)
var m = p.substring(4,6)
var d = p.substring(6,8)
var h = p.substring(9,11)
var i = p.substring(11,13)
var s = p.substring(13,15)
return new Date(y, m - 1, d, h, i, s, 0)
}function
CP(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15) {
this.calid=a1
this.name=a2
this.parent=a3
this.tzid=a4
this.read=a5
this.write=a6
this.charset=a7
this.lang=a8
this.master=a9
this.desc=a10
this.lastMod=iso(a11)
this.created=iso(a12)
this.primaryOwner=a13
this.owners=a14
this.categories=a15
}calprops[0] = new CP('jdoe',
'John Doe',
'',
'',
'0',
'0',
'',
'',
'',
'Work Calendar for John Doe',
'20000615T222725Z',
'20000615T222725Z',
'jdoe',
new Array('susan'),
new Array(),
new Array('business'))layer_errno[0]=0
calprops[1] = new CP('susan')
layer_errno[1]=1
calprops[2] = new CP('pub',
'Public Calendar',
'',
'',
'1',
'1',
'',
'',
'',
'Public Calendar, Anyone can read and write',
'20000615T222725Z',
'20000615T222725Z',
'susan',
new Array(),
new Array(),
new Array('group','business'))
layer_errno[2]=0
calprops[3] = new CP('john',
'John Calendar Hosting Server',
'',
'',
'0',
'0',
'',
'',
'',
'John Project Calendar',
'20000615T222725Z',
'20000615T222725Z',
'susan',
new Array('smith','jones','fred','jdoe'),
new Array(),
new Array('group','business'))
layer_errno[3]=0
calprops[4] = new CP('hasdf')
layer_errno[4]=2
errno[0]=0
parent.ceCB(window.name)
パラメータ
表 10-26 は、このコマンドの 5 つのパラメータの一覧です。
説明
このコマンドは、指定したユーザの予定なし/予定あり情報を取得します。予定なし/予定あり情報は、特定の時間帯にユーザの予定があるかどうかを示します。ただし、その予定の内容はわかりません。
エラーコード
何らかの理由でコマンドの実行に失敗した場合、errno は
GET_FREEBUSY_FAILED(39) に設定されます。
例
たとえば、jdoe というカレンダーに次のイベントがあります。
10:00 〜 11:00
最初の会議
12:00 〜 1:00
昼食
3:00 〜 4:00
次の会議
jdoe の予定なし/予定あり時間 (9:00 〜 6:00) は、次のようになります。
9 〜 10
:
空き時間
10 〜 11
:
予定あり
11 〜 12
:
空き時間
12 〜 1
:
予定あり
1 〜 3
:
空き時間
3 〜 4
:
予定あり
4 〜 6
:
空き時間
次の URL では、カレンダー jdoe の 2000 年 5 月 1 日〜 2000 年 7 月 1 日に検出された予定なし/予定あり情報が生成されます。
http://webcalendarserver/get_freebusy.wcap?id=2mu95r5so0hq68ts6q3&c alid=jsun&dtstart=20000501T112233Z&dtend=20000701T112233Z&fmt-out=t ext/calendar
HTTP/1.1 200
Date:Wed, 17 May 2000 01:23:23 GMT
Content-type:text/calendar; charset=UTF-8
Content-length: 1430
Last-modified:Wed, 17 May 2000 01:23:23 GMT
Pragma:no-cache
Expires: 0
Cache-Control:no-cache
Connection:Keep-AliveBEGIN:VCALENDAR
PRODID:-//iPlanet/Calendar Hosting Server//EN
METHOD:PUBLISH
VERSION:2.0
X-NSCP-CALPROPS-LAST-MODIFIED:20000517T012259Z
X-NSCP-CALPROPS-CREATED:20000517T012259Z
X-NSCP-CALPROPS-READ:999
X-NSCP-CALPROPS-WRITE:999
X-NSCP-CALPROPS-DESCRIPTION:Work Calendar for John Doe
X-NSCP-CALPROPS-RELATIVE-CALID:jdoe
X-NSCP-CALPROPS-NAME:John Doe
X-NSCP-CALPROPS-PRIMARY-OWNER:jdoe
X-NSCP-CALPROPS-OWNERS:susan
X-NSCP-CALPROPS-CATEGORIES:business
X-NSCP-CALPROPS-ACCESS-CONTROL-ENTRY:@^a^S^g
BEGIN:VFREEBUSY
DTSTART:20000501T112233Z
DTEND:20000701T112233Z
FREEBUSY;FBTYPE=FREE:20000501T112233Z/20000518T170000Z
FREEBUSY;FBTYPE=BUSY:20000518T170000Z/20000518T190000Z
FREEBUSY;FBTYPE=FREE:20000518T190000Z/20000525T170000Z
FREEBUSY;FBTYPE=BUSY:20000525T170000Z/20000525T190000Z
FREEBUSY;FBTYPE=FREE:20000525T190000Z/20000601T170000Z
FREEBUSY;FBTYPE=BUSY:20000601T170000Z/20000601T190000Z
FREEBUSY;FBTYPE=FREE:20000601T190000Z/20000608T170000Z
FREEBUSY;FBTYPE=BUSY:20000608T170000Z/20000608T190000Z
FREEBUSY;FBTYPE=FREE:20000608T190000Z/20000615T170000Z
FREEBUSY;FBTYPE=BUSY:20000615T170000Z/20000615T190000Z
FREEBUSY;FBTYPE=FREE:20000615T190000Z/20000622T170000Z
FREEBUSY;FBTYPE=BUSY:20000622T170000Z/20000622T190000Z
FREEBUSY;FBTYPE=FREE:20000622T190000Z/20000629T170000Z
FREEBUSY;FBTYPE=BUSY:20000629T170000Z/20000629T190000Z
FREEBUSY;FBTYPE=FREE:20000629T190000Z/20000701T112233Z
END:VFREEBUSY
X-NSCP-WCAP-ERRNO:0
END:VCALENDAR次の例は、fmt-out に text/xml を指定した場合の出力です。
http://webcalendarserver/get_freebusy.wcap?id=2mu95r5so0hq68ts6q3&c alid=jdoe&dtstart=20000501T112233Z&dtend=20000701T112233Z&fmt-out=t ext/xml
HTTP/1.1 200
Date:Wed, 17 May 2000 01:24:58 GMT
Content-type:text/xml; charset=UTF-8
Content-length: 1868
Last-modified:Wed, 17 May 2000 01:24:58 GMT
Pragma:no-cache
Expires: 0
Cache-Control:no-cache
Connection:Keep-Alive<?xml version="1.0" encoding="UTF-8"?>
<iCalendar>
<iCal version="2.0" prodid="-//iPlanet/Calendar Hosting
Server//EN" METHOD="PUBLISH">
<X-NSCP-CALPROPS-LAST-MODIFIED>20000517T012259Z</X-NSCP-CALPR
PS-LAST-MODIFIED>
<X-NSCP-CALPROPS-CREATED>20000517T012259Z</X-NSCP-CALPROPS-CREATED>
<X-NSCP-CALPROPS-READ>999</X-NSCP-CALPROPS-READ>
<X-NSCP-CALPROPS-WRITE>999</X-NSCP-CALPROPS-WRITE>
<X-NSCP-CALPROPS-DESCRIPTION>Work Calendar for John Doe
</X-NSCP-CALPROPS-DESCRIPTION>
<X-NSCP-CALPROPS-RELATIVE-CALID>jdoe</X-NSCP-CALPROPS-RELATIVE-CALI D>
<X-NSCP-CALPROPS-NAME>John Doe</X-NSCP-CALPROPS-NAME>
<X-NSCP-CALPROPS-PRIMARY-OWNER>jdoe</X-NSCP-CALPROPS-PRIMARY-OWNER>
<X-NSCP-CALPROPS-OWNERS>susan</X-NSCP-CALPROPS-OWNERS>
<X-NSCP-CALPROPS-CATEGORIES>business</X-NSCP-CALPROPS-CATEGORIES>
<X-NSCP-CALPROPS-ACCESS-CONTROL-ENTRY>@^a^S^g</X-NSCP-CALPROPS-ACCE SS-CONTROL-ENTRY><FREEBUSY>
<START>20000501T112233Z</START>
<END>20000701T112233Z</END>
<FB FBTYPE="FREE">20000501T112233Z/20000518T170000Z</FB>
<FB FBTYPE="BUSY">20000518T170000Z/20000518T190000Z</FB>
<FB FBTYPE="FREE">20000518T190000Z/20000525T170000Z</FB>
<FB FBTYPE="BUSY">20000525T170000Z/20000525T190000Z</FB>
<FB FBTYPE="FREE">20000525T190000Z/20000601T170000Z</FB>
<FB FBTYPE="BUSY">20000601T170000Z/20000601T190000Z</FB>
<FB FBTYPE="FREE">20000601T190000Z/20000608T170000Z</FB>
<FB FBTYPE="BUSY">20000608T170000Z/20000608T190000Z</FB>
<FB FBTYPE="FREE">20000608T190000Z/20000615T170000Z</FB>
<FB FBTYPE="BUSY">20000615T170000Z/20000615T190000Z</FB>
<FB FBTYPE="FREE">20000615T190000Z/20000622T170000Z</FB>
<FB FBTYPE="BUSY">20000622T170000Z/20000622T190000Z</FB>
<FB FBTYPE="FREE">20000622T190000Z/20000629T170000Z</FB>
<FB FBTYPE="BUSY">20000629T170000Z/20000629T190000Z</FB>
<FB FBTYPE="FREE">20000629T190000Z/20000701T112233Z</FB>
</FREEBUSY>
<X-NSCP-WCAP-ERRNO>0</X-NSCP-WCAP-ERRNO>
</iCal>
</iCalendar>
目的
GUID (全体に対して一意の識別子) のセットを生成します。
パラメータ
表 10-27 は、このコマンドの 2 つのパラメータの一覧です。
説明
このコマンドは、指定された数の GUID を返します。このコマンドの呼び出しに、クライアントの認証は必要ありません。
例
URL とその返された出力の例を、3 つの形式で示します。
iCalendar 形式
http://webcalendarserver/get_guids.wcap?guidCount=10
&fmt-out=text/calendarBEGIN:VCALENDAR
VERSION:2.0
PRODID:iPlanet Calendar Server 5.0
X-NSCP-GUID0:e5e4b537465600000b000000c3000000
X-NSCP-GUID1:e5e4b537d47900000c000000c3000000
X-NSCP-GUID2:e5e4b537961400000d000000c3000000
X-NSCP-GUID3:e5e4b5373d3a00000e000000c3000000
X-NSCP-GUID4:e5e4b537f31400000f000000c3000000
X-NSCP-GUID5:e5e4b5378259000010000000c3000000
X-NSCP-GUID6:e5e4b537b026000011000000c3000000
X-NSCP-GUID7:e5e4b537c263000012000000c3000000
X-NSCP-GUID8:e5e4b537241f000013000000c3000000
X-NSCP-GUID9:e5e4b537e733000014000000c3000000
END:VCALENDAR
XML 形式
http://webcalendarserver/get_guids.wcap?guidCount=10&fmt-out=text/x ml<?xml version="1.0" encoding="UTF-8"?>
<iCalendar>
<iCal>
<X-NSCP-GUID0>fde4b537d604000015000000c3000000<X-NSCP-GUID0>
<X-NSCP-GUID1>fde4b5379478000016000000c3000000<X-NSCP-GUID1>
<X-NSCP-GUID2>fde4b5372a6d000017000000c3000000<X-NSCP-GUID2>
<X-NSCP-GUID3>fde4b537a355000018000000c3000000<X-NSCP-GUID3>
<X-NSCP-GUID4>fde4b5377768000019000000c3000000<X-NSCP-GUID4>
<X-NSCP-GUID5>fde4b5376e2e00001a000000c3000000<X-NSCP-GUID5>
<X-NSCP-GUID6>fde4b537a07700001b000000c3000000<X-NSCP-GUID6>
<X-NSCP-GUID7>fde4b537744700001c000000c3000000<X-NSCP-GUID7>
<X-NSCP-GUID8>fde4b537ab1f00001d000000c3000000<X-NSCP-GUID8>
<X-NSCP-GUID9>fde4b5371d2200001e000000c3000000<X-NSCP-GUID9>
</iCal>
</iCalendar>
JavaScript 形式
この例では、fmt-out パラメータが指定されていないため、デフォルトの text/js 形式で出力されます。http://webcalendarserver/get_guids.wcap?guidCount=10
<html><head><script>
function color(s) { if (s) document.bgColor=s }
var id='0'
var userid=''
var calid=''
var errno=new Array()
var guid=new Array()
guid[0]=9ee4b5375778000001000000c3000000
guid[1]=9ee4b5376a52000002000000c3000000
guid[2]=9ee4b5375a47000003000000c3000000
guid[3]=9ee4b537bf01000004000000c3000000
guid[4]=9ee4b537e05e000005000000c3000000
guid[5]=9ee4b537be5a000006000000c3000000
guid[6]=9ee4b537d544000007000000c3000000
guid[7]=9ee4b5372867000008000000c3000000
guid[8]=9ee4b5375731000009000000c3000000
guid[9]=9ee4b537830600000a000000c3000000
parent.ceCB(window.name)
</script></head></html>
パラメータ
表 10-28 は、このコマンドの 2 つのパラメータの一覧です。
説明
このコマンドは、現在のユーザのすべてのカレンダー設定およびこのユーザに関連している次のサーバ設定を取得します。
allowchangepassword。ユーザはパスワードを変更できます。
userid パラメータを使用するには、ics.conf ファイルで、サーバのallowcreatecalendars。ユーザはカレンダーを作成できます。
allowdeletecalendars。ユーザはカレンダーを削除できます。
allowpublicwritablecalendars。ユーザは、他のユーザが書き込みできる公開カレンダーを所有できます。
validateowners。この値を 1 に設定すると、ディレクトリのメカニズムが LDAP か CSAPI 互換のユーザメカニズムかに関わらず、そのディレクトリ内にカレンダーの所有者が存在することを確約するため検証がサーバによって行われます。
allowsetprefs。この値が 1 に設定されている場合は、set_userprefs.wcap を使ってユーザ設定を変更できます。
service.admin.calmaster.wcap.allowgetmodifyuserprefs が「yes」に設定されている必要があります。また、要求を送信するユーザは、login.wcap コマンドを使用して管理者としてログインしておく必要があります。http://webcalendarserver/get_userprefs.wcap?id=b5q2o8ve2rk02nv9t6
<html><head><script>
function A (name, readonly)
{this.name=name
this.readonly=readonly
this.vals=new Array (A.arguments.length - 2)
for (var i = 2; i < A.arguments.length; i++)
this.vals[i - 2]=A.arguments[i]
}
var usrattrval=new Array()
usrattrval[0]=new A('cn',true,'John Doe')
usrattrval[1]=new A('givenName',true,'John')
usrattrval[2]=new A('mail',true,'jdoe@mailserver')
usrattrval[3]=new A('preferredlanguage',false)
usrattrval[4]=new A('sn',true,'Doe')
usrattrval[5]=new A('cebgcolor',false,'black')
usrattrval[6]=new A('ceFgcolor',false,'green')
usrattrval[7]=new A('ceBFgcolor',false,'black')
function M(name, flags, msgs, size)
{this.name=name
this.msgs=msgs
this.flags=flags
this.size=size
}
var flags=new Array ('//noinferiors', '//hasnochildren',
'//haschildren', '//noselect')
var flag=new Array(flags.length)
flag['//noinferiors']=1
flag['//hasnochildren']=2
flag['//haschildren']=4
flag['//noselect']=8
var allowchangepassword="no"
var allowcreatecalendars="yes"
var allowdeletecalendars="yes"
var allowexpungecalendar="yes"
var errno=new Array()
errno[0]=0
var errstr=''
</script></head> </script></head>
<body bgcolor=#FFFFFF>
<br><form action=set_userprefs.wcap method=post name=form>
cmd<input name=cmd>
old<input name=oldPassword>
new<input name=newPassword>
<input name=add_attrs>
<input name=del_attrs>
<input name=set_attrs>
<input name=id value=ユe2np3w9o0v6k0u9v9bユ>
<input name=bgcolor>
<input name=security>
<input type=submit>
</form>
</body>
<script>var form=document.form
parent.cfgCB()</script>
目的
ファイルからイベントおよび仕事をカレンダーにインポートします。
パラメータ
表 10-29 は、このコマンドの 5 つのパラメータの一覧です。
説明
このコマンドを使用して、以前に export コマンドを使ってファイルにエクスポートしたカレンダーから、指定したイベントおよび仕事をインポートします。インポートするファイルの MIME コンテンツタイプを、content-in パラメータに指定する必要があります。開始日または終了日を指定しない場合、または dtstart および dtend の値として 0 を渡した場合は、指定したカレンダーにファイル内のすべてのイベントおよび仕事が追加されます。開始日および終了日を指定すると、その期間に該当するファイル内のイベントおよび仕事だけがインポートされます。開始日および終了日は、日付と時刻の最後に Z を付けた UTC 時間として指定します。
このコマンドは、HTTP GET メッセージを使用できるほかのコマンドと異なり、HTTP POST メッセージを使用する必要があります。エクスポートしたイベントおよび仕事が含まれるファイルの内容を、POST メッセージに添付します。このファイルは、iCalendar (.ics) または XML (.xml) 形式でなければなりません。
例
次の POST メッセージは、import コマンドを使用して、添付した iCalendar ファイルをカレンダー jdoe にインポートします (セッション ID が必要です)。POST /import.wcap?id=t95qm0n0es3bo35r&calid=jdoe&dtstart=0&dtend=0
Content-type:multipart/form-data;
boundary=---------------------------33111928916708
Content-Length: 679
-----------------------------33111928916708
Content-Disposition:form-data; name="Upload";
filename="C:\TEMP\ical1.ics"
BEGIN:VCALENDAR
BEGIN:VEVENT
DTSTART:20000105T100000
DTEND:20000105T110000
DTSTAMP:20000104T120000
CREATED:20000105T110000Z
LAST-MODIFIED:20000104T120000Z
SUMMARY:Weekly QA Meeting
UID:random-uid001
END:VEVENT
BEGIN:VEVENT
DTSTART:20000106T100000
DTEND:20000106T110000
DTSTAMP:20000104T120000
CREATED:20000105T110000Z
LAST-MODIFIED:20000104T120000Z
SUMMARY:Weekly QA Meeting 2
UID:random-uid002
END:VEVENT
END:VCALENDAR
-----------------------------33111928916708--次の HTML フォームでは、指定されたファイルを添付した POST メッセージが作成されます。
<FORM METHOD=POST ENCTYPE="multipart/form-data"
ACTION="http://webcalendarserver:12345/import.wcap?id=t95qm0n0es3bo 35r&calid=jdoe&dtstart=0&dtend=0&content-in=text/calendar">
<ol>
<li>file to import:<input type="file" accept="text" name="Upload">
</li>
<li>Press Import Now:<input type="submit" value="Import Now"></li>
</ol>
</FORM>
パラメータ
表 10-30 は、このコマンドの 5 つのパラメータの一覧です。
新しいセッション ID だけを取得するか、またはセッション ID およびその他のパラメータを取得するかどうかを示すブール値
説明
このコマンドは、指定したユーザを、ユーザ名とパスワードの規則に基づいて認証し、iPlanet Calendar Server にログインさせます。ユーザ名は、サーバがユーザを一意に識別するためのプレーンテキスト文字列です。このユーザ名は、たとえば、ユーザの電子メールアドレスでもかまいません。パスワードもプレーンテキストです。
認証
内部認証は、デフォルトの LDAP 認証を使用するか、独自の CSAPI プラグイン経由で既存のユーザ認証方式に接続することによって行われます。CSAPI 認証の詳細は、「csIAuthentication」を参照してください。プロキシ認証 SDK の詳細は、第 6 章の概要および第 7 章の API リファレンスを参照してください。ユーザの認証に失敗した場合は、ログインに失敗したことを示すエラーメッセージがログインウィンドウに表示されます。
例
たとえば、次の URL は、ユーザ jdoe としてログインします。http://webcalendarserver/login.wcap?user=jdoe&password=mypword
戻り値
refresh パラメータを渡さないで、fmt-out に text/js を指定した場合、refresh パラメータのデフォルト値は 0 になります。fmt-out に text/calendar または text/xml を指定した場合、そのデフォルト値は 1 になります。refresh パラメータに 1 を指定した場合、返されるページには、次のようなセッション ID が 1 行含まれます。
これは、非公開カレンダーにアクセスする場合に、さまざまな WCAP コマンドに渡す値です。また、この値は logout などの特定のコマンドに必要なパラメータ値です。
refresh パラメータに 0 を指定すると、iPlanet Calendar Server のユーザインタフェースへのエントリページの場所を含んだ JavaScript 出力が返されます。
パラメータを 0 に設定すると、login コマンドはデフォルトの html ファイルを含むすべての値を返します。
HTTP/1.0 302 OK
Date:Tue, 11 May 2000 22:38:33 GMT
Pragma:no-cache
Expires: 0
Cache-Control:no-cache
Content-Length: 0
Last-modified:Tue, 11 May 2000 22:38:33 GMT
Location:
http://webcalendarserver/en/main.html?id=er6en05tv6n3bv9&lang=en
&host=http://webcalendarserver/<html><head><script>
function color(s) { if (s) document.bgColor=s }
var id='er6en05tv6n3bv9'
var userid='jdoe'
var calid='jdoe'
var errno=new Array()
var errstr=''
</script></head>
<body bgcolor='9999CC' onLoad=parent.ceCB(window.name)>
パラメータ
表 10-31 は、このコマンドの 2 つのパラメータの一覧です。
説明
このコマンドは、指定したユーザのセッションを終了し、セッションテーブル上のユーザのセッションインスタンスを削除します。ユーザはログイン画面に戻ります。http://webcalendarserver/logout.wcap?id=bu9p3eb8x5p2nm0q3
説明
このコマンドは、サーバの応答だけを示す最小限の HTML ページを返します。このコマンドを使用できるのは、管理権限を持つユーザだけです。
戻り値
次の例では、管理者の userid と calid は、両方とも adminX です。HTTP/1.0 200
Date:Thu, 03 Jun 2000 21:31:42 GMT
Content-type:text/html; charset=iso-8859-1
Content-length: 190
Last-modified:Thu, 03 Jun 2000 21:31:42 GMT
Pragma:no-cache
Expires: 0
Cache-Control:no-cache<html><head><script>
function color(s) { if (s) document.bgColor=s }var id='bb5rt6eb5pu9v9w9'
var userid='adminX'
var calid='adminX'
var errno=new Array()
parent.ceCB(window.name)
</script></head></html>
パラメータ
表 10-32 は、このコマンドの 7 つのパラメータの一覧です。
表 10-32 search_calprops のパラメータ
説明
このコマンドは、searchOpts で指定したクエリータイプを使用して、カレンダーを検索します。指定したプロパティ (primaryOwner、calid、name) の文字列が、指定した searchOpts の検索方法に基づいて、search-string と一致するすべてのカレンダーのカレンダープロパティが返されます。ただし、返されるプロパティ数は、最大で maxResults に指定された数までです。
検索するプロパティ
このコマンドは、次の 3 つのプロパティの 1 つと一致する文字列を検索します。特定のプロパティの値を検索するには、そのパラメータを 1 に設定します。
primaryOwner および name を 0 に設定すると、calid はデフォルトで 1 になります。また、calid パラメータの文字列にかかわらず、search-string が calid と見なされます。
search-string を含むカレンダープロパティを返す (CONTAINS)
search-string で始まるカレンダープロパティを返す (BEGINS_WITH)
例
次の URL の例では、すべてのカレンダーから、文字列「susan」を含む(searchOpts=0)、主な所有者のプロパティ (primaryOwner=1) が検索されます。http://webcalendarserver/search_calprops.wcap?id=b2nehr3eq6bh5s
&search-string=susan&primaryOwner=1&searchOpts=0&maxResults=50返されたデータの calsize 変数には、出力として返されたカレンダーの数が指定されています。
HTTP/1.0 200
Date:Fri, 30 Apr 2000 23:49:19 GMT
Content-type:text/html; charset=iso-8859-1
Content-length: 10113
Last-modified:Fri, 30 Apr 2000 23:49:19 GMT
Pragma:no-cache
Expires: 0
Cache-Control:no-cache<html><head><script>
function color(s) { if (s) document.bgColor=s }var id='bu9p3eb8x5p2nm0q3'
var userid='jdoe'
var calid='jdoe'
var errno=new Array()
var timezoneList = new Array()
var calprops = new Array()
var layer_errno = new Array()
function iso(p) {
if (!p) return null;
var y = p.substring(0,4)
var m = p.substring(4,6)
var d = p.substring(6,8)
var h = p.substring(9,11)
var i = p.substring(11,13)
var s = p.substring(13,15)
return new Date(y, m - 1, d, h, i, s, 0)
}
function
CP(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15)
{
this.calid=a1
this.name=a2
this.parent=a3
this.tzid=a4
this.read=a5
this.write=a6
this.charset=a7
this.lang=a8
this.master=a9
this.desc=a10
this.lastMod=iso(a11)
this.created=iso(a12)
this.primaryOwner=a13
this.owners=a14
this.categories=a15
}
calprops[0] = new CP('hockey',
'',
'',
'',
'1',
'1',
'',
'',
'',
'',
'20000615T222725Z',
'20000615T222725Z',
'susan',
new Array(),
new Array(),
new Array('Sports'))
var calsize=1
var maxReturnSize=50
errno[0]=0
parent.ceCB(window.name)
</script></head></html>
パラメータ
表 10-33 は、このコマンドの 15 個のパラメータの一覧です。
このパラメータは、バージョン 5.0 では機能しない。2.x との下位互換性を保持するために残されている。このパラメータの代わりに、acl パラメータを使用してください
このパラメータは、バージョン 5.0 では機能しない。2.x との下位互換性を保持するために残されている。このパラメータの代わりに、acl パラメータを使用してください
説明
このコマンドは、指定されたパラメータ値だけを変更します。つまり、2.x のような置換コマンドではなく、更新コマンドとして機能します。すべてのパラメータをコマンドに指定する必要はありません。変更するパラメータだけを指定します。カレンダープロパティとは、カレンダーの名前、読み取り/書き込みアクセス権の値 (acl パラメータ)、所有者のリスト、およびカテゴリのリストなど、カレンダー固有の状態のことです。バージョン 5.0 では、read パラメータおよび write パラメータは使用できません。この機能は、acl パラメータに置き換えられています。これらのパラメータは 2.x との下位互換性を保持するために残されています。
カレンダーの名前を変更する
単一カレンダーの例
次の例は、カレンダープロパティを設定するサンプル URL です。calid パラメータが必要です。http://webcalendarserver?set_calprops.wcap?id=dfasdfzd3ds&calid=jdo e&categories=business;meeting&name=John%39s%32Calendar
複数のカレンダーの例
複数のカレンダーのプロパティを一度に設定するには、multiple パラメータにカレンダー数を設定して、設定するカレンダーごとに cal パラメータを渡します。cal パラメータには、個々のカレンダーのプロパティパラメータをすべて符号化して指定します。この文字列内では、すべての特殊文字は、パーセント記号 (%) と特殊文字用の 16 進 ASCII コードの組み合わせに置き換えてください。一般的な特殊文字の ASCII 16 進コードは、次のとおりです。
たとえば、次の URL では、ID が xxxx、yyyy、および zzzz である 3 つのカレンダーの説明文が、それぞれ X-Calendar、Y-Calendar、および Z-Calendar に変更されます。
http://webcalendarserver?id=fasdfzd3ds
&multiple=3
&cal=calid%3Dxxxx%26description%3DX-Calendar
&cal=calid%3Dyyyy%26description%3DY-Calendar
&cal=calid%3Dzzzz%26description%3DZ-Calendarhttp://webcalendarserver?id=fasdfzd3ds&calid=xxxx&desc=X-Calendar
http://webcalendarserver?id=fasdfzd3ds&calid=yyyy&desc=Y-Calendar
http://webcalendarserver?id=fasdfzd3ds&calid=zzzz&desc=Z-Calendar
この例では、multiple パラメータが 3 に設定されているため、cal パラメータのインスタンスが 3 個存在します。各 cal パラメータの値は、符号化されたパラメータとその値のリストです。各 cal パラメータは、サーバによって復号化され、該当するプロパティが設定されます。
アクセスコントロールエントリ
この章の初めにある「共通のトピック」の 「アクセスコントロールエントリ (ACE)」を参照してください。
予定なし/予定ありに限定したアクセス
この章の初めにある「共通のトピック」の 「予定なし/予定ありに限定したアクセス」を参照してください。
ほかの言語または文字セットの選択
この章の最初にある「共通のトピック」の 「ほかの言語または文字セットの選択」を参照してください。
パラメータ
表 10-34 は、このコマンドの 5 つのパラメータの一覧です。
このパラメータを 1 に設定し、icsSet または icsSubscribed を設定すると、calid を登録するときに、文字「^」が「:」に変換される
説明
このコマンドは、現在のユーザ設定を変更します。ユーザのパスワードを、LDAP を介して変更することもできます。パラメータ convertCal は、カレンダーの予約購読リスト (icsSubscribed) またはグループの予約購読リスト (icsSet) を設定する場合にだけ使用します。着信したコマンドの calid では、コロン「:」がキャレット「^」に置き換えられていなければなりません。たとえば、calid が jdoe:personal の場合、コマンドが正しく機能するには、WCAP は jdoe^personal として受け取る必要があります。
convertCalid の値が 1 になっている場合は、WCAP によって「^」が「:」に戻されます。convertCalid の値が 0 の場合、この変換は行われません。
管理者がログインしているときに、ics.conf ファイルの service.admin.calmaster.wcap.allowgetmodifyuserprefs が「yes」に設定されている場合は、userid パラメータには設定対象のユーザ ID を指定します。
例
たとえば、次の URL では、新しい設定 ceBgcolor がカレンダーに追加され、その値が black に設定されます。http://webcalendarserver/set_userprefs.wcap?id=b5q2o8ve2rk02nv9t6
&add_attrs=ceBgcolor=black次の URL では、カレンダー設定 ceBgcolor がユーザ設定から削除されます。
http://webcalendarserver/set_userprefs.wcap?id=b5q2o8ve2rk02nv9t6
&del_attrs=ceBgcolor次の URL では、カレンダー設定 ceBgcolor の値が white に変更されます。
http://webcalendarserver/set_useprefs.wcap?id=b5q2o8ve2rk02nv9t6
&set_attrs=ceBgcolor=white次の URL を実行すると、ログインしている管理者が、ユーザ jdoe のカレンダー設定 ceBgcolor の値を black に変更できます。
http://webcalendarserver/set_userprefs.wcap?id=b5q2o8ve2rk02nv9t6&u serid=jdoe&set_attrs=ceBgcolor=black
パラメータ
表 10-35 は、このコマンドの 43 個のパラメータの一覧です。
JavaScript の簡略出力を出力するかどうかを示すブール値
除外するイベント繰り返し規則。繰り返し規則の文字列をセミコロンで区切ったリスト
各規則の値は、二重引用符で囲むことが必要。「繰り返し処理」を参照
1 = PUBLISH (開催者専用)
2 = REQUEST (開催者専用)
4 = REPLY (参加者専用)
8 = CANCEL (開催者専用)
16 = MOVE
32 = COUNTER (参加者専用)1 = THISINSTANCE
2 = THISANDFUTURE
3 = THISANDPRIOR
4 = THISANDALLこのパラメータは 5.0 では使用できない。2.x との下位互換性を保持するために残されている。GSE (Group Scheduling Engine) モジュールでは、すべての電子メール通知が処理される
イベントの繰り返し規則。繰り返し規則の文字列をセミコロンで区切ったリスト
各規則の値は、二重引用符で囲む必要がある。「繰り返し処理」を参照
0 CONFIRMED
1 CANCELLED
2 TENTATIVE
3 NEEDS_ACTION
4 COMPLETED
5 IN_PROCESS
6 DRAFT
7 FINAL
説明
このコマンドは、指定された属性を持つイベントの作成、変更、およびデータベース内の指定されたカレンダーへの登録を行います。このコマンドは、rrules、exrules、rid、mod、および rchange パラメータの指定に従って、繰り返しを作成および登録します。「繰り返し処理」を参照してください。
notify 値が 1 の場合、IMIP PUBLISH メッセージがイベントのすべての参加者に送信されます。
イベントの言語を指定するには、language パラメータを使用します。使用可能な言語コードのリストについては、「ほかの言語または文字セットの選択」を参照してください。
カレンダーサーバでは、ファイルの添付はサポートされていません。attachments パラメータは、iCalendar と相互運用するときに使います。カレンダーサーバでは機能しません。
戻り値
fmt-out パラメータを text/calendar または text/xml に設定すると、次のように HTML コメントの中にエラー値だけが返されます。fmt-out パラメータを text/js に設定するか、設定しなかった (このパラメータのデフォルトは text/js) 場合、このコマンドは、fetchcomponents_by_range.wcap コマンドが返した JavaScript を返します。
エラーコード
このコマンドを使用してリンクされているイベントを変更することはできません。変更しようとすると、コマンドの実行が失敗し、errno 配列に CANNOT_MODIFY_LINKED_EVENTS(31) が返されます。すでに予定が設定されている時間枠にイベントを登録しようとすると (二重予約)、コマンドの実行が失敗し、エラー STORE_FAILED_DOUBLE_BOOKED(40) が返されます。
必要なパラメータ
このコマンドを使って、新しいイベントの作成や、既存のイベントの変更を行います。必要なパラメータは、実行する内容によって次のように異なります。
新しいイベントを作成する場合は、次の 2 つのパラメータだけが必要になります。
既存のイベントを変更する場合は、次の 3 つのパラメータが必要です。
- その他のパラメータはすべてオプションです。uid は、サーバによって生成されます。
- その他のパラメータはすべてオプションです。パラメータを指定しなかった場合は、プロパティの以前の値が保持されます。
継続時間
duration は、次のように ISO8601 形式で指定します。文字列に含まれる文字 T で、日付情報 (年、月、日) と時刻情報 (時、分、秒) を区切ります。
ヒント 終了日時 (dtend) は、duration よりも優先されます。duration と dtend の両方を指定すると、duration は無視されます。
例
たとえば、次の URL では、storeevents.wcap を呼び出して、イベントをカレンダー john に登録します。http://webcalendarserver/storeevents.wcap?id=3423423asdfasf
&calid=john&dtstart=20000101T103000&dtend=20000101T113000&uid=001
&summary=new%20year%20eventこの例を実行すると、iCalendar データベースに次のエントリが作成されます。
BEGIN:VEVENT
DTSTART:20000101T183000Z
DTEND:20000101T193000Z
UID:001
SUMMARY:new year event
END:VEVENT
グループスケジューリング - attendee パラメータ
グループスケジュールイベントを作成するときに最も重要なパラメータは、attendee と method です。attendee パラメータは、参加者エントリをセミコロンで区切ったリストです。次に、参加者エントリについて説明します。各参加者エントリには、イベントの参加状況や返答が必要かどうかなど、いくつかのパラメータが含まれます。これらのすべてのパラメータには、iCalendar の仕様 (RFC 2445) に定義されている ATTENDEE プロパティと似た構文が使用されています。WCAP の attendee の構文を理解するには、このドキュメントにすべて目を通し、必要な基本情報を理解されることをお勧めします。 WCAP では、パラメータの区切り文字として「^」を使用するなど、いくつかの違いがあります。ただし、複数の参加者を区切るときは、iCalendar で標準に使われるセミコロンを使用します。
たとえば、iCalendar では、次のような構文が使用されます。
PARSTAT=ACCEPTED;RSVP=TRUE:mailto:abc@xyz.com
PARSTAT=ACCEPTED^RSVP^=TRUE^mailto:abc@xyz.com
WCAP 参加者エントリの例
参加者 A (attA) が出席依頼を承諾する場合、WCAP コマンドは次のようなパラメータを含みます。PARTSTAT=ACCEPTED^RSVP=TRUE^attA
参加者 B (attB) が出席依頼を辞退する場合、WCAP コマンドは次のようなパラメータを含みます。
PARTSTAT=DECLINED^RSVP=TRUE^attB
電子メールによる参加者 jdoe@xyz.com は、出席するかどうかをまだ決めていないが、返答する必要がない場合は、WCAP コマンドは次のようなパラメータを含みます。
PARTSTAT=NEEDS-ACTION^RSVP=FALSE:mailto:jdoe@xyz.com
表 10-36 は、WCAP が理解する iCalendar ATTENDEE プロパティのパラメータの一覧です。ほとんどのパラメータはオプションです。これらのすべてが Calendar Server で完全にサポートされているわけではありませんが、情報は登録されます。グループスケジューリングに関連するパラメータは、PARTSTAT と RSVP だけです。
表 10-36 WCAP で認識される iCalendar ATTENDEE パラメータ
グループスケジューリング - method パラメータ
method パラメータを使用して、出席依頼、返答、キャンセルなど、使用するメッセージのタイプを指定します。出席依頼では、次の 3 つのメッセージタイプを使用できます。
開催者が出席を依頼する
次の例は、開催者「org」が参加者「attA」および「attB」に会議への出席を依頼する場合の WCAP コマンドを示しています。参加者「attA」は出席依頼を承諾し、参加者「attB」は辞退します。会議の uid は、「event_u1」です。イベントは、両方の参加者のカレンダーに作成されます。各参加者は、各自のカレンダーでイベントに返答します。この返答は、iPlanet Calendar Server 5.0 の Group Scheduling Engine から開催者のカレンダーに返信されます。
- 開催者が会議を作成する場合、次の 2 つの方法で出席を依頼します。
PUBLISH メッセージの送信。会議を作成または変更して、参加者に通知します。method パラメータを「1」に設定します。
REQUEST メッセージの送信。会議を作成または変更して、参加者からの返答を要求します。method パラメータを「2」に設定します。
参加者が出席依頼に対して返答する
- PUBLISH または REQUEST メッセージを送信できるのは、会議の開催者だけです。
開催者が会議をキャンセルする
- 参加者が REPLY メッセージを送信する。出席依頼を承諾するか辞退するかを通知します。method パラメータを「4」に設定します。
storeevents.wcap?id=${SESSIONID of org}&calid=org&dtstart=
20010201T200000Z&dtend=20010201T210000Z&summary=invite_attA_attB
&method=2&attendees=PARTSTAT=ACCEPTED^RSVP=TRUE^org;PARTSTAT=
NEEDS-ACTION^RSVP=TRUE^attA;PARTSTAT=NEEDS-ACTION^RSVP=
TRUE^attB&fmt-out=text/xmlstoreevents.wcap?id=${SESSIONID ofattA}&calid=attA&uid=event_u1
&method=4&attendees=PARTSTAT=ACCEPTED^RSVP=TRUE^attA
&fmt-out=text/xmlstoreevents.wcap?id=${SESSIONID ofattB}&calid=attB&uid=event_u1
&method=4&attendees=PARTSTAT=DECLINED^RSVP=TRUE^attA
&comments=I_cannot_make_it_Sorry&fmt-out=text/xml
パラメータ
表 10-37 は、このコマンドの 44 個のパラメータの一覧です。
JavaScript の簡略出力を出力するかどうかを示すブール値
除外する仕事繰り返し規則。繰り返し規則の文字列をセミコロンで区切ったリスト
各規則の値は、二重引用符で囲むことが必要。「繰り返し処理」を参照
1 = PUBLISH
2 = REQUEST
4 = REPLY
8 = CANCEL
16 = MOVE
32 = COUNTER1 = THISINSTANCE
2 = THISANDFUTURE
3 = THISANDPRIOR
4 = THISANDALLこのパラメータは 5.0 では使用できない。2.x との下位互換性を保持するために残されている。GSE (Group Scheduling Engine) モジュールでは、電子メール通知が処理される
仕事の繰り返し規則。繰り返し規則の文字列をセミコロンで区切ったリスト
各規則の値は、二重引用符で囲む必要がある。「繰り返し処理」を参照
0 CONFIRMED
1 CANCELLED
2 TENTATIVE
3 NEEDS_ACTION
4 COMPLETED
5 IN_PROCESS
6 DRAFT
7 FINAL
説明
このコマンドは、指定した属性を持つ仕事の作成、変更、およびデータベース内の指定したカレンダーへの登録を行います。このコマンドは、rrules、exrules、rid、mod、および rchange パラメータの指定に従って、繰り返しを作成および登録します。「繰り返し処理」を参照してください。
notify 値が 1 の場合、IMIP PUBLISH メッセージが仕事の参加者に送信されます。
カレンダーサーバでは、ファイルの添付はサポートされていません。attachments パラメータは、iCalendar と相互運用するときに使います。カレンダーサーバでは機能しません。
method パラメータ
グループスケジューリングには、次の ITIP メソッドのどれかを指定します。
1
PUBLISH
開催者専用
2
REQUEST
開催者専用
4
REPLY
参加者専用
8
CANCEL
開催者専用
16
MOVE
該当なし
32
COUNTER
参加者専用
戻り値
fmt-out パラメータを text/calendar または text/xml に設定すると、次のように HTML コメントの中にエラー値だけが返されます。fmt-out パラメータを text/js に設定するか、設定しなかった (このパラメータのデフォルトは text/js) 場合、このコマンドは、fetchcomponents_by_range.wcap コマンドが返した JavaScript を返します。
エラーコード
このコマンドを使用してリンクされている仕事を変更することはできません。変更しようとするとコマンドの実行が失敗し、errno 配列に CANNOT_MODIFY_LINKED_TODOS(32) が返されます。すでに予定が設定されている時間枠に仕事を登録しようとすると (二重予約)、コマンドの実行が失敗し、エラー STORE_FAILED_DOUBLE_BOOKED(40) が返されます。
必要なパラメータ
このコマンドを使って、新しい仕事の作成や、既存の仕事の変更を行います。必要なパラメータは、実行する内容によって次のように異なります。
新しい仕事を作成する場合は、次の 2 つのパラメータだけが必要です。
既存の仕事を変更する場合は、次の 3 つのパラメータが必要です。
- その他のパラメータはすべてオプションです。uid は、サーバによって生成されます。
- その他のパラメータはすべてオプションです。パラメータを指定しなかった場合は、プロパティの以前の値が保持されます。
継続時間
期限 (due) は、duration よりも優先されます。duration と due の両方を指定すると、duration は無視されます。文字列に含まれる文字 T で、日付情報 (年、月、日) と時刻情報 (時、分、秒) を区切ります。
目的
ファイルをサーバにアップロードします。ファイルのインポート用の write_file と組み合わせて使用します。
パラメータ
表 10-38 は、このコマンドのパラメータです。
説明
このコマンドは、write_file と組み合わせて、iPlanet Calendar Server 2.0 互換のファイルをインポートします。ファイルを添付するため、POST を使用する必要があります。ファイルのインポートは、UI を使用して次のように処理されます。
upload_file コマンドを使って、ユーザのコンピュータのファイルをサーバにアップロードします。upload_file コマンドは、POST でなければなりません。
このように処理が分かれるのは、パラメータ値と添付ファイルの両方を JavaScript UI で連結して処理できないためです。また、この分離によって、実際にファイルをデータベースに書き込む前に、複数のファイルをサーバにアップロードすることができます。アップロードした 1 つまたは複数のファイル名を取得し、write_file コマンドを使用してデータベースに書き込みます。
upload_file の例
upload_file で送信するデータは、import.wcap のデータとまったく同じです。使用できるファイルは、iCalendar ファイルと XML ファイルだけです。任意のファイルをアップロードすることができますが、データベースに正常に追加できるのは、iCalendar ファイルと XML ファイルだけです。upload.wcap から返される JavaScript は、次のようになります。
Completed sending of import HTTP/1.1 200
Date:Tue, 05 Oct 2000 23:37:51 GMT
Content-type:text/html; charset=iso-8859-1
Content-length: 301
Last-modified:Tue, 05 Oct 2000 23:37:51 GMT
Pragma:no-cache
Expires: 0
Cache-Control:no-cache
Connection:Keep-Alive<html><head><script>
function color(s) { if (s) document.bgColor=s
}
var filename='s://ns//server//msg//calendar//core//parser//test//ical1. ics'var uniquefilename='cf8bfa37b347000001000000ef000000'
var size=640
var errno=0
var errstr=''
</script></head>
<body onLoad=parent.uploadCB()>
</body></html>
write_file の例
前述の例では、uniquefilename という JavaScript 変数を含む行が太字になっています。この変数を、write_file コマンドの uniquefilename パラメータへの入力として使用します。UI を使うと、upload_file で該当するファイルをアップロードし、write_file が呼び出され、ファイルが実際にデータベースに書き込まれます。
たとえば、次の URL を使用して、前述の例のアップロード呼び出しをカレンダー jdoe に書き込みます。uniquefilename パラメータが、upload_file.wcap に返された uniquefilename という JavaScript 変数と一致していることに注意してください。
http://webcalendarserver/write_file.wcap?id=abc&calid=jdoe&dtstart= 0&dtend=0&content-in=text/calendar&uniquefilename=cf8bfa37b34700000 1000000ef000000
2 つのファイルをサーバに書き込むには、一意なファイル名をセミコロンで区切ります。2 つのファイルの content-type は同じでなければなりません。
http://webcalendarserver/write_file.wcap?id=abc&calid=jdoe&dtstart= 0&dtend=0&content-in=text/calendar&uniquefilename=cf8bfa37b34700000 1000000ef000000;dg9cgb48c458000001000000ab000000
パラメータ
表 10-39 は、コマンドのパラメータです。
説明
このコマンドは、WCAP の現在のバージョンを取得します (注 : このバージョンは、サーバおよび HTTP のバージョンとは異なります。)
戻り値
このコマンドでは、iCalendar、XML、および JavaScript の出力形式がサポートされています。iCalendar および XML では、変数 X-NSCP-WCAPVERSION に WCAP バージョン番号が返されます。JavaScript では、変数 wcapversion にバージョン番号が返されます。
JavaScript: (URL:/version.wcap)
<html><head><script>
function color(s) { if (s) document.bgColor=s
}
var id='0'
var userid=''
var calid=''
var errno=new Array()
var wcapversion=1.0.0
parent.ceCB(window.name)
</script></head></html>iCalendar: (URL: /version.wcap?fmt-out=text/calendar)
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//iPlanet/Calendar Hosting Server//EN
X-NSCP-WCAPVERSION:WCAP
END:VCALENDARXML: (URL: /version.wcap?fmt-out=text/xml)
<?xml version=モ1.0モ encoding=メUTF-8モ>
<iCalendar>
<iCal>
<X-NSCP-WCAPVERSION>1.0.0</X-NSCP-WCAPVERSION>
</iCal>
</iCalendar>
パラメータ
表 10-40 は、このコマンドの 6 つのパラメータの一覧です。
説明
write_file コマンドは、upload_file コマンドと組み合わせて、ファイルをインポートします。このコマンドのパラメータは、import コマンドとまったく同じです。ファイルのインポート処理の例および詳細は、「upload_file」を参照してください。
前へ 目次 索引 DocHome 次へ
Copyright © 2000 Sun Microsystems, Inc. Some preexisting portions Copyright © 2000 Netscape Communications Corp. All rights reserved.
Last Updated June 04, 2001