前へ     目次     索引     DocHome     次へ     
iPlanet Calendar Server プログラマリファレンス



第 10 章   WCAP コマンド


この章は、各 WCAP コマンドに共通のトピックと個々の WCAP コマンドに関するトピックに分かれています。


共通のトピック


コマンド


表 10-1 WCAP コマンド 

addlink  

あるカレンダーから別のカレンダーへのイベントリンクを追加する  

change_password  

ユーザのパスワードを変更する  

check_id  

セッションが有効かどうかを確認する  

createcalendar  

新しいカレンダーを作成する  

deletecalendar  

既存のカレンダーを削除する  

deletecomponents_by_range  

指定した期間のカレンダー内のイベントおよび仕事を削除する  

deleteevents_by_id  

指定した calid および指定した uid と繰り返し ID のペアのイベントを削除する  

deleteevents_by_range  

指定した期間のカレンダー内のイベントを削除する  

deletetodos_by_id  

指定した calid および指定した uid と繰り返し ID のペアの仕事を削除する  

deletetodos_by_range  

指定した期間のカレンダー内の仕事を削除する  

export  

カレンダーをファイルにエクスポートする  

fetchcomponents_by_alarmrange  

指定した期間内にアラームが配信されるコンポーネントを照会する  

fetchcomponents_by_attendee_error  

グループスケジューリングメッセージの送信中にエラーが発生したコンポーネントを照会する  

fetchcomponents_by_lastmod  

変更されたコンポーネントを照会する (時間範囲を指定)。  

fetchcomponents_by_range  

指定した期間内のコンポーネントを照会する (属性によりフィルタ)。  

fetchevents_by_id  

一意の識別子 (uid、繰り返し ID、修飾子) を使用して、1 つまたは複数のイベントを照会する  

fetchtodos_by_id  

一意の識別子 (uid、繰り返し ID、修飾子) を使用して、1 つまたは複数の仕事を照会する  

get_all_timezones  

サーバがサポートしているすべてのタイムゾーンを返す  

get_calprops  

カレンダープロパティを返す  

get_freebusy  

カレンダーの予定なし/予定あり時間を返す  

get_guids  

ランダムな uid のセットを返す  

get_userprefs  

ユーザ設定および特定のサーバ設定を返す  

import  

ファイルからユーザのカレンダーにカレンダーをインポートする  

login  

ユーザを認証して、最初の HTML ビューにリダイレクトする  

logout  

現在のユーザのセッションを終了してログイン画面に戻る  

ping  

管理者専用。カレンダーサーバの ping  

search_calprops  

指定したパラメータ値でカレンダーを検索する  

set_calprops  

カレンダープロパティを設定する  

set_userprefs  

ユーザ設定を設定する  

storeevents  

アプリケーションまたは URL 符号化方式で指定されたイベントを保存する。このコマンドは、URL 内のプロパティを渡してイベントを保存します。  

storetodos  

アプリケーションまはた URL 符号化方式で指定された仕事を保存する  

upload_file  

ファイルをサーバにアップロードする  

version  

サーバでサポートされている WCAP バージョンを返す  

write_file  

ファイルをデータベースに書き込む  

表 10-1 は、WCAP コマンドのアルファベット順のリストです。



共通のトピック



この節では、1 つまたは複数のコマンドに適用される共通のトピックについて説明します。トピックはアルファベット順に並んでいます。


アクセスコントロールエントリ (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 管理ガイド』を参照してください。

ACE 文字列の例を次に示します。

jdoe^c^wd^g

この文字列は、3 つの「^」文字で区切られた 4 つの要素で構成されています。4 つの要素は、それぞれ次の内容を示します。

  1. ACE の最初の要素は、ACE が適用されるユーザを示します。

    この要素には、ユーザ ID で指定された個々のユーザ、ドメイン、またはユーザのクラスタイプを指定できます。ユーザのクラスには、次の 4 つのタイプがあります。

    • すべてのユーザ。文字列「@」で表します。

    • カレンダーの主な所有者。文字列「@@p」で表します。

    • カレンダーの所有者。文字列「@@o」で表します。

    • カレンダーの非所有者。文字列「@@n」で表します。

  2. ACE の 2 番目の要素は、ACE が適用される対象を示します。

    ACE はカレンダーの次の範囲に適用できます。

    • カレンダー全体

      コンポーネントとカレンダープロパティの両方に適用します。カレンダー全体を示すには、値 a を渡します。

    • カレンダーのコンポーネントだけ

      カレンダーコンポーネント (イベントまたは仕事) に適用します。コンポーネントだけを示すには、値 c を渡します。

    • カレンダーのカレンダープロパティだけ

      カレンダープロパティ (表示名、所有者リスト) に適用します。カレンダープロパティを示すには、値 p を渡します。

  3. ACE の 3 番目の要素は、ACE が適用されるアクセス値を示します。

    同時に複数の値を指定できます。その際には、チェックしたいビットを示す文字列を呼び出し元から渡す必要があります。

    ACE 文字列で使用されるアクセスコントロール文字を 表 10-2 に示します。3 番目の要素は、1 つまたは複数のアクセスコントロール文字を含む文字列です。

    表 10-2 アクセスコントロール文字

    アクセスコントロール文字  

    説明  

    c  

    ユーザに代理キャンセルアクセスを許可する。キャンセルアクセスでは、すでに出席依頼が出されているコンポーネントを、カレンダーの主な所有者に代わってキャンセルする権限を持つ  

    d  

    ユーザに削除アクセスを許可する  

    e  

    ユーザに代理返信アクセスを許可する。カレンダーの主な所有者に代わって出席依頼を承諾または辞退する権限をユーザに与える  

    f  

    ユーザに予定なし/予定ありに限定したアクセスを許可する  

    i  

    ユーザに代理出席依頼アクセスを許可する。カレンダーの主な所有者の代わりに、コンポーネントの作成およびすでに出席依頼が出されているコンポーネントの変更を行う権限を他のユーザに与える  

    r  

    ユーザに読み取りアクセスを許可する  

    s  

    ユーザにスケジュールアクセスを許可する。要求を送信し、返信が受け付けられ、その他の ITIP スケジューリング対話が有効になる  

    w  

    ユーザに書き込みアクセスを許可する。新しいアイテムの追加、アイテムの削除、および既存のアイテムの変更が含まれる  

    たとえば、読み取りアクセスを許可するには、値 r を渡します。書き込みおよび削除アクセスを許可するには、値 wd を渡します。

  4. ACE の 4 番目の要素は、アクセスの許可または拒否を示します。

    ACE では、アクセスを許可または拒否できます。

    • アクセスを許可するには、値を g に設定します。

    • アクセスを拒否するには、値を d に設定します。


ACE の要約
ACE の順序についてわかりやすくまとめると、次のようになります。

who ^ flag ^ how ^ grant

解説 :

  • who = 文字列、タイプ (str)

  • flag = 文字 cp、または a

  • how = 表 10-2 で説明した 1 つまたは複数のアクセスコントロール文字で構成されるアクセス文字列

  • grant = 文字 g または d


応用例
jdoe のカレンダーに関して、以下に、状況の例と、どのように ACE を acl パラメータに設定するかを示します。

  • john にコンポーネントおよびカレンダープロパティの読み取りアクセスを許可し (acl=john a r g)、susan にコンポーネントだけの書き込みおよび削除アクセスを許可する場合 (acl=susan c wd g)、コマンド全体は次のようになります。

    set_calprops.wcap?id=${SESSIONID}&calid=jdoe&acl=john^a^r^g; 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=@domainname^c^sfr^g;@@o^c^wd^g;@@o^a^zsfr^g;susan^a^zfsdwr^d;@^c^r^g



      管理者は、管理者としてログインしていて、かつ、ics.conf ファイルのサーバ構成の設定 service.admin.calmaster.overrides.
    accesscontrol
    が「yes」に設定されている場合、すべての WCAP コマンドのアクセスコントロールを無視できます。



[「共通のトピック」に戻る]


ほかの言語または文字セットの選択

システムデフォルト以外の言語でデータを取得する要求を出すには、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 形式で返されます。

有効な lang 値を以下に示します。

de

ドイツ語

en

英語 (デフォルト)

es

スペイン語

fr

フランス語

it

イタリア語

ja

日本語

ko

韓国語

ru

ロシア語

sv

スウェーデン語

zh_CN

中国語/簡体字中国語

zh_TW

中国語 (台湾)



  これは、これらの言語のすべてがサーバで現在サポートされていることを意味するものではありません。サーバで現在サポートされている言語については、iPlanet の購入先に問い合わせてください。



[「共通のトピック」に戻る]


繰り返しコンポーネントの削除

コンポーネントを削除するときに、コンポーネントが繰り返しているかどうかを指定できます。場合によっては、必ず指定しなければならないこともあります。また、繰り返している場合は、その繰り返しているコンポーネントだけでなく元のイベントまたは仕事も削除するかどうかを指定できます。

mod パラメータを使用して、以下の削除オプションを選択します。

オプション

1

このインスタンスだけを削除する

2

このインスタンスおよび以後の繰り返しをすべて削除する

3

このインスタンスおよび以前の繰り返しをすべて削除する

4

すべてのインスタンスを削除する

各オプションについて、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 に関するパラメータの符号化したリストに、いくつかの符号化された文字が含まれています。符号化文字の例をいくつか挙げます。

%3D

=

'='

%26

=

'&'

%22

=

'"'

%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 つのレイヤーのエラーが、ほかのレイヤーの処理に影響することはありません。

次の 3 つのレイヤーエラー配列があります。

  • layer_errno。fetch コマンド用

  • delete_layer_errno。delete コマンド用

  • store_layer_errno。store コマンド用


レイヤーカウント配列

さらに、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 は、エラー番号配列に返されるエラーコードの一部です。

表 10-4 エラーの名前、値、および意味 

エラー名

意味

LOGOUT  

-1  

ログアウトは正常に終了しました。  

OK  

0  

コマンドは正常に終了しました  

LOGIN_FAILED  

1  

ログインに失敗しました。セッション ID がタイムアウトしています。無効なセッション ID です  

LOGIN_OK_DEFAULT_CALENDAR_NOT_FOUND  

2  

login.wcap は正常に終了しましたが、このユーザのデフォルトカレンダーが見つかりませんでした。このユーザ ID に設定されている新しいデフォルトカレンダーが作成されました  

DELETE_EVENTS_BY_ID_FAILED  

6  

コマンドの実行に失敗しました  

SETCALPROPS_FAILED  

8  

コマンドの実行に失敗しました  

FETCH_EVENTS_BY_ID_FAILED  

9  

コマンドの実行に失敗しました  

CREATECALENDAR_FAILED  

10  

コマンドの実行に失敗しました  

DELETECALENDAR_FAILED  

11  

コマンドの実行に失敗しました  

ADDLINK_FAILED  

12  

コマンドの実行に失敗しました  

FETCHBYDATERANGE_FAILED  

13  

コマンドの実行に失敗しました  

STOREEVENTS_FAILED  

14  

コマンドの実行に失敗しました  

STORETODOS_FAILED  

15  

コマンドの実行に失敗しました  

DELETE_TODOS_BY_ID_FAILED  

16  

コマンドの実行に失敗しました  

FETCH_TODOS_BY_ID_FAILED  

17  

コマンドの実行に失敗しました  

FETCHCOMPONENTS_FAILED_BAD_TZID  

18  

正しい TZID が見つかりませんでした。
fetchcomponents_by_rangefetchevents_by_id、および fetchtodos_by_id に適用されます
 

SEARCH_CALPROPS_FAILED  

19  

コマンドの実行に失敗しました  

GET_CALPROPS_FAILED  

20  

コマンドの実行に失敗しました  

DELETECOMPONENTS_BY_RANGE_FAILED  

21  

コマンドの実行に失敗しました  

DELETEEVENTS_BY_RANGE_FAILED  

22  

コマンドの実行に失敗しました  

DELETETODOS_BY_RANGE_FAILED  

23  

コマンドの実行に失敗しました  

GET_ALL_TIMEZONES_FAILED  

24  

コマンドの実行に失敗しました  

CREATECALENDAR_ALREADY_EXISTS_FAILED  

25  

createcalendar.wcap の実行に失敗しました。指定した名前のカレンダーがデータベースにすでに存在します  

SET_USERPREFS_FAILED  

26  

コマンドの実行に失敗しました  

CHANGE_PASSWORD_FAILED  

27  

コマンドの実行に失敗しました  

ACCESS_DENIED_TO_CALENDAR  

28  

コマンドの実行に失敗しました。このユーザはカレンダーへのアクセスを拒否されています  

CALENDAR_DOES_NOT_EXIST  

29  

コマンドの実行に失敗しました。カレンダーがデータベースに存在しません  

ILLEGAL_CALID_NAME  

30  

createcalendar.wcap の実行に失敗しました。渡された calid は無効です  

CANNOT_MODIFY_LINKED_EVENTS  

31  

storeevents.wcap の実行に失敗しました。変更しようとしているイベントはリンクされているイベントです  

CANNOT_MODIFY_LINKED_TODOS  

32  

storetodos.wcap の実行に失敗しました。変更しようとしている仕事はリンクされている仕事です  

CANNOT_SENT_EMAIL  

33  

コマンドの実行に失敗しました。電子メールの通知に失敗しました。多くの場合、サーバが電子メールを送信できるように正しく設定されていないことが原因です。このエラーは、storeeventsstoretodosdeleteevents_by_id、またはdeletetodos_by_id で発生する可能性があります  

CALENDAR_DISABLED  

34  

コマンドの実行に失敗しました。カレンダーがデータベースで無効状態になっています  

WRITE_IMPORT_FAILED  

35  

ファイルをサーバに書き込むときに、インポートに失敗しました  

FETCH_BY_LAST_MODIFIED_FAILED  

36  

コマンドの実行に失敗しました  

CAPI_NOT_SUPPORTED  

37  

CS&T カレンダーデータからの読み取りに失敗しました  

CALID_NOT_SPECIFIED  

38  

カレンダー ID が指定されていません  

GET_FREEBUSY_FAILED  

39  

コマンドの実行に失敗しました  

STORE_FAILED_DOUBLE_BOOKED  

40  

storeevents または storetodos の実行に失敗しました。イベントまたは仕事を登録しようとしましたが、時間枠に空きがありません。二重予約は許可されていません  

FETCH_BY_ALARM_RANGE_FAILED  

41  

コマンドの実行に失敗しました  

FETCH_BY_ATTENDEE_ERROR_FAILED  

42  

コマンドの実行に失敗しました  

ATTENDEE_GROUP_EXPANSION_CLIPPED  

43  

拡張しようとしている LDAP グループが大きすぎます。拡張可能な最大数を超えています。指定された最大数で拡張は停止されます。デフォルトの最大数は 200 です。最大数を変更するには、サーバの calstore.group.attendee.maxsize を設定します  

USERPREFS_ACCESS_DENIED  

44  

この管理者レベルのユーザ設定の取得または変更がサーバで許可されていないか、アクセスの要求元が管理者ではありません  

NOT_ALLOWED_TO_REQUEST_PUBLISH  

45  

要求元がイベントの開催者でないため、PUBLISH または REQUEST メソッドを使ってコンポーネントを編集することはできません  

[「共通のトピック」に戻る]


時刻、文字列、パラメータなどの形式

すべての時刻、文字列、パラメータなどの正確な形式および定義については、RFC2445、RFC2446、および RFC2447 を参照してください。特に指定がない限り、すべての WCAP コマンドはこれらの仕様に従います。

RFC は次の IETF Web サイトで参照できます。

  • 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

    set_calprops に追加されたパラメータ。アクセスコントロールの ACE 文字列を登録します。「アクセスコントロールエントリ (ACE)」を参照してください。

  • alarmAudio

    storeevents および storetodos に追加されたパラメータ。オーディオアラームを使用可能にします。

  • alarmFlashing

    storeevents および storetodos に追加されたパラメータ。フラッシュアラームを有効にします。

  • alarmPopup

    storeevents および storetodos に追加されたパラメータ。ポップアップダイアログアラームを有効にします。

  • compstate

    fetchcomponents_by_attendee_error 以外のすべての fetch コマンドでは、パラメータ compstate を使用して、状態別にコンポーネントを取り込むことができます。これらのコマンドでは通常、すべてのコンポーネントが取り込まれるため、このパラメータを使って取り込むコンポーネントのタイプを制限します。

    パラメータが指定されていない場合、デフォルト値は ALL です。

    表 10-5 は、コンポーネントの状態値の一覧です。コンポーネントの状態は、参加者と開催者のどちらかに属しています。

    表 10-5 compstate パラメータに関するコンポーネントの状態値 

    開催者/

    参加者

    コメント

    REPLY-DECLINED  

    参加者  

    参加者が会議を辞退しました  

    REPLY-ACCEPTED  

    参加者  

    参加者が会議を承諾しました  

    REQUEST-COMPLETED  

    開催者  

    開催者から会議要求が送信されました。すべての参加者の返信が受信されました  

    REQUEST_NEEDS-ACTION  

    参加者  

    参加者は会議に関してまだ返信していません  

    REQUEST-NEEDSNOACTION  

    参加者  

    開催者は参加者からの返信を必要としていません  

    REQUEST-PENDING  

    開催者  

    開催者の会議要求が送信されました。グループスケジューリングエンジンは、すべての参加者の処理をまだ終了していません  

    REQUEST-WAITFORREPLY  

    開催者  

    開催者から会議要求が送信されました。参加者からの返信を待っています  

    ALL  

    該当なし  

    ( デフォルト ) すべてのイベントおよび仕事コンポーネントの状態を表しています  

  • convertCalid

    set_userprefs で、カレンダーの予約購読リスト (icsSubscribed) およびグループの予約購読リスト (icsSet) を設定できるようにします。

    コロン「:」の使用を禁止するサーバ制限の回避策として、set_userprefs に追加されました。

    icsSet または icsSubscribed を設定する場合、WCAP ではこのパラメータの値だけが検索されます。

  • language

    storeevents および storetodos に追加されたパラメータ。コンポーネントの言語を指示します。

  • method

    グループスケジューリングにおいて、storeevents コマンドおよび storetodos コマンドで使用する ITIP メソッドを指定します。

  • orgUID

    storeevents および storetodos に追加されたパラメータ。イベントの開催者または仕事の依頼者のユーザ ID を保持します。

  • userid

    管理者がユーザ設定を取得または設定できるように get_userprefs および set_userprefs に追加されたパラメータ。

このバージョンでは、以前は別のコマンドだけで使われていたパラメータが、次のコマンドに追加されています。

  • fmt-outset_calprops に追加されています。

  • orgEmailstoretodos に追加されています。

  • tzid が次のコマンドに追加されています。

    • deleteevents_by_id

    • deletetodos_by_id

    • fetchcomponents_by_alarmrange

    • fetchcomponents_by_lastmod

    • fetchcomponents_by_range

    • fetchevents_by_id

    • fetchtodos_by_id

    さらに、storeevents および storetodostzid が変更されています。このパラメータでは、前述のコマンドと同じタイプ、つまり、「America/Los_Angeles」などのタイムゾーン ID 文字列を使用できます。

[「共通のトピック」に戻る]


出力形式

管理者は、次の 3 つのコンテンツタイプの出力形式を要求できます。

  1. text/calendar - iCalendar

  2. text/xml - iCalendar XML

  3. text/js - JavaScript 出力

出力形式を変更するには、fmt-out に目的の値を設定します。fmt-out が指定されていない場合は、デフォルト形式の text/js で返されます。


簡略出力

brief パラメータを使用すると、簡略化されたイベントおよび仕事データを JavaScript で出力することができます。返される出力は、通常の出力の約半分のサイズになり、次のパラメータが含まれます。

表 10-6 brief 出力に含まれる出力パラメータ

イベントに含まれるパラメータ

仕事に含まれるパラメータ

calid  

 

calid  

created  

 

completed  

desc  

 

created  

dtstart  

 

desc  

dtend  

 

dtstart  

isAllDay  

 

due  

lastMod  

 

isAllDay  

linkCalid  

 

lastMod  

location  

 

linkCalid  

rid  

 

location  

summary  

 

percent  

tzid  

 

rid  

uid  

 

summary  

 

 

tzid  

 

 

uid  

[「共通のトピック」に戻る]


繰り返し処理

繰り返しの指定には、次の 6 つのパラメータを使用できます。

  1. rrules。イベントの繰り返しに関する繰り返し規則文字列を二重引用符で囲み、各文字列をセミコロンで区切ったリスト

  2. rdates。繰り返しの日付の ISO8601 日付文字列をセミコロンで区切ったリスト

  3. exrules。除外する日付に関する繰り返し規則文字列を二重引用符で囲み、各文字列をセミコロンで区切ったリスト

  4. exdates。除外する日付の ISO8601 日付文字列をセミコロンで区切ったリスト

  5. rid。イベントの繰り返し ID を示す ISO8601 日付文字列

  6. mod。1 〜 4 の数値。イベントのどのインスタンスを登録するかを指定する修飾子

  7. rchangestorecomponents の繰り返しを継続するかどうかを指定するブール値


rrules

rrules パラメータは、繰り返し規則文字列を二重引用符で囲み、各文字列をセミコロンで区切ったリストの形式をとります。各文字列は、イベントの繰り返し規則を表します。各文字列は、二重引用符で囲む必要があります。繰り返し規則には、さまざまなパラメータを使用できます。構文の詳細は、RFC2445 を参照してください。

繰り返しを指定するときは、freq パラメータと count パラメータを使うと便利です。

  • 規則内の freq パラメータには、イベントの周期性を定義します。次の値を指定できます。
    DAILY

    イベントを毎日繰り返します。

    WEEKLY

    イベントを毎週繰り返します。

    MONTHLY

    イベントを毎月繰り返します。

    YEARLY

    イベントを毎年繰り返します。

  • 規則内の count パラメータには、会議を繰り返す回数を定義します。count を指定しなかった場合は、デフォルトの最大許容繰り返し数が使用されます。デフォルトの最大数は 60 です。最大数を変更するには、サーバ設定の
    calstore.recurrence.bound を設定します。

次の例では、rrules パラメータを使って 2 つの繰り返し規則を示しています。

rrules="count%3D10%3Bfreq%3Ddaily";"freq%3Dweekly%3Bcount%3D4"

(COUNT=10;FREQ=DAILY and FREQ=WEEKLY;COUNT=4 encoded)

最初の規則では、イベントが毎日発生し、10 回繰り返されることを指定しています。2 番目の規則では、イベントが毎週発生し、4 回繰り返されることを指定しています。

次の URL は、rrules パラメータを渡す例です。

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

次の URL は rdates パラメータを渡す例です。

http://webcalendarserver/storecomponents.wcap?id=b5q2o8ve2rk02nv9t6
&calid=jdoe&uid=333&dtstart=20000301T112233Z
&rdates=20000331T112233;20000531T112233
&dtend=20000301T112233&summary=uuuu

特定の日付のあとの繰り返し規則を変更する場合は、rchange1 に設定する必要があります。


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 回に渡って、イベントを毎週繰り返さないことを指定します。

次の URL は exrules パラメータを渡す例です。

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

次の URL は exdates パラメータを渡す例です。

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

このパラメータは、イベントまたは仕事の繰り返し日付を一意に指定します。ridmod パラメータを組み合わせて、イベントおよび仕事の変更範囲を指定します。

例 :

http://webcalendarserver/storecomponents.wcap?id=b5q2o8ve2rk02nv9t6
&calid=jdoe&uid=333&dtstart=20000301T112233Z
&rid=20000331T112233;dtend=20000301T112233&summary=uuuu&mod=1


mod

このパラメータでは、変更を適用するイベントまたは仕事のインスタンスを指定します。mod 値によって、次のようになります。

オプション

1

このインスタンスのみ

2

このインスタンスおよびそれ以降のすべてのインスタンス

3

このインスタンスおよびそれ以前のすべてのインスタンス

4

このインスタンスを含むすべてのインスタンス

繰り返しのないイベントまたは仕事の場合、rid0 です。


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 ユーザは、任意のパスワードでログインできます。また、特定のドメインに関連付けられていません。



WCAP コマンドには、次の 33 のコマンドがあります。


addlink


目的
特定のカレンダーのイベントまたは仕事から別のカレンダーへのリンクを追加します。


パラメータ
表 10-7 は、このコマンドの 5 つのパラメータの一覧です。

表 10-7 addlink のパラメータ 

パラメータ

タイプ

目的

必須/任意

デフォルト

id  

一意の識別子文字列  

セッション ID  

必須  

該当なし  

srcCal  

文字列  

リンク対象のイベントまたは仕事を含むカレンダー。このカレンダーへの読み取りアクセス権が必要  

必須  

該当なし  

rid  

文字列をセミコロンで区切ったリスト  

リンクを張る先のイベント/仕事の繰り返し ID のリスト  

必須  

該当なし  

destCal  

文字列  

リンクを作成するカレンダー。このカレンダーへの書き込みアクセス権が必要  

必須  

該当なし  

uid  

文字列をセミコロンで区切ったリスト  

リンクを張る先のイベント/仕事の識別子のリスト  

必須  

該当なし  


説明
このコマンドを使用して、srcCal カレンダー中の指定したイベント/仕事へのリンクを、destCal カレンダーの中に追加します。

指定するカレンダーが公開カレンダーである場合を除き、コマンドと一緒に id パラメータを指定する必要があります。

uid リストと rid リストのアイテム数は、正確に一致していなければなりません。さらに、各 rid とそれに対応する uid は、リスト内で同じ位置になければなりません。イベントまたは仕事に繰り返し ID がない場合は、rid リストで 0 を使用します。

次の 3 つの要件を満たしていない場合は、トランザクションが失敗します。

  • srcCal カレンダーと destCal カレンダーのパラメータが有効なカレンダーID であること

  • destCal カレンダーへの書き込みアクセス権と srcCal カレンダーの読み取りアクセス権を持っていること

  • uid リストとrid リストの要素数が同じであること


戻り値
トランザクションが失敗した場合は、ADDLINK_FAILED(12) のエラーが返されます。成功した場合のリターンコードは 0 です。



この例では、2 つのイベントリンクをカレンダー jdoe に追加する方法を示しています。このリンクは、pub カレンダー内のイベントを指すことになります。イベントは、11112222 です (イベントの uid)。どちらのイベントも繰り返さないため、繰り返し ID は 0 です。

次の URL でこのトランザクションが実行されます。

http://webcalendarserver/addlink.wcap?id=b5q2o8ve2rk02nv9t6&destCal =jdoe&srcCal=pub&uid=1111;2222&rid=0;0

[コマンド一覧に戻る]

[第 10 章の先頭に戻る]


change_password


目的
現在のユーザのパスワードを変更します。このコマンドは、5.0 では使わないでください。2.x との下位互換性の保持するために残されています。パスワードの変更に関する詳細は、『管理者ガイド』を参照してください。


パラメータ
表 10-8 は、このコマンドの 4 つのパラメータの一覧です。

表 10-8 change_password のパラメータ 

パラメータ

タイプ

目的

必須/任意

デフォルト

id  

文字列  

セッション ID  

必須  

該当なし  

newPassword  

文字列  

新しいユーザパスワード  

必須  

該当なし  

oldPassword  

文字列  

以前のユーザパスワード  

必須  

該当なし  

fmt-out  

文字列  

返されるデータの形式

次の形式を指定できます

text/calendar
text/xml
text/js
 

任意  

text/js  


目的
このコマンドは、ユーザのパスワードを変更します。パスワードはプレーンテキストで渡されます。service.wcap.allowchangepassword が設定されている場合を除き、このコマンドを使用できるのは管理権限を持つユーザだけです。

指定するカレンダーが公開カレンダーである場合を除き、コマンドと一緒に id パラメータを指定する必要があります。


戻り値
コマンドの実行に失敗すると、エラー CHANGE_PASSWORD_FAILED(27) が返されます。



次の URL は、パスワードの変更を要求する例です。

http://webcalendarserver/change_password.wcap?id=b5q2o8ve2rk02nv9t6 &oldPassword=abc&newPassword=def

[コマンド一覧に戻る]

[第 10 章の先頭に戻る]


check_id


目的
管理者がセッションの有効性を確認するときに使う管理者用コマンドです。


パラメータ
表 10-8 は、このコマンドの 4 つのパラメータの一覧です。

表 10-9 change_password のパラメータ 

パラメータ

タイプ

目的

必須/任意

デフォルト

id  

文字列  

セッション ID  

必須  

該当なし  

fmt-out  

文字列  

返されるデータの形式

次の形式を指定できます

text/calendar
text/xml
text/js
 

任意  

text/js  


目的
管理者はこのコマンドを使って、セッションの有効性を確認できます。


戻り値
サーバは、プロパティ 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-Alive

BEGIN:VCALENDAR
PRODID:-//iPlanet/Calendar Hosting Server//EN
METHOD:PUBLISH
VERSION:2.0
X-NSCP-WCAP-CHECK-ID:1
END:VCALENDAR lendar

[コマンド一覧に戻る]

[第 10 章の先頭に戻る]


createcalendar


目的
新しいカレンダーを作成します。


パラメータ
表 10-10 は、このコマンドの 4 つのパラメータの一覧です。

表 10-10 createcalendars のパラメータ 

パラメータ

タイプ

目的

必須/任意

デフォルト

calid  

文字列  

ユーザの calid。この文字列を使って calid の文字列を作成する  

必須  

該当なし  

id  

一意の識別子文字列  

セッション ID  

必須  

該当なし  

fmt-out  

文字列  

返されるデータの形式

次の形式を指定できる

text/calendar
text/xml
text/js
 

必須  

text/js  

set_calprops  

整数 (01)  

新しいカレンダープロパティを設定するかどうかを示すブール値

1 = プロパティを設定する
0 = プロパティを設定しない
 

任意  

0  


説明
このコマンドを使用して、現在のユーザに新しいカレンダーを作成します。管理権限のないユーザがこのコマンドを使用できるようにするには、ics.conf ファイルの service.wcap.allowcreatecalendars を設定します。


有効な caild の作成
作成したカレンダーの新しい calid は、ユーザの userid と渡された calid パラメータの組み合わせです。userid を取得するために、id パラメータに指定されたセッションが検索されます。新しいカレンダーの calid の形式は、userid:calid です。たとえば、ユーザが jdoecalid パラメータが tv の場合、新しいカレンダーの calidjdoe:tv です。

calid パラメータが長すぎる場合、または不正な文字を含んでいる場合は、サーバによって切り捨てられます。calid パラメータの切り捨てに失敗した場合は、エラー ILLEGAL_CALID_NAME(30) が返されます。

calid パラメータに有効な文字は次のとおりです。

  • アルファベット文字 (A 〜 Z、a 〜 z)

  • 数字 (0 〜 9)

  • 特殊文字

    • ダッシュ (-)

    • アンダースコア (_)

    • ピリオド (.)

たとえば、calendar1calendar-1calendar_1calendar.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 章の先頭に戻る]


deletecalendar


目的
このコマンドは、ユーザのカレンダーを削除します。


パラメータ
表 10-11 は、このコマンドの 3 つのパラメータの一覧です。

表 10-11 deletecalendars のパラメータ 

パラメータ

タイプ

目的

必須/任意

デフォルト

calid  

文字列  

削除するカレンダーの名前  

必須  

該当なし  

id  

一意の識別子文字列  

セッション ID  

必須  

該当なし  

fmt-out  

文字列  

返されるデータの形式

次の形式を指定できる

text/calendar
text/xml
text/js
 

必須  

text/js  


説明
このコマンドを使用して、ユーザのカレンダーを削除します。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 章の先頭に戻る]


deletecomponents_by_range


目的
指定された範囲のイベントおよび仕事をカレンダーから削除します。


パラメータ
表 10-12 は、このコマンドの 6 つのパラメータの一覧です。

表 10-12 deletecomponents_by_range のパラメータ 

パラメータ

タイプ

目的

必須/任意

デフォルト

brief  

整数 (0、1)  

JavaScript の簡略出力を出力するかどうかを示すブール値

出力形式 (fmt-out) が JavaScript (text/js) の場合にだけ適用される

1 = 簡略出力
0 = 完全出力
 

任意  

0  

calid  

文字列  

削除するイベントおよび仕事が含まれているカレンダー ID を、セミコロンで区切ったリスト  

任意  

現在の
ユーザの
calid
 

dtend  

ISO8601
DateTime
Z 文字列 (UTC)
 

削除するイベントまたは仕事の終了日時

値が 0 の場合は、時間の最後までのイベントがすべて削除される。この値は、世界協定時刻でなければならない  

任意  

0  

dtstart  

ISO8601
DateTime
Z 文字列 (UTC)
 

削除するイベントまたは仕事の開始日時

値が 0 の場合は、時間の最初からのイベントおよび仕事がすべて削除される。この値は、世界協定時刻でなければならない  

任意  

0  

fmt-out  

文字列  

返されるデータの形式

次の形式を指定できる

text/calendar
text/xml
text/js
 

任意  

text/js  

id  

一意の識別子文字列  

セッション ID  

必須  

該当なし  


説明
このコマンドを使用すると、指定した範囲のイベントおよび仕事が指定したカレンダーから削除されます。範囲を指定しない場合は、すべてのイベントおよび仕事が削除されます。範囲パラメータ 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

[コマンド一覧に戻る]

[第 10 章の先頭に戻る]


deleteevents_by_id


目的
イベント識別子を使用して、1 つまたは複数のイベントをカレンダーから削除します。


パラメータ
表 10-13 は、このコマンドの 8 つのパラメータの一覧です。

表 10-13 deleteevents_by_id のパラメータ 

パラメータ

タイプ

目的

必須/任意

デフォルト

brief  

整数 (0、1)  

JavaScript の簡略出力を出力するかどうかを示すブール値

出力形式 (fmt-out) が JavaScript (text/js) の場合にだけ適用される

1 = 簡略出力
0 = 完全出力
 

任意  

0  

calid  

文字列  

削除するイベントのカレンダー ID  

必須  

該当なし  

fmt-out  

文字列  

返されるデータの形式

次の形式を指定できる

text/calendar
text/xml
text/js
 

任意  

text/js  

id  

一意の識別子文字列  

セッション ID。カレンダーが公開されている場合を除き、このパラメータは必須です  

必須  

NULL  

mod  

整数

1234  

どの繰り返し部分を削除するかを示す修飾子。セミコロンで区切った複数の修飾子のリスト。リストの場合は、uid リストと要素の数が同じでなければならない

次の値を指定できる

1 = THISINSTANCE
2
= THISANDFUTURE
3
= THISANDPRIOR
4 = THISANDALL
 

必須  

該当なし  

notify  

整数

01  

参加者にこの変更を通知するかどうかを示すブール値

1 = 参加者に通知する
0 = 参加者に通知しない
 

任意  

0  

rid  

文字列  

イベントの繰り返し ID、または複数の繰り返し ID をセミコロンで区切ったリスト

リストの場合、uid リストと要素の数は同じでなければならない

繰り返しがない場合、値は 0  

必須  

該当なし  

tzid  

タイム
ゾーン ID
文字列
 

rid パラメータでタイムゾーンが指定されていない場合は、このタイムゾーンがデフォルトとして使われる

例 : America/Los_Angeles  

任意  

サーバの
デフォルトタイムゾーン
 

uid  

文字列  

削除するイベントの一意の識別子、または複数の一意の識別子をセミコロンで区切ったリスト  

必須  

該当なし  


説明
このコマンドを使用して、指定した 1 つまたは複数のイベントを指定したカレンダーから削除します。


エラーコード
処理に成功した場合は、エラー番号 0 がエラー文字列に追加されます。エラーが発生した場合は、delete_layer_errnodelete_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&notify=1


繰り返し
rid パラメータを渡した場合は、mod パラメータの指定に従って、繰り返しも削除されます (「繰り返しコンポーネントの削除」を参照)。複数のイベントを削除するには、uidrid、および mod パラメータをセミコロンで区切ったリストを指定します。この 3 つのリストの要素数は同じでなければなりません。各リストの要素は、ほかの 2 つのリストの同じ要素と対応しています。



たとえば、uid が uid-EVENT1 uid-EVENT2 である繰り返しのないイベントが、データベースに 2 つあると想定します。これらのイベントは繰り返さないため、各イベントの rid 値を 0、各イベントの mod 値を 1 に設定します。

次の URL では 2 つのイベントが削除されます。

http://webcalendarserver/deleteevents_by_id.wcap?id=br6p3t6bh5po35r
  &uid=uid-EVENT1;uid-EVENT2&rid=0;0&mod=1;1

次のような結果データが返されます。

HTTP/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 章の先頭に戻る]


deleteevents_by_range


目的
指定した範囲のイベントをカレンダーから削除します。


パラメータ
表 10-14 は、このコマンドの 6 つのパラメータの一覧です。

表 10-14 deleteevents_by_range のパラメータ 

パラメータ

タイプ

目的

必須/任意

デフォルト

brief  

整数 (0、1)  

JavaScript の簡略出力を出力するかどうかを示すブール値

出力形式 (fmt-out) が JavaScript (text/js) の場合にだけ適用される

1 = 簡略出力
0 = 完全出力
 

任意  

0  

calid  

文字列  

削除するイベントが含まれているカレンダー ID を、セミコロンで区切ったリスト  

任意  

現在の
ユーザの
calid
 

dtend  

ISO8601
DateTime
文字列
 

削除するイベントの終了日時

値が 0 の場合は、時間の最後までのイベントがすべて削除される  

任意  

0  

dtstart  

ISO8601
DateTime
文字列
 

削除するイベントの開始日時

値が 0 の場合は、時間の最初からのイベントがすべて削除される  

任意  

0  

fmt-out  

文字列  

返されるデータの形式

次の形式を指定できる

text/calendar
text/xml
text/js
 

任意  

text/js  

id  

一意の識別子文字列  

セッション ID  

必須  

該当なし  


説明
このコマンドを使用して、指定した範囲に含まれるイベントを指定したカレンダーから削除します。範囲 (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 章の先頭に戻る]


deletetodos_by_id


目的
1 つまたは複数の仕事をカレンダーから削除します。


パラメータ
表 10-15 は、このコマンドの 8 つのパラメータの一覧です。

表 10-15 deletetodos_by_id のパラメータ 

パラメータ

タイプ

目的

必須/任意

デフォルト

brief  

整数 (0、1)  

JavaScript の簡略出力を出力するかどうかを示すブール値

出力形式 (fmt-out) が JavaScript (text/js) の場合にだけ適用される

1 = 簡略出力
0 = 完全出力
 

任意  

0  

calid  

文字列  

削除する 1 つまたは複数の仕事のカレンダー ID  

必須  

該当なし  

fmt-out  

文字列  

返されるデータの形式

次の形式を指定できる

text/calendar
text/xml
text/js
 

任意  

text/js  

id  

一意の識別子文字列  

セッション ID  

必須  

該当なし  

mod  

整数  

どの繰り返し部分を削除するかを示す修飾子。セミコロンで区切った複数の修飾子のリスト。リストの場合は、uid リストと要素の数が同じでなければならない

次の値を指定できる

1 = THISINSTANCE
2 = THISANDFUTURE
3 = THISANDPRIOR
4 = THISANDALL
 

必須  

該当なし  

notify  

整数 (0、1)  

参加者にこの変更を通知するかどうかを示すブール値

1 = 参加者に通知する
0 = 参加者に通知しない
 

任意  

0  

rid  

文字列  

仕事の繰り返し ID、または複数の繰り返し ID をセミコロンで区切ったリスト

リストの場合は、uid リストと要素の数が同じでなければならない

繰り返しがない場合、値は 0  

必須  

該当なし  

tzid  

タイムゾーン ID 文字列  

rid パラメータでタイムゾーンが指定されていない場合は、このタイムゾーンがデフォルトとして使われる

例 : America/Los_Angeles  

任意  

サーバのデフォルトのタイムゾーン  

uid  

文字列  

削除する仕事の一意の識別子、または複数の一意の識別子をセミコロンで区切ったリスト  

必須  

該当なし  


説明
このコマンドを使用して、指定した仕事を指定したカレンダーから削除します。

指定するカレンダーが公開カレンダーである場合を除き、コマンドと一緒に id パラメータを指定する必要があります。データは、fmt-out パラメータで指定した形式で返されます。このパラメータを渡さない場合、データはデフォルトの JavaScript 形式で返されます。


エラーコード
エラーが発生した場合は、delete_layer_errnodelete_todo_count の 2 つのエラー配列が返されます。配列の各要素は、uid リスト内の対応する仕事を表しています。delete_layer_errno の各要素は、対応する仕事のエラー番号を示します。delete_event_count の各要素は、対応する仕事のうち削除が完了した仕事数を示します。

「エラー処理」も参照してください。


通知
notify パラメータには、IMIP CANCEL メッセージを仕事の電子メール参加予定者に送信するかどうかを指定します。notify1 の場合、キャンセルメッセージが電子メールで送信されます。

たとえば、次の URL は、IMIP CANCEL メッセージを uid=001 の仕事のすべての参加者に送信します。

http://webcalendarserver/deletetodos_by_id.wcap?id=3423423asdfasf&c alid=jdoe&uid=001&notify=1


繰り返し
rid パラメータを渡した場合は、mod パラメータの指定に従って、繰り返しも削除されます。「繰り返しコンポーネントの削除」を参照してください。

複数の仕事を削除するには、uidrid、および mod パラメータをセミコロンで区切ったリストを指定します。この 3 つのリストの要素数は同じでなければなりません。各リストの要素は、ほかの 2 つのリストの同じ要素と対応しています。rid パラメータを渡した場合は、mod パラメータの指定に従って、繰り返しも削除されます。



たとえば、uid が uid-TODO1uid-TODO2 である繰り返しのないイベントが、データベースに 2 つあると想定します。これらのイベントは繰り返さないため、各イベントの rid 値を 0、各イベントの mod 値を 1 に設定します。

次の URL では 2 つのイベントが削除されます。

http://webcalendarserver/deletetodos_by_id.wcap?id=br6p3t6bh5po35r
  &uid=uid-TODO1;uid-TODO2&rid=0;0&mod=1;1

次のようなデータが出力されます。

HTTP/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 章の先頭に戻る]


deletetodos_by_range


目的
指定した範囲の仕事をカレンダーから削除します。


パラメータ
表 10-16 は、このコマンドの 6 つのパラメータの一覧です。

表 10-16 deletetodos_by_range のパラメータ 

パラメータ

タイプ

目的

必須/任意

デフォルト

brief  

整数 (0、1)  

JavaScript の簡略出力を出力するかどうかを示すブール値

出力形式 (fmt-out) が JavaScript (text/js) の場合にだけ適用される

1 = 簡略出力
0 = 完全出力
 

任意  

0  

calid  

文字列  

削除する仕事が含まれているカレンダー ID を、セミコロンで区切ったリスト  

任意  

現在の
ユーザの
calid
 

dtstart  

ISO8601
DateTime
文字列
 

削除する仕事の開始日時。値が 0 の場合は、もっとも古い日時から指定した終了日時までの仕事がすべて削除される  

任意  

0  

dtend  

ISO8601
DateTime
文字列
 

削除する仕事の終了日時。値が 0 の場合は、指定した開始日時から最後までの仕事がすべて削除される  

任意  

0  

id  

一意の識別子文字列  

セッション ID  

必須  

該当なし  

fmt-out  

文字列  

返されるデータの形式

次の形式を指定できます

text/calendar
text/xml
text/js
 

任意  

text/js  


説明
このコマンドを使用して、指定した範囲に含まれる仕事を指定したカレンダーから削除します。範囲を指定しない場合は、すべての仕事が削除されます。たとえば、次の 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 章の先頭に戻る]


export


目的
イベントおよび仕事をカレンダーからファイルにエクスポートします。


パラメータ
表 10-17 は、このコマンドの 5 つのパラメータの一覧です。

表 10-17 export のパラメータ 

パラメータ

タイプ

目的

必須/任意

デフォルト

calid  

文字列  

エクスポートするイベントおよび仕事が含まれているカレンダー ID を、セミコロンで区切ったリスト。リストのすべてのカレンダーの読み取りアクセス権が必要  

任意  

現在の
ユーザの
calid
 

content-out  

文字列  

出力ファイルのコンテンツタイプ。次の値を指定できる

text/calendar
text/xml
 

必須  

該当なし  

dtend  

ISO8601 DateTime Z 文字列 (UTC)

 

エクスポートするイベントおよび仕事の終了日時。値が 0 の場合は、開始日から最後までのすべてのコンポーネントがエクスポートされる  

任意  

0  

dtstart  

ISO8601 DateTime Z 文字列 (UTC)  

エクスポートするイベントおよび仕事の開始日時。値が 0 の場合は、最も古い日付から終了日までのすべてのコンポーネントがエクスポートされる  

任意  

0  

id  

一意の識別子文字列  

セッション ID  

必須  

該当なし  


説明
このコマンドを使用して、1 つまたは複数のカレンダーからイベントおよび仕事をファイルにエクスポートします。エクスポートしたファイルの内容は、あとで import コマンドを使用してカレンダーにインポートできます。content-out パラメータの値に応じて、export.ics または export.xml という名前のファイルが作成されます。


範囲
開始日または終了日を指定しない場合は、カレンダー内のすべてのイベントおよび仕事がファイルに追加されます。開始日および終了日を指定すると、カレンダーのその期間内のイベントおよび仕事だけがエクスポートされます。開始日および終了日は、日付と時刻の最後に Z を付けた UTC 時間で指定します。


HTTP POST の例
このコマンドは、HTTP POST と共に使用する必要があります (参考: ほかのコマンドでは HTTP GET も使用可)。


例 1
次の HTTP POST メッセージでは、カレンダー jdoejohn のコンポーネントをすべて 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: 7004

BEGIN: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 章の先頭に戻る]


fetchcomponents_by_alarmrange


目的
カレンダーからアラームトリガーを持つイベントおよび仕事を取得します。


パラメータ
表 10-18 は、このコマンドの 7 つのパラメータの一覧です。

表 10-18 fetchcomponents_by_alarmrange のパラメータ 

パラメータ

タイプ

目的

必須/任意

デフォルト

brief  

整数 (0、1)  

JavaScript の簡略出力を出力するかどうかを示すブール値

出力形式 (fmt-out) が JavaScript
(text/js) の場合にだけ適用される

1 = 簡略出力
0 = 完全出力
 

任意  

0  

 

 

 

 

 

calid  

文字列  

取得するコンポーネントが含まれているカレンダー ID を、セミコロンで区切ったリスト  

任意  

現在の
ユーザの
calid
 

compstate  

コンポーネントの状態のキーワードを、セミコロンで区切ったリスト  

取り込むコンポーネントの状態のリスト

compstate 値については、表 10-5 を参照  

任意  

ALL  

dtend  

ISO8601 DateTime Z 文字列  

取得するイベントおよび仕事の終了日時

値が 0 の場合は、すべてのイベントが取り込まれる  

任意  

0  

dtstart  

ISO8601 DateTime Z 文字列  

指定した期間に配信されるアラームを持つイベントまたは仕事の開始日時

値が 0 の場合は、最初の日時のイベントからすべて取り込まれる  

任意  

0  

fmt-out  

文字列  

返されるデータの形式

次の形式を指定できる

text/calendar
text/xml
text/js
 

任意  

text/js  

id  

一意の識別子文字列  

セッション ID  

必須  

該当なし  

maxResults  

整数  

返されるイベントおよび仕事の最大数。0 の場合、最大数は適用されず、検出されたイベントおよび仕事がすべて返される  

任意  

0  

tzid  

タイムゾーン ID
文字列
 

rid パラメータにタイムゾーンが含まれていない場合は、このタイムゾーンがデフォルトとして使われる

例 : America/Los_Angeles  

任意  

サーバの
デフォルトの
タイムゾーン
 


説明
このコマンドは、指定した期間に配信されるアラームを持つイベントおよび仕事のリストを返します。


出力形式
データは、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 つのイベントがあると想定します。

  • eventA: 2000 年 2 月 10 日の午前 10 時 00 分 (GMT) にアラーム

  • eventB: 2000 年 12 月 25 日の午後 12 時 30 分 (GMT) にアラーム

  • todoA: 2000 年 1 月 20 日の午後 1 時 15 分 (GMT) にアラーム

このカレンダーに対する 3 つのクエリーとその戻り値について説明します。

  1. 次のクエリーは、アラームを持つイベントおよび仕事をすべて取り込みます。

    http://webcalendarserver/fetchcomponents_by_alarmrange.wcap?id=abcdefg&dtstart=0&dtend=0

    eventA、eventB、および todoA が返されます。

  2. 次のクエリーは、2000 年 12 月 1 日〜 2001 年 1 月 31 日に配信されるアラームを持つイベントおよび仕事をすべて、取り込みます。

    http://webcalendarserver/fetchcomponents_by_alarmrange.wcap?id=abcdefg&dtstart=20001201T112233Z&dtend=20010131T112233Z

    eventB および todoA が返されます。

  3. 次のクエリーは、2000 年 1 月 1 日〜 2000 年 6 月 1 日に配信されるアラームを持つイベントおよび仕事をすべて、取り込みます。

    http://webcalendarserver/fetchcomponents_by_alarmrange.wcap?id=abcdefg&dtstart=20000101T112233Z&dtend=20000601T112233Z

    eventA および todoA が返されます。

    [コマンド一覧に戻る]

    [第 10 章の先頭に戻る]


fetchcomponents_by_attendee_error


目的
グループスケジューリングメッセージの送信中にエラーが発生したコンポーネントのリストを取り込みます。


パラメータ

表 10-19 は、このコマンドの 5 つのパラメータの一覧です。

表 10-19 fetchcomponents_by_attendee_error のパラメータ 

パラメータ

タイプ

目的

必須/任意

デフォルト

attendee  

文字列  

検索する参加者の calidcalid パラメータで指定されているカレンダーから、この参加者に関するイベントで発生したすべてのエラーを検索する

このパラメータが指定されない場合、主な所有者のカレンダーから、すべての参加者のすべてのイベントエラーを検索する  

任意  

該当なし  

brief  

整数 (0、1)  

JavaScript の簡略出力を出力するかどうかを示すブール値

出力形式 (fmt-out) が JavaScript
(text/js) の場合にだけ適用される

1 = 簡略
0 = 完全
 

任意  

0  

calid  

文字列  

取得するコンポーネントが含まれているカレンダー ID を、セミコロンで区切ったリスト  

任意  

現在の
ユーザの
calid
 

fmt-out  

文字列  

返されるデータの形式

次の形式を指定できる

text/calendar
text/xml
text/js
 

任意  

text/js  

id  

一意の識別子文字列  

セッション ID  

必須  

該当なし  

maxResults  

整数  

返されるイベントおよび仕事の最大数。0 の場合、最大数は適用されず、検出されたすべてのイベントおよび仕事が返される  

任意  

0  


説明
このコマンドを使用して、グループスケジューリングメッセージの送信中にエラーが発生したイベントおよび仕事のリストを取得します。このコマンドの機能は、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 つのイベントとそれぞれに関連付けられている参加者が格納されています。

cal1 のイベント

cal2 のイベント

イベント - 1c1

参加者 : jdoe

状態 : エラー

イベント - 1c2

参加者 : john

状態 : OK

イベント - 2c1

参加者 : susan

状態 : エラー

イベント - 2c2

参加者 : jdoe

状態 : エラー

イベント - 3c1

参加者 : jdoe

状態 : OK

イベント - 3c2

参加者 : susan

状態 : OK

イベント - 4c1

参加者 : john

状態 : OK

イベント - 4c2

参加者 : susan

状態 : エラー

参加者 jdoe に関してこのコマンドを実行すると、イベント 1c1 と 2c2 が返されます。


エラーコード
処理に成功した場合は、エラー番号 0 がエラー文字列に追加されます。何らかの理由でコマンドの実行に失敗した場合、errnoFETCH_BY_ATTENDEE_ERROR_FAILED(42) です。

[コマンド一覧に戻る]

[第 10 章の先頭に戻る]


fetchcomponents_by_lastmod


目的
指定した期間中に変更されたコンポーネントのリストを取り込みます。


パラメータ

表 10-20 は、このコマンドの 7 つのパラメータの一覧です。

表 10-20 fetchcomponents_by_lastmode のパラメータ 

パラメータ

タイプ

目的

必須/任意

デフォルト

brief  

整数 (0、1)  

JavaScript の簡略出力を出力するかどうかを示すブール値

出力形式 (fmt-out) が JavaScript (text/js) の場合にだけ適用される

1 = 簡略
0 = 完全
 

任意  

0  

calid  

文字列  

取得するコンポーネントが含まれているカレンダー ID を、セミコロンで区切ったリスト  

任意  

現在の
ユーザの
calid
 

compstate  

コンポーネントの状態のキーワードをセミコロンで、区切ったリスト  

取り込むコンポーネントの状態のリスト

compstate 値については、表 10-5 を参照  

任意  

ALL  

dtend  

ISO8601 DateTime Z 文字列  

取得するイベントの終了日時

値が 0 の場合は、すべてのイベントが取り込まれる  

任意  

0  

dtstart  

ISO8601 DateTime Z 文字列  

取得するイベントの開始日時

値が 0 の場合は、最初の日時のイベントからすべて取り込まれる  

任意  

0  

fmt-out  

文字列  

返されるデータの形式

次の形式を指定できる

text/calendar
text/xml
text/js
 

任意  

text/js  

id  

一意の識別子文字列  

セッション ID  

必須  

該当なし  

maxResults  

整数  

返されるイベントおよび仕事の最大数。0 の場合、最大数は適用されず、検出されたイベントおよび仕事がすべて返される  

任意  

0  

tzid  

タイムゾーン ID
文字列
 

rid パラメータにタイムゾーンが含まれていない場合は、このタイムゾーンがデフォルトとして使われる

例 : America/Los_Angeles  

任意  

サーバの
デフォルトのタイムゾーン
 


説明
このコマンドを使用して、指定した期間中に変更されたイベントおよび仕事のリストを取得します。このコマンドの機能は、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)

  • eventA: 最終更新日時は 2000 年 12 月 25 日の午後 12 時 30 分 (GMT)

  • todoA: 最終更新日時は 2000 年 1 月 20 日の午後 1 時 15 分 (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 章の先頭に戻る]


fetchcomponents_by_range


目的
カレンダーのイベントおよび仕事を取得します。


パラメータ
表 10-21 は、このコマンドの 7 つのパラメータの一覧です。

表 10-21 fetchcomponents_by_range のパラメータ 

パラメータ

タイプ

目的

必須/任意

デフォルト

brief  

整数 (0、1)  

JavaScript の簡略出力を出力するかどうかを示すブール値

出力形式 (fmt-out) が JavaScript (text/js) の場合にだけ適用される

1 = 簡略出力
0 = 完全出力
 

任意  

0  

calid  

文字列  

取得するコンポーネントが含まれているカレンダー ID を、セミコロンで区切ったリスト  

任意  

現在の
ユーザの
calid
 

compstate  

コンポーネントの状態のキーワードを、セミコロンで区切ったリスト  

取り込むコンポーネントの状態のリスト

compstate 値については、表 10-5 を参照  

任意  

ALL  

dtend  

ISO8601 DateTime Z 文字列  

取得するイベントの終了日時

値が 0 の場合は、すべてのイベントが取り込まれる  

任意  

0  

dtstart  

ISO8601 DateTime Z 文字列  

取得するイベントの開始日時

値が 0 の場合は、最初の日時のイベントからすべて取り込まれる  

任意  

0  

fmt-out  

文字列  

返されるデータの形式

次の形式を指定できる

text/calendar
text/xml
text/js
 

任意  

text/js  

id  

一意の識別子文字列  

セッション ID  

必須  

該当なし  

maxResults  

整数  

取得するイベントおよび仕事の最大数。0 の場合、最大数は適用されず、検出されたすべてのイベントおよび仕事が返される  

任意  

0  

tzid  

タイムゾーン ID 文字列  

rid パラメータにタイムゾーンが指定されていない場合は、デフォルトのタイムゾーンが使われる

例 : America/Los_Angeles  

任意  

サーバのデフォルトのタイムゾーン  


説明
このコマンドを使用して、指定した 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 章の先頭に戻る]


fetchevents_by_id


目的
指定したカレンダーのイベントを取得します。


パラメータ
表 10-22 は、このコマンドの 7 つのパラメータの一覧です。

表 10-22 fetchevents_by_id のパラメータ 

パラメータ

タイプ

目的

必須/任意

デフォルト

brief  

整数 (0、1)  

JavaScript の簡略出力を出力するかどうかを示すブール値

出力形式 (fmt-out) が JavaScript (text/js) の場合にだけ適用される

1 = 簡略出力
0 = 完全出力
 

任意  

0  

calid  

文字列  

取得するイベントが含まれているカレンダーの一意の識別子  

任意  

現在のユーザの
calid
 

compstate  

コンポーネントの状態のキーワードを、セミコロンで区切ったリスト  

取り込むコンポーネントの状態のリスト

compstate 値については、表 10-5 を参照  

任意  

ALL  

fmt-out  

文字列  

返されるデータの形式

次の形式を指定できる

text/calendar
text/xml
text/js
 

任意  

text/js  

id  

一意の識別子文字列  

セッション ID  

必須  

該当なし  

mod  

整数  

取得する繰り返し修飾子。次の値を指定できる

1 = THISINSTANCE
2 = THISANDFUTURE
3 = THISANDPRIOR
4 = THISANDALL
 

任意  

1

(THISINSTANCE)  

rid  

ISO8601
DateTime Z 文字列
 

イベントの繰り返し ID。繰り返しのないイベントの場合は、0 に設定する  

任意  

0  

tzid  

タイムゾーン ID
文字列
 

rid パラメータにタイムゾーンが含まれていない場合は、このタイムゾーンがデフォルトとして使われる

例 : America/Los_Angeles  

任意  

サーバの
デフォルトの
タイムゾーン
 

uid  

文字列  

イベントの一意の識別子  

必須  

該当なし  


説明
このコマンドを使用して、指定したカレンダーから指定したイベントおよびその繰り返しを取得します。指定するカレンダーが公開カレンダーである場合を除き、コマンドと一緒に id パラメータを指定する必要があります。このコマンドは、mod パラメータで指定した範囲の繰り返しを返します。「繰り返し処理」を参照してください。


出力形式
データは、fmt-out パラメータで指定した形式で返されます。このパラメータを渡さない場合、データはデフォルトの JavaScript 形式で返されます。

JavaScript 出力の場合、イベントは 2 つの配列に分けられます。継続時間の短いイベント (ほとんどの通常のイベント) は、event 配列に出力されます。24 時間以上継続するイベント (終日イベント) は、すべて eventD 配列に出力されます。終日イベントがある場合は、isAllDay フラグがオンになります。


戻り値
データは、fmt-out パラメータで指定した形式で返されます。このパラメータを渡さない場合、データはデフォルトの JavaScript 形式で返されます。


エラーコード
処理に成功した場合は、エラー番号 0 がエラー文字列に追加されます。カレンダーにアクセスできない場合、またはカレンダーが見つからない場合は、エラー番号がエラー文字列に追加されます。

[コマンド一覧に戻る]

[第 10 章の先頭に戻る]


fetchtodos_by_id


目的
指定したカレンダーの仕事を取得します。


パラメータ
表 10-23 は、このコマンドの 7 つのパラメータの一覧です。

表 10-23 fetchtodos_by_id のパラメータ 

パラメータ

タイプ

目的

必須/任意

デフォルト

brief  

整数 (0、1)  

JavaScript の簡略出力を出力するかどうかを示すブール値

出力形式 (fmt-out) が JavaScript (text/js) の場合にだけ適用される

1 = 簡略出力
0 = 完全出力
 

任意  

0  

calid  

文字列  

取得する仕事が含まれているカレンダーの一意の識別子  

任意  

現在のユーザの
calid
 

compstate  

コンポーネントの状態のキーワードを、セミコロンで区切ったリスト  

取り込むコンポーネントの状態のリスト

compstate 値については、表 10-5 を参照  

任意  

ALL  

fmt-out  

文字列  

返されるデータの形式

次の形式を指定できる

text/calendar
text/xml
text/js
 

任意  

text/js  

id  

一意の識別子文字列  

セッション ID  

必須  

該当なし  

mod  

整数  

取得する繰り返し修飾子。次の値を指定できる

1 = THISINSTANCE
2 = THISANDFUTURE
3 = THISANDPRIOR
4 = THISANDALL
 

任意  

1

(THISINSTANCE)  

rid  

ISO8601
DateTime Z
文字列
 

仕事の繰り返し ID。繰り返しのない仕事の場合は、0 に設定する  

任意  

0  

tzid  

タイムゾーン ID 文字列  

rid パラメータにタイムゾーンが指定されていない場合は、デフォルトのタイムゾーンが使われる

例 : America/Los_Angeles  

任意  

サーバの
デフォルトの
タイムゾーン
 

uid  

文字列  

仕事の一意の識別子  

必須  

該当なし  


説明
このコマンドを使用して、指定したカレンダーから指定した仕事およびその繰り返しを取得します。指定するカレンダーが公開カレンダーである場合を除き、コマンドと一緒に id パラメータを指定する必要があります。


出力形式
データは、fmt-out パラメータで指定した形式で返されます。このパラメータを渡さない場合、データはデフォルトの JavaScript 形式で返されます。

JavaScript 出力の場合、イベントは 2 つの配列に分けられます。継続時間の短いイベント (ほとんどの通常のイベント) は、event 配列に出力されます。24 時間以上継続するイベント (終日イベント) は、すべて eventD 配列に出力されます。終日イベントがある場合は、isAllDay フラグがオンになります。


戻り値
calid で指定した各カレンダーから、そのカレンダーの仕事が返されます。仕事に繰り返しがある場合は、rid パラメータおよび mod パラメータの指定に従って、繰り返しが返されます。「繰り返し処理」を参照してください。


エラーコード
処理に成功した場合は、エラー番号 0 がエラー文字列に追加されます。カレンダーにアクセスできない場合、またはカレンダーが見つからない場合は、エラー番号がエラー文字列に追加されます。

[コマンド一覧に戻る]

[第 10 章の先頭に戻る]


get_all_timezones


目的
サーバがサポートしているすべてのタイムゾーンに関するデータを取得します。


パラメータ
表 10-24 は、このコマンドの 4 つのパラメータの一覧です。

表 10-24 get_all_timezones のパラメータ 

パラメータ

タイプ

目的

必須/任意

デフォルト

dtend  

ISO8601
DateTime Z
文字列
 

取得するクロスオーバー値の終了日

値が 0 の場合は、認識されている最後の年 (2087) 以前のクロスオーバー日付がすべて取得される  

任意  

0  

dtstart  

ISO8601
DateTime Z
文字列
 

取得するクロスオーバー値の開始日

値が 0 の場合は、認識されている最初の年 (1987) 以降のクロスオーバー日付がすべて取得される  

任意  

0  

fmt-out  

文字列  

返されるデータの形式

次の形式を指定できる

text/calendar
text/xml
text/js
 

任意  

text/js  

id  

一意の識別子文字列  

セッション ID  

必須  

該当なし  


説明
このコマンドを使用して、サーバがサポートしているすべてのタイムゾーンに関するデータを取得します。クロスオーバー値は、そのタイムゾーンで夏時間が開始/終了する日付になるように定義されています。奇数番目の日付に、夏時間が始まります。偶数番目の日付に、夏時間が終わります。タイムゾーンに夏時間がない場合、この値は空の文字列に設定されます。


戻り値
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 章の先頭に戻る]


get_calprops


目的
カレンダープロパティを取得します


パラメータ
表 10-25 は、このコマンドの 3 つのパラメータの一覧です。

表 10-25 get_calprops のパラメータ 

パラメータ

タイプ

目的

必須/任意

デフォルト

calid  

文字列をセミコロンで区切ったリスト  

プロパティを取得するカレンダーのカレンダー ID のリスト  

任意  

現在のユーザの
calid
 

fmt-out  

文字列  

返されるデータの形式

次の形式を指定できる

text/calendar
text/xml
text/js
 

任意  

text/js  

id  

一意の識別子文字列  

セッション ID  

必須  

該当なし  


説明
このコマンドを使用して、指定したカレンダーのカレンダープロパティを取得します。


戻り値
指定したカレンダーの次のプロパティに関する情報を示すページが返されます。

  • 相対 ID

  • 表示名

  • 親カレンダー ID

  • タイムゾーン ID

  • 読み取りアクセス値 (0 = 読み取り不可、1 = 読み取り可能)

  • 書き込みアクセス値 (0 = 書き込み不可、1 = 書き込み可能)

  • 文字セット (空の場合、デフォルトは us-ascii)

  • 言語 (空の場合、デフォルトは en = 英語)

  • cal-master (連絡先情報。通常は、主な所有者の電子メールアドレス)

  • 説明

  • 最終更新日時

  • 作成日

  • 主な所有者

  • ほかの所有者のリスト (セミコロンで区切られたリスト)

  • カテゴリのリスト (セミコロンで区切られたリスト)


エラーコード
カレンダーは存在しているが、ユーザにそのカレンダーの READ アクセス権がない場合、そのカレンダーのインデックス番号に対応する layer_errno[x] の値は 1 に設定されます。

カレンダーが見つからない場合、そのカレンダーのインデックス番号に対応する layer_errno[x] の値は 2 に設定されます。

カレンダーの取り込みに失敗した場合、そのエラー番号 errno
GET_CALPROPS_FAILED(20) に設定されます。



次の例では、カレンダー jdoesusanpubjohn、および hasdf の順で、カレンダープロパティを取得します。

想定する条件は次のとおりです。

  • ユーザは、カレンダー jdoepub、および john の読み取りアクセス権を持っているが、カレンダー susan の読み取りアクセス権は持っていない。

  • カレンダー hasdf は、データベースに存在しない。

上記の結果は次のようになります。

  • get_calprops.wcap が呼び出されて、カレンダー jdoe、pub、および john に関するデータが返される。それらのインデックスの layer_errno[] の値は、0 である。

  • カレンダー susan に関するデータは返されない。また、このユーザにカレンダーへのアクセス権がないため、layer_errno[1] の値が 1 に設定される。

  • カレンダー hasdf に関するデータは返されない。カレンダーが存在しないため、layer_errno[4] の値が 2 に設定される。

  • カレンダーの取り込みに 1 つでも失敗した場合、そのエラー番号は
    GET_CALPROPS_FAILED(20) に設定される。

URL と返されるデータは、次のようになります。

http://webcalendarserver/get_calprops.wcap?id=2mu95r5so0hq68ts6q3
   &calid=jdoe;susan;pub;john;hasdf

HTTP/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)

new Array())

[コマンド一覧に戻る]

[第 10 章の先頭に戻る]


get_freebusy


目的
ユーザの予定なし/予定あり情報を取得します。


パラメータ
表 10-26 は、このコマンドの 5 つのパラメータの一覧です。

表 10-26 get_freebusy のパラメータ 

パラメータ

タイプ

目的

必須/任意

デフォルト

calid  

文字列をセミコロンで区切ったリスト  

プロパティを取得するカレンダーのカレンダー ID のリスト  

任意  

現在のユーザのデフォルトカレンダー  

dtstart  

ISO8601 DateTime Z 文字列  

予定なし/予定あり検索の開始時刻  

必須  

該当なし  

dtend  

ISO8601 DateTime Z 文字列  

予定なし/予定あり検索の終了時刻  

必須  

該当なし  

fmt-out  

文字列  

返されるデータの形式

次の形式を指定できる

text/calendar
text/xml
text/js
 

任意  

text/js  

id  

一意の識別子文字列  

セッション ID  

必須  

該当なし  


説明
このコマンドは、指定したユーザの予定なし/予定あり情報を取得します。予定なし/予定あり情報は、特定の時間帯にユーザの予定があるかどうかを示します。ただし、その予定の内容はわかりません。


エラーコード
何らかの理由でコマンドの実行に失敗した場合、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 日に検出された予定なし/予定あり情報が生成されます。

出力は text/calendar 形式で返されます。

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-Alive

BEGIN: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-outtext/xml を指定した場合の出力です。

http://webcalendarserver/get_freebusy.wcap?id=2mu95r5so0hq68ts6q3&c alid=jdoe&dtstart=20000501T112233Z&dtend=20000701T112233Z&fmt-out=t ext/xml

text/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>

[コマンド一覧に戻る]

[第 10 章の先頭に戻る]


get_guids


目的
GUID (全体に対して一意の識別子) のセットを生成します。


パラメータ
表 10-27 は、このコマンドの 2 つのパラメータの一覧です。

表 10-27 get_guids のパラメータ 

パラメータ

タイプ

目的

必須/任意

デフォルト

guidCount  

整数  

取得する GUID の数  

任意  

1  

fmt-out  

文字列  

返されるデータの形式

次の形式を指定できる

text/calendar
text/xml
text/js
 

任意  

text/js  


説明
このコマンドは、指定された数の GUID を返します。このコマンドの呼び出しに、クライアントの認証は必要ありません。



URL とその返された出力の例を、3 つの形式で示します。


iCalendar 形式
http://webcalendarserver/get_guids.wcap?guidCount=10
  &fmt-out=text/calendar

BEGIN: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 章の先頭に戻る]


get_userprefs


目的
現在のユーザのカレンダー設定を取得します。


パラメータ
表 10-28 は、このコマンドの 2 つのパラメータの一覧です。

表 10-28 get_userprefs のパラメータ 

パラメータ

タイプ

目的

必須/任意

デフォルト

fmt-out  

文字列  

取得するデータの形式

次の形式を指定できる

text/calendar
text/xml
text/js
 

任意  

text/js  

id  

一意の識別子文字列  

セッション ID  

必須  

該当なし  

userid  

文字列  

管理者専用。取得するユーザの設定を指定する  

任意  

該当なし  


説明
このコマンドは、現在のユーザのすべてのカレンダー設定およびこのユーザに関連している次のサーバ設定を取得します。

  • allowchangepassword。ユーザはパスワードを変更できます

  • allowcreatecalendars。ユーザはカレンダーを作成できます。

  • allowdeletecalendars。ユーザはカレンダーを削除できます。

  • allowpublicwritablecalendars。ユーザは、他のユーザが書き込みできる公開カレンダーを所有できます。

  • validateowners。この値を 1 に設定すると、ディレクトリのメカニズムが LDAP か CSAPI 互換のユーザメカニズムかに関わらず、そのディレクトリ内にカレンダーの所有者が存在することを確約するため検証がサーバによって行われます。

  • allowsetprefs。この値が 1 に設定されている場合は、set_userprefs.wcap を使ってユーザ設定を変更できます。

userid パラメータを使用するには、ics.conf ファイルで、サーバの
service.admin.calmaster.wcap.allowgetmodifyuserprefs が「yes」に設定されている必要があります。また、要求を送信するユーザは、login.wcap コマンドを使用して管理者としてログインしておく必要があります。

サーバ設定の詳細は、『管理者ガイド』を参照してください。



次の URL では、現在のユーザの設定を取得します。

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 章の先頭に戻る]


import


目的
ファイルからイベントおよび仕事をカレンダーにインポートします。


パラメータ
表 10-29 は、このコマンドの 5 つのパラメータの一覧です。

表 10-29 import のパラメータ 

パラメータ

タイプ

目的

必須/任意

デフォルト

calid  

文字列  

イベントのインポート先のカレンダー ID  

必須  

該当なし  

content-in  

文字列  

入力データのコンテンツタイプ。次の値を指定できる
text/calendar
text/xml
 

必須  

該当なし  

dtend  

ISO8601
DateTime
Z 文字列
 

インポートするイベントおよび仕事の終了日時

値が 0 の場合は、ファイル内の最初の日付から最後の日付までのコンポーネントがすべてインポートされる  

任意  

0  

dtstart  

ISO8601
DateTime
Z 文字列
 

インスポートするイベントおよび仕事の開始日時

値が 0 の場合は、ファイル内の最も古い日時から終了日時までのコンポーネントがすべてインポートされる  

任意  

0  

id  

一意の識別子文字列  

セッション ID。カレンダーが公開されている場合を除き、このパラメータは必須  

必須  

該当なし  


説明
このコマンドを使用して、以前に 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 章の先頭に戻る]


login


目的
指定したユーザを認証します。


パラメータ
表 10-30 は、このコマンドの 5 つのパラメータの一覧です。

表 10-30 login のパラメータ 

パラメータ

タイプ

目的

必須/任意

デフォルト

fmt-out  

文字列  

取得するデータの形式

次の形式を指定できる

text/calendar
text/xml
text/js

text/calendar または text/xml の場合、refresh パラメータは自動的に 1 に設定される  

任意  

text/js  

lang  

enum  

ユーザの好みの言語  

任意  

NULL  

password  

文字列  

ユーザのパスワード  

任意  

該当なし  

refresh  

整数 (0、1)  

新しいセッション ID だけを取得するか、またはセッション ID およびその他のパラメータを取得するかどうかを示すブール値

1 = 新しいセッション ID だけを返す
0 = セッション ID およびその他のパラメータを返す
 

任意  

0  

user  

文字列  

ユーザの名前  

任意  

NULL  


説明
このコマンドは、指定したユーザを、ユーザ名とパスワードの規則に基づいて認証し、iPlanet Calendar Server にログインさせます。

ユーザ名は、サーバがユーザを一意に識別するためのプレーンテキスト文字列です。このユーザ名は、たとえば、ユーザの電子メールアドレスでもかまいません。パスワードもプレーンテキストです。


認証
内部認証は、デフォルトの LDAP 認証を使用するか、独自の CSAPI プラグイン経由で既存のユーザ認証方式に接続することによって行われます。CSAPI 認証の詳細は、「csIAuthentication」を参照してください。プロキシ認証 SDK の詳細は、第 6 章の概要および第 7 章の API リファレンスを参照してください。

ユーザの認証に失敗した場合は、ログインに失敗したことを示すエラーメッセージがログインウィンドウに表示されます。



たとえば、次の URL は、ユーザ jdoe としてログインします。

http://webcalendarserver/login.wcap?user=jdoe&password=mypword


戻り値
refresh パラメータを渡さないで、fmt-outtext/js を指定した場合、refresh パラメータのデフォルト値は 0 になります。fmt-outtext/calendar または text/xml を指定した場合、そのデフォルト値は 1 になります。

refresh パラメータに 1 を指定した場合、返されるページには、次のようなセッション ID が 1 行含まれます。

var id='bu9p3eb8x5p2nm0q3'

これは、非公開カレンダーにアクセスする場合に、さまざまな 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 章の先頭に戻る]


logout


目的
現在のユーザのセッションを終了します。


パラメータ
表 10-31 は、このコマンドの 2 つのパラメータの一覧です。

表 10-31 logout のパラメータ 

パラメータ

タイプ

目的

必須/任意

デフォルト

fmt-out  

文字列  

取得するデータの形式

次の形式を指定できる

text/calendar
text/xml
text/js
 

任意  

text/js  

id  

一意の識別子文字列  

セッション ID  

必須  

該当なし  


説明
このコマンドは、指定したユーザのセッションを終了し、セッションテーブル上のユーザのセッションインスタンスを削除します。ユーザはログイン画面に戻ります。

このコマンドを使用した URL の例を次に示します。

http://webcalendarserver/logout.wcap?id=bu9p3eb8x5p2nm0q3

[コマンド一覧に戻る]

[第 10 章の先頭に戻る]


ping


目的
カレンダーサーバがアクティブかどうかを調べます。


パラメータ
このコマンドにパラメータは必要ありません。


説明
このコマンドは、サーバの応答だけを示す最小限の HTML ページを返します。

このコマンドを使用できるのは、管理権限を持つユーザだけです。


戻り値
次の例では、管理者の useridcalid は、両方とも 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 章の先頭に戻る]


search_calprops


目的
カレンダープロパティを検索します


パラメータ
表 10-32 は、このコマンドの 7 つのパラメータの一覧です。

表 10-32 search_calprops のパラメータ 

パラメータ

タイプ

目的

必須/任意

デフォルト

calid  

整数 (0、1)  

calid プロパティを検索するかどうかを示すブール値

1 = calid プロパティを検索する
0 = 検索しない
 

任意  

0 (primaryOwnername が両方とも 0 の場合を除く)  

id  

一意の ID 文字列  

セッション ID  

必須  

該当なし  

maxResults  

整数  

返される結果の最大数  

任意  

200  

name  

整数 (0、1)  

name プロパティを検索するかどうかを示すブール値

1 = name プロパティを検索する
0 = 検索しない
 

任意  

0  

primaryOwner  

整数 (0、1)  

primaryOwner プロパティを検索するかどうかを示すブール値

1 = primaryOwner プロパティを検索する
0 = 検索しない
 

任意  

0  

searchOpts  

整数

0、1、2、3  

検索の実行方法。次の値を指定できる

0 = CONTAINS
1 = BEGINS_WITH
2 = ENDS_WITH
3 = EXACT
 

任意  

0  

search-string  

文字列  

カレンダー内で検索する文字列  

必須  

該当なし  


説明
このコマンドは、searchOpts で指定したクエリータイプを使用して、カレンダーを検索します。指定したプロパティ (primaryOwnercalidname) の文字列が、指定した searchOpts の検索方法に基づいて、search-string と一致するすべてのカレンダーのカレンダープロパティが返されます。ただし、返されるプロパティ数は、最大で maxResults に指定された数までです。


検索するプロパティ
このコマンドは、次の 3 つのプロパティの 1 つと一致する文字列を検索します。

  • calid。カレンダーの一意の識別子

  • name。カレンダーの共通名 (テキスト)

  • primaryOwner。カレンダーの主な所有者。

特定のプロパティの値を検索するには、そのパラメータを 1 に設定します。
primaryOwner および name0 に設定すると、calid はデフォルトで 1 になります。また、calid パラメータの文字列にかかわらず、search-stringcalid と見なされます。


検索オプション
次の 4 つの検索オプションがあります。

  • search-string を含むカレンダープロパティを返す (CONTAINS)

  • search-string で始まるカレンダープロパティを返す (BEGINS_WITH)

  • search-string で終わるカレンダープロパティを返す (ENDS_WITH)

  • search-string と完全に一致するカレンダープロパティを返す (EXACT)



次の URL の例では、すべてのカレンダーから、文字列「susan」を含む(searchOpts=0)、主な所有者のプロパティ (primaryOwner=1) が検索されます。

http://webcalendarserver/search_calprops.wcap?id=b2nehr3eq6bh5s
&search-string=susan&primaryOwner=1&searchOpts=0&maxResults=50

返されたデータの calsize 変数には、出力として返されたカレンダーの数が指定されています。

次のデータはこの URL の結果です。

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 章の先頭に戻る]


set_calprops


目的
カレンダーのカレンダープロパティを設定します。


パラメータ
表 10-33 は、このコマンドの 15 個のパラメータの一覧です。

表 10-33 set_calprops のパラメータ 

パラメータ

タイプ

目的

必須/任意

デフォルト

acl  

文字列  

アクセスコントロールエントリの新しい値を指定した文字列を、セミコロンで区切ったリスト  

任意  

,,,,  

cal  

符号化文字列  

復号化するパラメータのリスト

このパラメータの複数のインスタンスを指定できる  

任意  

該当なし  

calid  

文字列  

変更するカレンダーの識別子  

必須  

該当なし  

categories  

文字列  

カレンダーが属する新しいカテゴリを指定した文字列を、セミコロンで区切ったリスト  

任意  

該当なし  

charset  

文字列  

カレンダーの文字セット  

任意  

該当なし  

description  

文字列  

カレンダーの説明文  

任意  

該当なし  

fmt-out  

文字列  

取得するデータの形式

次の形式を指定できる

text/calendar
text/xml
text/js
 

任意  

text/js  

id  

一意の識別子文字列  

セッション ID  

必須  

該当なし  

lang  

文字列  

カレンダーの言語  

任意  

該当なし  

master  

文字列  

カレンダーの連絡先電子メールアドレス  

任意  

該当なし  

multiple  

整数  

これらの設定を設定するカレンダーの数  

任意  

0  

name  

文字列  

カレンダーの新しいテキスト名  

任意  

該当なし  

owners  

文字列  

主な所有者以外の新しい所有者を指定した文字列を、セミコロンで区切ったリスト  

任意  

該当なし  

read  

整数  

このパラメータは、バージョン 5.0 では機能しない。2.x との下位互換性を保持するために残されている。このパラメータの代わりに、acl パラメータを使用してください

カレンダーの新しい読み取りアクセス値。次の値を指定できる

0 PRIVATE
1 PUBLIC
4
PRIMARY_OWNER_ONLY
 

任意  

該当なし  

tzid  

文字列  

このカレンダーの新しいタイムゾーン ID  

任意  

,,,,  

write  

整数  

このパラメータは、バージョン 5.0 では機能しない。2.x との下位互換性を保持するために残されている。このパラメータの代わりに、acl パラメータを使用してください

カレンダーの新しい書き込みアクセス値。次の値を指定できる

0 PRIVATE
1 PUBLIC
4
PRIMARY_OWNER_ONLY
 

任意  

該当なし  


説明
このコマンドは、指定されたパラメータ値だけを変更します。つまり、2.x のような置換コマンドではなく、更新コマンドとして機能します。すべてのパラメータをコマンドに指定する必要はありません。変更するパラメータだけを指定します。カレンダープロパティとは、カレンダーの名前、読み取り/書き込みアクセス権の値 (acl パラメータ)、所有者のリスト、およびカテゴリのリストなど、カレンダー固有の状態のことです。

バージョン 5.0 では、read パラメータおよび write パラメータは使用できません。この機能は、acl パラメータに置き換えられています。これらのパラメータは 2.x との下位互換性を保持するために残されています。

set_calprops を使用して次の操作を行います。

  • カレンダーの名前を変更する

  • カレンダーの所有者を変更する

  • カレンダーのカテゴリを変更する

  • カレンダーのイベントの読み取りアクセス権を変更する

  • カレンダーのイベントの書き込みアクセス権を変更する

  • カレンダーの説明文を変更する

  • カレンダーの文字セットを変更する

  • カレンダーの言語を変更する

  • カレンダーの連絡先電子メールアドレスを変更する

  • カレンダーのタイムゾーン ID を変更する


単一カレンダーの例
次の例は、カレンダープロパティを設定するサンプル 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 進コードは、次のとおりです。

文字

コード

=

%3D

&

%26

"

%22

たとえば、次の URL では、ID が xxxxyyyy、および zzzz である 3 つのカレンダーの説明文が、それぞれ X-CalendarY-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-Calendar

この URL は、次の 3 つの URL と等価です。

http://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 章の先頭に戻る]


set_userprefs


目的
セッションの設定またはパスワードを変更します。


パラメータ
表 10-34 は、このコマンドの 5 つのパラメータの一覧です。

表 10-34 set_userprefs のパラメータ 

パラメータ

タイプ

目的

必須/任意

デフォルト

add_attrs  

文字列  

新しい設定を追加する  

任意  

該当なし  

convertCalid  

整数 (01)  

このパラメータを 1 に設定し、icsSet または icsSubscribed を設定すると、calid を登録するときに、文字「^」が「:」に変換される

0 に設定すると、そのパラメータは無視される  

任意  

0  

del_attrs  

文字列  

既存の設定を削除する  

任意  

該当なし  

fmt-out  

文字列  

取得するデータの形式

次の形式を指定できる

text/calendar
text/xml
text/js
 

必須  

text/js  

id  

一意の ID 文字列  

セッション ID  

必須  

該当なし  

set_attrs  

文字列  

設定値を変更する  

任意  

該当なし  

userid  

文字列  

管理者専用。ユーザ設定を行う対象ユーザのユーザ ID を示す  

任意  

該当なし  


説明
このコマンドは、現在のユーザ設定を変更します。ユーザのパスワードを、LDAP を介して変更することもできます。

パラメータ convertCal は、カレンダーの予約購読リスト (icsSubscribed) またはグループの予約購読リスト (icsSet) を設定する場合にだけ使用します。着信したコマンドの calid では、コロン「:」がキャレット「^」に置き換えられていなければなりません。たとえば、calidjdoe:personal の場合、コマンドが正しく機能するには、WCAP は jdoe^personal として受け取る必要があります。

convertCalid の値が 1 になっている場合は、WCAP によって「^」が「:」に戻されます。convertCalid の値が 0 の場合、この変換は行われません。

管理者がログインしているときに、ics.conf ファイルの service.admin.calmaster.wcap.allowgetmodifyuserprefs が「yes」に設定されている場合は、userid パラメータには設定対象のユーザ ID を指定します。


戻り値
get_userprefs のテキストを返します。



たとえば、次の 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 章の先頭に戻る]


storeevents


目的
イベントをカレンダーに追加します。


パラメータ
表 10-35 は、このコマンドの 43 個のパラメータの一覧です。

表 10-35 storeevents のパラメータ 

パラメータ

タイプ

目的

必須/任意

デフォルト

alarmAudio  

ISO8601 Date
Time Z 文字列
 

オーディオアラームを再生する時刻  

任意  

該当なし  

alarmEmails  

電子メールアドレスをセミコロンで区切ったリスト  

イベントのアラーム通知の受信者  

任意  

該当なし  

alarmFlashing  

ISO8601 Date
Time Z 文字列
 

フラッシュアラームを実行する時刻  

任意  

該当なし  

alarmPopup  

ISO8601 Date
Time Z 文字列
 

ダイアログアラームを表示する時刻  

任意  

該当なし  

alarmStart  

ISO8601
DateTime Z
文字列
 

イベントのアラーム通知を送信する時刻  

任意  

該当なし  

attachments  

文字列をセミコロンで区切ったリスト  

iCalendar と相互運用するときのパラメータ。
文字列は URL
 

任意  

該当なし  

attendees  

文字列をセミコロンで区切ったリスト  

イベントの参加者  

任意  

該当なし  

brief  

整数 (01)  

JavaScript の簡略出力を出力するかどうかを示すブール値

出力形式 (fmt-out) が JavaScript (text/js) の場合にだけ適用される

1 = 簡略
0 = 完全
 

任意  

0  

calid  

文字列  

イベントの登録先のカレンダー ID  

必須  

該当なし  

categories  

文字列をセミコロンで区切ったリスト  

イベントのカテゴリ  

任意  

該当なし  

contacts  

文字列をセミコロンで区切ったリスト  

イベントの連絡先  

任意  

該当なし  

desc  

文字列  

イベントの目的の説明文。任意の長さの文字列。このパラメータを渡さない場合、descsummary 値に設定される

文字列にスペースを含める場合は、コード %20 を使用する  

任意  

summary
パラメータの値
 

dtend  

ISO8601
DateTime Z
文字列
 

イベントの終了日時  

任意  

該当なし  

dtstart  

ISO8601
DateTime Z
文字列
 

イベントの開始日時

イベントを変更するときは必要なし

イベントを作成するときに必要  

任意

必須  

該当なし  

duration  

ISO8601
継続時間文字列
 

イベントの継続時間。イベントに durationdtend が指定されている場合、duration は無視される  

任意  

該当なし  

exdates  

ISO8601
DateTime Z 文字列をセミコロンで区切ったリスト
 

除外するイベント繰り返し日付  

任意  

該当なし  

exrules  

文字列をセミコロンで区切ったリスト  

除外するイベント繰り返し規則。繰り返し規則の文字列をセミコロンで区切ったリスト

各規則の値は、二重引用符で囲むことが必要。「繰り返し処理」を参照  

任意  

該当なし  

fetch  

整数 (01)  

新しく登録された仕事を取り込んで返すかどうかを示すブール値

1 = 新しく登録された仕事を取得して返す
0 = 返さない
 

任意  

0  

fmt-out  

文字列  

取得するデータの形式

次の形式を指定できる

text/calendar
text/xml
text/js
 

任意  

text/js  

geo  

セミコロンで区切られた 2 つの実数  

イベントの地理的位置を表す 2 つの実数 (緯度と経度) を、セミコロンで区切った文字列

たとえば、37.31;-123.2 のように指定する  

任意  

0;0  

icsClass  

文字列  

イベントのクラス

次の値を指定できる

PUBLIC
PRIVATE
CONFIDENTIAL
 

任意  

PRIVATE  

icsUrl  

文字列  

イベントの URL  

任意  

""  

id  

一意の識別子文字列  

セッション ID  

必須  

該当なし  

isAllDay  

整数 (0、1)  

イベントが終日イベントかどうかを示すブール値

1 = 終日イベント
0 = 終日イベントではない
 

任意  

0  

language  

文字列  

イベントの言語 (例 : 「en」、「fr」、「de」)  

任意  

該当なし  

location  

文字列  

イベントの場所  

任意  

""  

method  

整数 (124816,32)  

グループスケジューリングの ITIP メソッド

1 = PUBLISH (開催者専用)
2 = REQUEST (開催者専用)
4 = REPLY (参加者専用)
8 = CANCEL (開催者専用)
16 = MOVE
32
= COUNTER (参加者専用)
 

任意  

1
(PUBLISH)
 

mod  

整数  

登録または変更する繰り返しを指定する

イベントを作成するときは必要なし

イベントを変更するときに必要

次の値を指定できる

1 = THISINSTANCE
2 = THISANDFUTURE
3 = THISANDPRIOR
4 = THISANDALL
 


任意

必須  

該当なし  

notify  

整数 (01)  

このパラメータは 5.0 では使用できない。2.x との下位互換性を保持するために残されている。GSE (Group Scheduling Engine) モジュールでは、すべての電子メール通知が処理される

参加者にイベントの変更を通知するかどうかを示すブール値

1 = 参加者に通知する
0 = 参加者に通知しない
 

任意  

0  

orgEmail  

電子メールアドレス  

イベントの連絡先 (通常、開催者) の電子メールアドレス  

任意  

該当なし  

orgUID  

userid  

開催者の userid  

任意  

該当なし  

priority  

整数 (0 〜 9)  

イベントの優先順位

0 = 最も低い優先順位
9 = 最も高い優先順位
 

任意  

0  

rchange  

整数 (01)  

繰り返しイベントを継続するかどうかを示すブール値

1 = 継続する
0 = 継続しない
 

任意  

1  

rdates  

ISO8601
DateTime Z 文字列をセミコロンで区切ったリスト
 

イベントの繰り返し日付  

任意  

該当なし  

relatedTos  

二重引用符で囲んだ文字列をセミコロンで区切ったリスト  

このイベントに関連するほかのイベント  

任意  

該当なし  

resources  

文字列をセミコロンで区切ったリスト  

イベントに関連付けられたリソース  

任意  

該当なし  

rid  

ISO8601
DateTime Z 文字列
 

イベントの繰り返し ID

イベントを作成するときは必要なし

イベントを変更するときに必要  

任意

必須  

該当なし  

rrules  

文字列を
セミコロンで区切ったリスト
 

イベントの繰り返し規則。繰り返し規則の文字列をセミコロンで区切ったリスト

各規則の値は、二重引用符で囲む必要がある。「繰り返し処理」を参照  

任意  

該当なし  

seq  

整数  

イベントのシーケンス番号  

任意  

0  

status  

整数  

イベントの状態コード。次の値を指定できる

0 CONFIRMED
1 CANCELLED
2 TENTATIVE
3 NEEDS_ACTION
4 COMPLETED
5 IN_PROCESS
6 DRAFT
7 FINAL
 

任意  

該当なし  

summary  

文字列  

イベントの要約。任意の長さの文字列

新しいイベントを作成するときに必要

イベントを変更するときは必要なし

文字列にスペースを含める場合は、コード %20 を使用する  


必須

任意  


該当なし

default
summary
 

tzid  

タイムゾーン ID 文字列
「America/Los_Angeles」など
 

タイムゾーン。サーバに渡された、またはサーバから返されたあらゆる日付の解釈に使用される

デフォルトは、世界協定時刻 (UTC または Z 形式)  

任意  

"GMT"  

uid  

文字列  

登録されるイベントの一意の識別子

新しいイベントの場合は、システムによって生成される

イベントを変更するときに必要になる  

任意

必須  

該当なし

default
uid
 


説明
このコマンドは、指定された属性を持つイベントの作成、変更、およびデータベース内の指定されたカレンダーへの登録を行います。

このコマンドは、rrules、exrulesridmod、および rchange パラメータの指定に従って、繰り返しを作成および登録します。「繰り返し処理」を参照してください。

notify 値が 1 の場合、IMIP PUBLISH メッセージがイベントのすべての参加者に送信されます。

イベントの言語を指定するには、language パラメータを使用します。使用可能な言語コードのリストについては、「ほかの言語または文字セットの選択」を参照してください。

カレンダーサーバでは、ファイルの添付はサポートされていません。attachments パラメータは、iCalendar と相互運用するときに使います。カレンダーサーバでは機能しません。


戻り値
fmt-out パラメータを text/calendar または text/xml に設定すると、次のように HTML コメントの中にエラー値だけが返されます。

<!-- store_errno="0" -->

fmt-out パラメータを text/js に設定するか、設定しなかった (このパラメータのデフォルトは text/js) 場合、このコマンドは、fetchcomponents_by_range.wcap コマンドが返した JavaScript を返します。


エラーコード
このコマンドを使用してリンクされているイベントを変更することはできません。変更しようとすると、コマンドの実行が失敗し、errno 配列に CANNOT_MODIFY_LINKED_EVENTS(31) が返されます。

すでに予定が設定されている時間枠にイベントを登録しようとすると (二重予約)、コマンドの実行が失敗し、エラー STORE_FAILED_DOUBLE_BOOKED(40) が返されます。


必要なパラメータ
このコマンドを使って、新しいイベントの作成や、既存のイベントの変更を行います。必要なパラメータは、実行する内容によって次のように異なります。

  • 新しいイベントを作成する場合は、次の 2 つのパラメータだけが必要になります。

    • dtstart

    • summary

    その他のパラメータはすべてオプションです。uid は、サーバによって生成されます。

  • 既存のイベントを変更する場合は、次の 3 つのパラメータが必要です。

    その他のパラメータはすべてオプションです。パラメータを指定しなかった場合は、プロパティの以前の値が保持されます。


継続時間
duration は、次のように ISO8601 形式で指定します。

  • P1Y2M3DT1H30M10S は、1 年、2 か月、3 日、1 時間、30 分、10 秒の継続時間を表します。

  • PT1H30M は、1 時間 30 分の継続時間を表します。

  • P1D は、1 日の継続時間を表します。

  • PT15M は、15 分の継続時間を表します。

文字列に含まれる文字 T で、日付情報 (年、月、日) と時刻情報 (時、分、秒) を区切ります。



ヒント   終了日時 (dtend) は、duration よりも優先されます。durationdtend の両方を指定すると、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 パラメータ
グループスケジュールイベントを作成するときに最も重要なパラメータは、attendeemethod です。attendee パラメータは、参加者エントリをセミコロンで区切ったリストです。次に、参加者エントリについて説明します。

各参加者エントリには、イベントの参加状況や返答が必要かどうかなど、いくつかのパラメータが含まれます。これらのすべてのパラメータには、iCalendar の仕様 (RFC 2445) に定義されている ATTENDEE プロパティと似た構文が使用されています。WCAP の attendee の構文を理解するには、このドキュメントにすべて目を通し、必要な基本情報を理解されることをお勧めします。 WCAP では、パラメータの区切り文字として「^」を使用するなど、いくつかの違いがあります。ただし、複数の参加者を区切るときは、iCalendar で標準に使われるセミコロンを使用します。

たとえば、iCalendar では、次のような構文が使用されます。

PARSTAT=ACCEPTED;RSVP=TRUE:mailto:abc@xyz.com

WCAP では、次のように記述します。

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 パラメータ 

パラメータ

目的

PARTSTAT  

必須のパラメータ。参加者の参加状態を示す  

CUTYPE  

カレンダーユーザのタイプ  

MEMBER  

参加者が所属するグループのリスト。WCAP ではこれらのグループは使用されない  

ROLE  

この会議での参加者の役割  

RSVP  

参加者の返答が必要かどうか  

DELEGATED-TO  

出席を委任されたユーザ  

DELEGATED-FROM  

出席を委任したユーザ  

SENT-BY  

指定したユーザの代理を務めるカレンダーユーザ  

CN  

参加者の表示名  

DIR  

ディレクトリエントリ参照  

LANG  

エントリの言語  


グループスケジューリング - method パラメータ
method パラメータを使用して、出席依頼、返答、キャンセルなど、使用するメッセージのタイプを指定します。

出席依頼では、次の 3 つのメッセージタイプを使用できます。

  • 開催者が出席を依頼する

    開催者が会議を作成する場合、次の 2 つの方法で出席を依頼します。

    • PUBLISH メッセージの送信。会議を作成または変更して、参加者に通知します。method パラメータを「1」に設定します。

    • REQUEST メッセージの送信。会議を作成または変更して、参加者からの返答を要求します。method パラメータを「2」に設定します。

    PUBLISH または REQUEST メッセージを送信できるのは、会議の開催者だけです。

  • 参加者が出席依頼に対して返答する

    参加者が REPLY メッセージを送信する。出席依頼を承諾するか辞退するかを通知します。method パラメータを「4」に設定します。

  • 開催者が会議をキャンセルする

    開催者が会議をキャンセルする場合は、deleteevents コマンドを使って CANCEL を送信することにより、参加者に通知されます。method パラメータを「8」に設定します。


      キャンセルするときは、storeevents ではなく、deleteevents コマンドを使用することをお勧めします。



次の例は、開催者「org」が参加者「attA」および「attB」に会議への出席を依頼する場合の WCAP コマンドを示しています。参加者「attA」は出席依頼を承諾し、参加者「attB」は辞退します。会議の uid は、「event_u1」です。イベントは、両方の参加者のカレンダーに作成されます。各参加者は、各自のカレンダーでイベントに返答します。この返答は、iPlanet Calendar Server 5.0 の Group Scheduling Engine から開催者のカレンダーに返信されます。

出席依頼

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/xml

承諾

storeevents.wcap?id=${SESSIONID ofattA}&calid=attA&uid=event_u1
   &method=4&attendees=PARTSTAT=ACCEPTED^RSVP=TRUE^attA
   &fmt-out=text/xml

出席の辞退

storeevents.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 章の先頭に戻る]


storetodos


目的
1 つまたは複数の仕事をカレンダーに追加します。


パラメータ
表 10-37 は、このコマンドの 44 個のパラメータの一覧です。

表 10-37 storetodos のパラメータ 

パラメータ

タイプ

目的

必須/任意

デフォルト

alarmAudio  

ISO8601Date Time
Z 文字列
 

オーディオアラームを再生する時刻  

任意  

該当なし  

alarmEmails  

電子メールアドレスをセミコロンで区切ったリスト  

仕事のアラーム通知の受信者  

任意  

該当なし  

alarmFlashing  

ISO8601 Date Time
Z 文字列
 

フラッシュアラームを実行する時刻  

任意  

該当なし  

alarmPopup  

ISO8601 Date Time
Z 文字列
 

ダイアログアラームを表示する時刻  

任意  

該当なし  

alarmStart  

ISO8601 DateTime
Z 文字列
 

仕事のアラーム通知を送信する時刻  

任意  

該当なし  

attachments  

文字列をセミコロンで区切ったリスト  

このパラメータは、iCalendar と相互運用するときのパラメータ。文字列は URL  

任意  

該当なし  

attendees  

文字列をセミコロンで区切ったリスト  

仕事の参加者  

任意  

該当なし  

brief  

整数 (0、1)  

JavaScript の簡略出力を出力するかどうかを示すブール値

出力形式 (fmt-out) が JavaScript (text/js) の場合にだけ適用される

1 = 簡略出力
0 = 完全出力
 

任意  

0  

calid  

文字列  

仕事の登録先のカレンダー ID  

必須  

該当なし  

categories  

文字列をセミコロンで区切ったリスト  

仕事のカテゴリ  

任意  

該当なし  

completed  

ISO8601 DateTime
Z 文字列
 

仕事の完了日。値が 0 の場合は、仕事が完了していないことを意味する  

任意  

0  

contacts  

文字列をセミコロンで区切ったリスト  

仕事の連絡先  

任意  

該当なし  

desc  

文字列  

仕事の目的。任意の長さの文字列

このパラメータを渡さない場合、descsummary 値に設定される

文字列にスペースを含める場合は、コード %20 を使用する  

任意  

summary
パラメータ
の値
 

dtstart  

ISO8601 DateTime
文字列
 

仕事の開始日時

仕事を変更するときは必要なし

仕事を作成するときに必要  

任意


必須
 

該当なし  

due  

ISO8601 DateTime
Z 文字列
 

仕事の終了日時  

任意  

該当なし  

duration  

ISO8601 継続時間
文字列
 

仕事の継続時間  

任意  

該当なし  

exdates  

ISO8601 DateTime
Z 文字列をセミコロンで区切ったリスト
 

除外する仕事繰り返し日付  

任意  

該当なし  

exrules  

文字列をセミコロンで区切ったリスト  

除外する仕事繰り返し規則。繰り返し規則の文字列をセミコロンで区切ったリスト

各規則の値は、二重引用符で囲むことが必要。「繰り返し処理」を参照  

任意  

該当なし  

fetch  

整数 (01)  

新しく登録された仕事を取り込んで返すかどうかを示すブール値

1 = 新しく登録された仕事を取得して返す
0 = 返さない
 

任意  

0  

fmt-out  

文字列  

取得するデータの形式

次の形式を指定できる

text/calendar
text/xml
text/js
 

任意  

text/js  

geo  

セミコロンで
区切った 2 つの
実数
 

仕事の地理的位置を表す 2 つの実数 (緯度と経度) を、セミコロンで区切った文字列

たとえば、37.31;-123.2 のように指定する  

任意  

0;0  

icsClass  

文字列  

仕事のクラス。次の値を指定できる

PUBLIC
PRIVATE
CONFIDENTIAL
 

任意  

PRIVATE  

icsUrl  

文字列  

仕事の URL  

任意  

""  

id  

一意の識別子文字列  

セッション ID  

必須  

該当なし  

isAllDay  

整数 (01)  

終日の仕事かどうかを示すブール値

1 = 終日の仕事
0 = 終日の仕事ではない
 

任意  

0  

language  

文字列  

仕事の言語 (例 : 「en」、「fr」、「de」)  

任意  

該当なし  

location  

文字列  

仕事の場所  

任意  

""  

method  

整数 (1、2、4、8、16、32)  

グループスケジューリングの ITIP メソッド

次の値を指定できる

1 = PUBLISH
2
= REQUEST
4
= REPLY
8
= CANCEL
16
= MOVE
32
= COUNTER
 

任意  

1 (PUBLISH)  

mod  

整数  

登録または変更する繰り返しを指定する

新しい仕事を作成するときは必要なし

仕事を変更するときに必要

次の値を指定できます

1 = THISINSTANCE
2 = THISANDFUTURE
3 = THISANDPRIOR
4 = THISANDALL
 

任意

必須  

該当なし  

notify  

整数

0,1  

このパラメータは 5.0 では使用できない。2.x との下位互換性を保持するために残されている。GSE (Group Scheduling Engine) モジュールでは、電子メール通知が処理される

参加者に仕事の変更を通知するかどうかを示すブール値

1 = 参加者に変更を通知する
0 = 参加者に通知しない
 

任意  

0  

orgEmail  

電子メールアドレス  

仕事の連絡先電子メールアドレス
(通常、開催者の電子メールアドレス)
 

任意  

該当なし  

orgUID  

userid  

開催者の userid  

任意  

該当なし  

percent  

整数 (0100)  

仕事の完了率  

任意  

0  

priority  

整数 (09)  

仕事の優先順位

0 = 最も低い優先順位
9 = 最も高い優先順位
 

任意  

0  

rchange  

整数 (0、1)  

繰り返し仕事を継続するかどうかを示すブール値

1 = 繰り返し仕事を継続する
0 = 継続しない
 

任意  

1  

rdates  

ISO8601 DateTime Z 文字列をセミコロンで区切ったリスト  

仕事の繰り返し日付  

任意  

該当なし  

relatedTos  

二重引用符で囲んだ文字列をセミコロンで区切ったリスト  

この仕事に関連するほかの仕事  

任意  

該当なし  

resources  

文字列をセミコロンで区切ったリスト  

仕事に関連付けられたリソース  

任意  

該当なし  

rid  

ISO8601 DateTime Z 文字列  

仕事の繰り返し ID

新しい仕事を作成するときは必要なし

仕事を変更するときに必要  

任意

必須  

該当なし  

rrules  

文字列をセミコロンで区切ったリスト  

仕事の繰り返し規則。繰り返し規則の文字列をセミコロンで区切ったリスト

各規則の値は、二重引用符で囲む必要がある。「繰り返し処理」を参照  

任意  

該当なし  

seq  

整数  

仕事のシーケンス番号  

任意  

0  

status  

整数  

仕事の状態コード。次の値を指定できる

0 CONFIRMED
1 CANCELLED
2 TENTATIVE
3 NEEDS_ACTION
4 COMPLETED
5 IN_PROCESS
6 DRAFT
7 FINAL
 

任意  

該当なし  

summary  

文字列  

仕事の要約。任意の長さの文字列

新しい仕事を作成するときに必要

仕事を変更するときは必要なし

文字列にスペースを含める場合は、コード %20 を使用する  

必須


任意
 

default
summary

該当なし  

tzid  

タイムゾーン ID 文字列。「America/
Los_Angeles」など
 

タイムゾーン。すべての日付は、このタイムゾーンを参照して解釈される

タイムゾーンを渡さない場合、すべての日付は世界協定時刻 (UTC または Z 形式) として解釈される  

任意  

"GMT"  

uid  

文字列  

登録する仕事の一意の識別子

新しい仕事の場合は、システムによって生成される

仕事を変更するときに必要  

任意

必須  

該当なし

default uid  


説明
このコマンドは、指定した属性を持つ仕事の作成、変更、およびデータベース内の指定したカレンダーへの登録を行います。

このコマンドは、rrulesexrulesridmod、および 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 コメントの中にエラー値だけが返されます。

<!-- store_errno="0" -->

fmt-out パラメータを text/js に設定するか、設定しなかった (このパラメータのデフォルトは text/js) 場合、このコマンドは、fetchcomponents_by_range.wcap コマンドが返した JavaScript を返します。


エラーコード
このコマンドを使用してリンクされている仕事を変更することはできません。変更しようとするとコマンドの実行が失敗し、errno 配列に CANNOT_MODIFY_LINKED_TODOS(32) が返されます。

すでに予定が設定されている時間枠に仕事を登録しようとすると (二重予約)、コマンドの実行が失敗し、エラー STORE_FAILED_DOUBLE_BOOKED(40) が返されます。


必要なパラメータ
このコマンドを使って、新しい仕事の作成や、既存の仕事の変更を行います。必要なパラメータは、実行する内容によって次のように異なります。

  • 新しい仕事を作成する場合は、次の 2 つのパラメータだけが必要です。

    • dtstart

    • summary

    その他のパラメータはすべてオプションです。uid は、サーバによって生成されます。

  • 既存の仕事を変更する場合は、次の 3 つのパラメータが必要です。

    その他のパラメータはすべてオプションです。パラメータを指定しなかった場合は、プロパティの以前の値が保持されます。


継続時間
期限 (due) は、duration よりも優先されます。durationdue の両方を指定すると、duration は無視されます。

継続時間は、次のように ISO8601 形式で指定します。

  • P1Y2M3DT1H30M10S は、1 年、2 か月、3 日、1 時間、30 分、10 秒の継続時間を表します。

  • PT1H30M は、1 時間 30 分の継続時間を表します。

  • P1D は、1 日の継続時間を表します。

  • PT15M は、15 分の継続時間を表します。

文字列に含まれる文字 T で、日付情報 (年、月、日) と時刻情報 (時、分、秒) を区切ります。

[コマンド一覧に戻る]

[第 10 章の先頭に戻る]


upload_file


目的
ファイルをサーバにアップロードします。ファイルのインポート用の write_file と組み合わせて使用します。


パラメータ
表 10-38 は、このコマンドのパラメータです。

表 10-38 upload_file パラメータ

パラメータ

タイプ

目的

必須/任意

デフォルト

idt  

一意の識別子文字列  

セッション ID  

必須  

該当なし  


説明
このコマンドは、write_file と組み合わせて、iPlanet Calendar Server 2.0 互換のファイルをインポートします。ファイルを添付するため、POST を使用する必要があります。

ファイルのインポートは、UI を使用して次のように処理されます。

  • upload_file コマンドを使って、ユーザのコンピュータのファイルをサーバにアップロードします。upload_file コマンドは、POST でなければなりません。

  • アップロードした 1 つまたは複数のファイル名を取得し、write_file コマンドを使用してデータベースに書き込みます。

このように処理が分かれるのは、パラメータ値と添付ファイルの両方を JavaScript UI で連結して処理できないためです。また、この分離によって、実際にファイルをデータベースに書き込む前に、複数のファイルをサーバにアップロードすることができます。


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 章の先頭に戻る]


version


目的
現在の WCAP バージョンを取得します。


パラメータ
表 10-39 は、コマンドのパラメータです。

表 10-39 version のパラメータ

パラメータ

タイプ

目的

必須/任意

デフォルト

fmt-out  

文字列  

取得するデータの形式

次の形式を指定できる

text/calendar
text/xml
text/js
 

任意  

text/js  


説明
このコマンドは、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:VCALENDAR

  • XML: (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 章の先頭に戻る]


write_file


目的
ファイルをデータベースに書き込みます。


パラメータ
表 10-40 は、このコマンドの 6 つのパラメータの一覧です。

表 10-40 write_file のパラメータ 

パラメータ

タイプ

目的

必須/任意

デフォルト

calid  

文字列  

ファイルのインポート先カレンダー  

必須  

該当なし  

content-in  

文字列  

入力データのコンテンツタイプ  

必須  

該当なし  

dtend  

ISO8601
DateTime
"Z" 文字列
 

インポートするイベントの終了範囲

値が 0 の場合は、時間の最後までのイベントがすべてインポートされる  

任意  

0  

dtstart  

ISO8601
DateTime
"Z" 文字列
 

インポートするイベントの開始範囲

値が 0 の場合は、時間の最初からのイベントがすべてインポートされる  

任意  

0  

id  

一意の識別子文字列  

セッション ID  

必須  

該当なし  

uniquefilename  

文字列をセミコロンで区切ったリスト  

サーバからインポートするファイルの名前  

必須  

該当なし  


説明
write_file コマンドは、upload_file コマンドと組み合わせて、ファイルをインポートします。このコマンドのパラメータは、import コマンドとまったく同じです。ファイルのインポート処理の例および詳細は、「upload_file」を参照してください。

[コマンド一覧に戻る]

[第 10 章の先頭に戻る]


前へ     目次     索引     DocHome     次へ     
Copyright © 2000 Sun Microsystems, Inc. Some preexisting portions Copyright © 2000 Netscape Communications Corp. All rights reserved.

Last Updated June 04, 2001