予定を登録する

目次

予定を登録する

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 までです。