予定を登録する

目次

予定を登録する

1件の予定を登録します。

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

URL

クラウド版

https://sample.cybozu.com/g/api/v1/schedule/events

パッケージ版

環境に合わせてそれぞれ以下を置き換えてください。

  • IP_ADDRESS_OR_HOST_NAME:Garoonのインストール先のIPアドレスまたはホスト名
  • INSTALL_IDENTIFER:Garoonのインストール識別子
Windows環境
http://IP_ADDRESS_OR_HOST_NAME/scripts/INSTALL_IDENTIFER/grn.exe/api/v1/schedule/events
Linux環境
http://IP_ADDRESS_OR_HOST_NAME/cgi-bin/INSTALL_IDENTIFER/grn.cgi/api/v1/schedule/events

HTTPメソッド

POST

利用できるバージョン

  • クラウド版Garoon
  • パッケージ版Garoon 4.10以降

必要なアクセス権

  • 予定の追加権限

リクエスト

パラメーター
パラメーター名 必須 説明
eventType 文字列 必須 予定のタイプ
次のいずれかの値を指定します。
  • REGULAR:通常予定
  • ALL_DAY:期間予定
eventMenu 文字列 省略可 予定メニュー
省略すると、予定メニューのデフォルト設定値である「-----」が設定されます。
subject 文字列 省略可 予定のタイトル
notes 文字列 省略可 予定のメモ
改行文字は「\n」です。
start オブジェクト 必須 開始日時とタイムゾーン
start.dateTime 文字列 必須 予定の開始日時
RFC 3339形式で指定してください。
start.timeZone 文字列 必須 開始日時のタイムゾーン
end オブジェクト 条件必須 終了日時とタイムゾーン
次のいずれかに当てはまる場合は必須です。
  • isStartOnlyが「false」または指定されていない
  • facilitiesが指定されている
  • eventTypeに「ALL_DAY」が指定されている
end.dateTime 文字列 条件必須 予定の終了日時
RFC 3339形式で指定してください。
end.timeZone 文字列 条件必須 終了日時のタイムゾーン
isAllDay 真偽値 省略可 終日の予定かどうか
isStartOnly 真偽値 条件必須 開始のみの予定かどうか
省略すると「false」が設定されます。
endを省略する場合には、必ず「true」を指定してください。
attendees 配列 条件必須 参加者の一覧
attendeesまたはfacilitiesが必須です。
attendees[].type 文字列 条件必須 参加者のタイプ
次のいずれかの値を指定します。
  • ORGANIZATION
  • USER
attendeesを指定する場合は必須です。
attendees[].id 文字列 条件必須 組織またはユーザー情報のID
attendees[].typeに指定する値ごとに異なります。
  • 「ORGANIZATION」 の場合:組織ID
  • 「USER」 の場合:GaroonユーザーID
attendeesを指定する場合、attendees[].idまたはattendees[].codeが必須です。
attendees[].code 文字列 条件必須 組織またはユーザー情報のコード
attendees[].typeに指定する値ごとに異なります。
  • 「ORGANIZATION」 の場合:組織コード
  • 「USER」 の場合:Garoonユーザー名(ログイン名)
    パッケージ版Garoonの場合、ログイン名を公開する設定が必要です。
    詳細は ユーザー情報の項目を変更する (External link) を参照してください。
attendees[].idまたはattendees[].codeが必須です。
どちらも指定すると、attendees[].idの値が設定されます。
facilities 配列 条件必須 施設の一覧
attendeesまたはfacilitiesが必須です。
facilities[].id 文字列 条件必須 施設ID
facilitiesを指定する場合、facilities[].idまたはfacilities[].codeが必須です。
facilities[].code 文字列 条件必須 施設コード
facilitiesを指定する場合、facilities[].idまたはfacilities[].codeが必須です。
両方を指定すると、facilities[].idの値が設定されます。
facilityUsingPurpose 文字列 条件必須 施設の利用目的
「施設の利用申請」を有効にした場合は必須です。
companyInfo オブジェクト 省略可 会社情報 *1
companyInfo.name 文字列 省略可 会社名 *1
companyInfo.zipCode 文字列 省略可 郵便番号 *1
companyInfo.address 文字列 省略可 住所 *1
companyInfo.route 文字列 省略可 路線の経路 *1
companyInfo.routeTime 文字列 省略可 路線の所要時間 *1
companyInfo.routeFare 文字列 省略可 路線の運賃 *1
companyInfo.phone 文字列 省略可 電話番号 *1
attachments 配列 省略可 添付ファイルのリスト
システム設定で「ファイルの添付」の許可が必要です。
attachments[].name 文字列 省略可 添付ファイルのファイル名
attachments[].content 文字列 省略可 添付ファイルの内容
Base64エンコードが必要です。
visibilityType 文字列 省略可 公開設定のタイプ
次のいずれかの値を指定します。
  • PUBLIC:公開
  • PRIVATE:非公開
  • SET_PRIVATE_WATCHERS:公開先を設定する *2
useAttendanceCheck 真偽値 省略可 出欠確認を使用するかどうか *1
出欠確認を使用するには、「出欠確認の使用を許可する」を有効にしてください( クラウド版 (External link) パッケージ版 (External link) )。
watchers 配列 条件必須 共有先のリスト *1
visibilityTypeが「SET_PRIVATE_WATCHERS」の場合は必須です。
watchers[].type 文字列 条件必須 共有先のタイプ *1
次のいずれかの値を指定します。
  • ORGANIZATION:組織
  • USER:ユーザー
  • ROLE:ロール
watchersを指定する場合は必須です。
watchers[].id 文字列 条件必須 組織、ユーザーまたはロール情報のID *1
watchers[].typeに指定する値ごとに異なります。
  • 「ORGANIZATION」 の場合:組織ID
  • 「USER」 の場合:GaroonユーザーID
  • 「ROLE」の場合:ロールID
watchersを指定する場合、idまたはcodeが必須です。
watchers[].code 文字列 条件必須 組織、ユーザーまたはロール情報のコード *1
watchers[].typeに指定する値ごとに異なります。
  • 「ORGANIZATION」 の場合:組織コード
  • 「USER」 の場合:Garoonユーザー名(ログイン名)
    パッケージ版Garoonの場合、ログイン名を公開する設定が必要です。
    詳細は ユーザー情報の項目を変更する (External link) を参照してください。
  • 「ROLE」の場合:ロール名
watchersを指定する場合、watchers[].idまたはwatchers[].codeが必須です。
両方を指定すると、watchers[].idの値が設定されます。
additionalItems オブジェクト 省略可 予定のAPI用連携項目 *3
additionalItems.item.value 文字列 省略可 予定のAPI用連携項目の値 *3

*1 クラウド版とパッケージ版Garoon 5.0以降で指定できます。 ^

*2 パッケージ版Garoon 5.0〜5.5.1でのみ指定できます。 ^

*3 パッケージ版Garoon 6.0より前のバージョンでのみ指定できます。
予定に関する付加情報を保存する場合は、カスタマイズ項目(Schedule Datastore)を利用してください。
詳細は、 カスタム項目(additionalItems)の廃止について を参照してください。 ^

リクエストの例
ヘッダー
1
2
3
4
{
  "X-Cybozu-Authorization": "QWRtaW5pc3RyYXRvcjpjeWJvenU=",
  "Content-Type": "application/json"
}

リクエストヘッダーの詳細は Garoon REST APIの共通仕様 を確認してください。

ボディ
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
{
  "eventType": "REGULAR",
  "eventMenu": "conference",
  "subject": "Weekly conference",
  "notes": "This is notes.\nYou can write multiple lines.",
  "visibilityType": "PUBLIC",
  "useAttendanceCheck": true,
  "companyInfo": {
    "address": "2-7-1, Nihombashi, Chuo-ku, Tokyo",
    "name": "Cybozu, Inc.",
    "phone": "03-4306-xxxx",
    "route": "Nihombashi Sta. - Ginza Line - Shibuya Sta.",
    "routeFare": "195",
    "routeTime": "18",
    "zipCode": "103-xxxx"
  },
  "attachments": [
    {
      "name": "test.txt",
      "contentType": "plain/text",
      "content": "dGVzdA=="
    }
  ],
  "start": {
    "dateTime": "2017-09-27T14:00:00+09:00",
    "timeZone": "Asia/Tokyo"
  },
  "end": {
    "dateTime": "2017-09-27T14:00:00+09:00",
    "timeZone": "Asia/Tokyo"
  },
  "isAllDay": "false",
  "isStartOnly": "false",
  "attendees": [
    {
      "type": "USER",
      "code": "c000001"
    }
  ],
  "watchers": [
    {
      "type": "USER",
      "code": "c000001"
    }
  ],
  "facilities": [
    {
      "code": "F001"
    }
  ],
  "facilityUsingPurpose": "Because of the explanation of a new plan.",
  "additionalItems": {
    "item": {
      "value": "string"
    }
  }
}

レスポンス

レスポンスの例

処理が成功すると、予定の内容がJSON形式で返ります。
形式の詳細は スケジュールオブジェクト を確認してください。

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
{
  "id": "123",
  "creator": {
    "id": "1",
    "code": "c000001",
    "name": "Noboru Satoh(Satoh Noboru); Sales Department"
  },
  "createdAt": "2017-09-26T06:25:18Z",
  "updater": {
    "id": "1",
    "code": "c000001",
    "name": "Noboru Satoh(Satoh Noboru); Sales Department"
  },
  "updatedAt": "2017-09-26T06:25:18Z",
  "eventType": "REGULAR",
  "eventMenu": "conference",
  "subject": "Weekly conference",
  "notes": "This is notes.\nYou can write multiple lines.",
  "visibilityType": "PUBLIC",
  "useAttendanceCheck": true,
  "companyInfo": {
    "name": "Cybozu, Inc.",
    "zipCode": "103-xxxx",
    "address": "2-7-1, Nihombashi, Chuo-ku, Tokyo",
    "route": "Nihombashi Sta. - Ginza Line - Shibuya Sta.",
    "routeTime": "18",
    "routeFare": "195",
    "phone": "03-4306-xxxx"
  },
  "attachments": [
    {
      "id": "1",
      "name": "figure.png",
      "contentType": "image/png",
      "size": "64251"
    }
  ],
  "start": {
    "dateTime": "2017-09-27T14:00:00+09:00",
    "timeZone": "Asia/Tokyo"
  },
  "end": {
    "dateTime": "2017-09-27T14:00:00+09:00",
    "timeZone": "Asia/Tokyo"
  },
  "isAllDay": "false",
  "isStartOnly": "false",
  "originalStartTimeZone": "Asia/Tokyo",
  "originalEndTimeZone": "Asia/Tokyo",
  "attendees": [
    {
      "id": "1",
      "code": "c000001",
      "name": "Noboru Satoh(Satoh Noboru); Sales Department",
      "type": "USER",
      "attendanceResponse": {
        "status": "PENDING",
        "comment": "I am going to attend the meeting."
      }
    }
  ],
  "watchers": [
    {
      "id": "1",
      "code": "c000001",
      "name": "Noboru Satoh(Satoh Noboru); Sales Department",
      "type": "USER"
    }
  ],
  "facilities": [
    {
      "id": "1",
      "name": "28F conference room",
      "code": "F001"
    }
  ],
  "facilityUsingPurpose": "Because of the explanation of a new plan.",
  "facilityReservationInfo": {
    "additionalProp1": {
      "type": "SINGLE_LINE_TEXT",
      "value": "Custom field value"
    },
    "additionalProp2": {
      "type": "SINGLE_LINE_TEXT",
      "value": "Custom field value"
    },
    "additionalProp3": {
      "type": "SINGLE_LINE_TEXT",
      "value": "Custom field value"
    }
  },
  "facilityUsageRequests": [
    {
      "status": "APPROVED",
      "facility": {
        "id": "1",
        "name": "28F conference room",
        "code": "F001"
      },
      "approvedBy": {
        "id": "1",
        "code": "c000001",
        "name": "Noboru Satoh(Satoh Noboru); Sales Department"
      },
      "approvedDateTime": "2017-09-26T06:25:18Z"
    }
  ],
  "repeatInfo": {
    "type": "EVERY_DAY",
    "period": {
      "start": "2017-04-01",
      "end": "2018-03-31"
    },
    "time": {
      "start": "09:00",
      "end": "18:00"
    },
    "isAllDay": false,
    "isStartOnly": false,
    "timeZone": "Asia/Tokyo",
    "dayOfWeek": "MON",
    "dayOfMonth": "EOM",
    "exclusiveDateTimes": [
      {
        "start": "2017-12-28T00:00:00+09:00",
        "end": "2017-12-29T00:00:00+09:00"
      }
    ]
  },
  "temporaryEventCandidates": [
    {
      "end": {
        "dateTime": "2017-06-06T09:00:00+09:00",
        "timeZone": "Asia/Tokyo"
      },
      "start": {
        "dateTime": "2017-06-06T10:00:00+09:00",
        "timeZone": "Asia/Tokyo"
      },
      "facility": {
        "id": "1",
        "code": "room-a",
        "name": "ROOM-A"
      }
    }
  ],
  "additionalItems": {
    "item": {
      "value": "string"
    }
  }
}

サンプルコード

curlを使ったリクエスト
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
curl -X POST 'https://sample.cybozu.com/g/api/v1/schedule/events' \
  -H 'X-Cybozu-Authorization: QWRtaW5pc3RyYXRvcjpjeWJvenU=' \
  -H 'Content-Type: application/json' \
  -d '{
    "eventType": "REGULAR",
    "visibilityType": "PUBLIC",
    "start": {
      "dateTime": "2020-06-01T14:00:00+09:00",
      "timeZone": "Asia/Tokyo"
    },
    "end": {
      "dateTime": "2020-06-01T15:00:00+09:00",
      "timeZone": "Asia/Tokyo"
    },
    "attendees": [
      {
        "type": "USER",
        "code": "g0001"
      }
    ],
    "facilities": [
      {
        "code": "SeminarA"
      }
    ]
  }'
Garoon REST APIリクエストを送信するAPI を使ったリクエスト
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
const body = {
  eventType: 'REGULAR',
  visibilityType: 'PUBLIC',
  start: {
    dateTime: '2020-06-01T14:00:00+09:00',
    timeZone: 'Asia/Tokyo'
  },
  end: {
    dateTime: '2020-06-01T15:00:00+09:00',
    timeZone: 'Asia/Tokyo'
  },
  attendees: [
    {
      type: 'USER',
      code: 'g0001'
    }
  ],
  facilities: [
    {
      code: 'SeminarA'
    }
  ]
};

await garoon.api('/api/v1/schedule/events', 'POST', body);

制限事項

  • APIを使ってアップロードできるファイルサイズは、Base64エンコード後で300MBまでです。