カテゴリー内の他の記事

予定の登録(POST)

フォローする

Index

予定の登録(1件)

予定の追加権限のあるユーザーが、1件の予定を登録できます。

  • 通常予定、期間予定を登録できます。繰り返し予定、仮予定は登録できません。

HTTP メソッド

POST

URI

クラウド版

https://(サブドメイン名).cybozu.com/g/api/v1/schedule/events

パッケージ版(Windows環境)

http://(サーバーのIPアドレスまたはホスト名)/scripts/(インストール識別子)/grn.exe/api/v1/schedule/events

パッケージ版(Linux環境)

http://(サーバーのIPアドレスまたはホスト名)/cgi-bin/(インストール識別子)/grn.cgi/api/v1/schedule/events

使用可能なガルーンのバージョン

  • クラウド版 Garoon
  • パッケージ版 Garoon バージョン 4.10.0以降

リクエストの例

リクエストヘッダ

POST /g/api/v1/schedule/events HTTP/1.1
Host: {subdomain}.cybozu.com:443
X-Cybozu-Authorization: QWRtaW5pc3RyYXRvcjpjeWJvenU=
Authorization: Basic QWRtaW5pc3RyYXRvcjpjeWJvenU=
Content-Type: application/json
  • Content-Type に application/json を指定して下さい。 指定しない場合は JSON が解釈できないため、実行時エラーとなります。

リクエストボディ

リクエストボディには、次のパラメータが必須です。
  1. eventType
    REGULAR、ALL_DAYのみ指定可能です。
  2. start
  3. attendees、またはfacilities
    少なくとも1人の参加者、または1つの施設が必須です。
    それぞれ ①type ②codeまたはid が必須です。
  4. end、または isStartOnly を true
    endは次にあてはまる場合、必須です。
    • isStartOnlyがfalse(または指定されていない)の場合
    • facilitiesが指定されている場合
    • eventTypeがALL_DAYの場合

 また、次のパラメータには条件があります。

  • watchers
    visibilityTypeがSET_PRIVATE_WATCHERSの場合、必須です。
    それぞれ ①type ②codeまたはid が必須です。
  • facilityUsingPurpose
    「施設の利用申請」を有効にした場合、必須です。

※各フィールドの形式については スケジュールのeventオブジェクトをご確認ください。

パラメータ名 指定する値 必須 説明
eventType 文字列

必須

予定のタイプ

利用可能なvalueは次のとおりです。

  • REGULAR
  • ALL_DAY
eventMenu 文字列  

予定メニュー

予定メニューのデフォルト設定値「-----」のvalueは空文字列とみなされます。詳細

subject 文字列   タイトル
notes 文字列  

メモ


改行文字は「\n」です。

start オブジェクト 必須

開始日時とタイムゾーン

start.dateTime

文字列

必須

予定の開始日時

形式はRFC3339です。

start.timeZone

文字列

必須

開始日時のタイムゾーン

end オブジェクト 条件必須
(end、または isStartOnly を trueが必須)

終了日時とタイムゾーン

次にあてはまる場合、必須です。

  • isStartOnlyがfalse(または指定されていない)の場合
  • facilitiesが指定されている場合
  • eventTypeがALL_DAYの場合
end.dateTime 文字列 条件必須

予定の終了日時

形式はRFC3339です。

end.timeZone 文字列 条件必須 終了日時のタイムゾーン
isAllDay 真偽値   終日の予定かどうか
isStartOnly 真偽値

条件必須
(end、または isStartOnly を trueが必須)

開始のみの予定かどうか
attendees 配列 条件必須
(attendees、またはfacilitiesが必須)

参加者のリスト

①type ②codeまたはid が必須です。

attendees[].id 文字列 条件必須 参加者のユーザーID
attendees[].code 文字列 条件必須 attendees[].type プロパティのvalueにより異なります。
  • 「ORGANIZATION」 の場合:組織コード
  • 「USER」 の場合:ログイン名
attendees[].type 文字列 条件必須

参加者のタイプ

利用可能なvalueは次のとおりです。 

  • ORGANIZATION
  • USER
facilities 配列 条件必須
(attendees、またはfacilitiesが必須)

施設のリスト

codeまたはid が必須です。

facilities[].id 文字列 条件必須 施設名ID
facilities[].code 文字列 条件必須

施設の候補リストの施設コード

facilityUsingPurpose 文字列  

施設の利用目的

「施設の利用申請」を有効にした場合、必須です。

companyInfo オブジェクト   会社情報
companyInfo.name 文字列   会社名
companyInfo.zipCode 文字列   郵便番号
companyInfo.address 文字列   住所
companyInfo.route 文字列   路線の経路
companyInfo.routeTime 文字列   路線の所要時間
companyInfo.routeFare 文字列   路線の運賃
companyInfo.phone 文字列   電話番号
attachments 配列  

添付ファイルのリスト

システム設定で「ファイルの添付」の許可が必要です。

attachments[].name 文字列   添付ファイルのファイル名
attachments[].content 文字列  

添付ファイルの内容

base64エンコードが必要です。

visibilityType 文字列  

公開設定のタイプ

利用可能なvalueは次のとおりです。 

  • PUBLIC
  • PRIVATE
  • SET_PRIVATE_WATCHERS
useAttendanceCheck 真偽値  

出欠確認を使用しているかどうか

システム設定で「出欠確認の使用」の許可が必要です。

watchers 配列  

公開先のリスト

visibilityTypeがSET_PRIVATE_WATCHERSの場合、必須です。
①type ②codeまたはid が必須です。

watchers[].id 文字列   公開先のユーザーID
watchers[].code 文字列  

watchers[].type プロパティのvalueにより異なります。

  • 「ORGANIZATION」 の場合:組織コード
  • 「USER」 の場合:ログイン名
  • 「ROLE」の場合:ロール名
watchers[].type 文字列  

公開先のタイプ

利用可能なvalueは次のとおりです。 

  • ORGANIZATION
  • USER
  • ROLE
additionalItems オブジェクト   予定のAPI用連携項目
additionalItems.item.value 文字列    予定のAPI用連携項目の値

レスポンスの例

処理が成功すると、予定の内容がJSON形式で返されます。 ※各フィールドの形式については スケジュールのeventオブジェクトをご確認ください。

制限事項

共通仕様の制限事項 をご確認ください。

記事に関するフィードバック

直接的に記事と関連がないご質問はcybozu developer コミュニティをご活用ください。

Avatar
SHIMADA

クラウド版にて、非公開のスケジュールエントリーを、別システムからインポートする為に、
HTMLポートレット上に作成したJavaScriptから、REST APIでスケジュール
のPOSTを行おうとしています。
すでにGaroonにログインした状態からの実行になりますので、
RequestHeaderにX-Requested-With:XMLHttpRequestを設定し、セッション認証で実行しようとしているのですが
「HTTP Status:520 Error:FW00043 ページを表示できません。不正なリクエストが行われた可能性があります。」
となり、登録を行うことができません。
代わりにパスワード認証でPOSTすると正常に登録が行われます。

また、GETについてはセッション認証で正常に取得できることも確認しています。

下記の様なJavaScriptプログラムでPOSTの処理を行っていますが、どこか問題はありますでしょうか?


//"開始日","開始時刻","終了日","終了時刻","予定","予定詳細","メモ"
var eventInfo = {
   "eventType":"REGULAR",
   "eventMenu":ary[4],        //打合わせとか
   "subject":ary[5],            //件名
   "notes":ary[6],            //メモ
   "visibilityType":"PRIVATE",    //公開,非公開,メンバー指定
   "start":{
       "dateTime": "2018-10-16T00:00:00+09:00",
       "timeZone":"Asia/Tokyo"
   },
   "end":{
       "dateTime": "2018-10-16T23:59:59+09:00",
       "timeZone":"Asia/Tokyo"
   },
   "isAllDay": true,
   "isStartOnly": false,
   "attendees":[{
       "code":"xxxxx",
       "type":"USER"
   }]
};
//
var uri = location.protocol + "//" + location.hostname;
uri += "/g/api/v1/schedule/events"

var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function(){
    switch(xhr.readyState){
    case 0: //UNSENT
    case 1: //OPEND
    case 2: //HEADERS_RECIEVED
    case 3: //LOADING
       break;
    case 4: //DONE
       if( xhr.status ){
          console.log( xhr.responsesText );
          resolve(cno+1);
       }else{
          console.log( xhr.responsesText );
          reject(xhr.responsesText);
       }
    }
}
xhr.open("POST",uri);
//xhr.setRequestHeader("Host",location.hostname+":443");
//xhr.setRequestHeader("X-Cybozu-Authorization",window.btoa("xxxxx:xxxxx"));
xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");
xhr.setRequestHeader("Content-Type","application/json");
xhr.send( JSON.stringify(eventInfo) );

Avatar
cybozu Development team

SHIMADA様

REST APIのPOST、PATCH、DELETEでは、セッション認証の場合は、RequestTokenが必要ですが、それがなさそうです。

RequestTokenについては以下の記事をご確認ください。

https://developer.cybozu.io/hc/ja/articles/360001197206

記事の記述がわかりにくく、お手数をおかけしました。

今後は、目に止まりやすい場所に記述するように改善いたします。

Avatar
SHIMADA

cybozu Development team 様

早々のご回答ありがとうございました。

早速、再試行したところ、正常に動作することを確認できました。

SOAP APIを使った時には共通仕様の項目に記載があり、使った記憶があるのですが、REST APIには記載がなかったので忘れていました。

ログインしてコメントを残してください。