予約オープン API

  • リリースバージョン: Australia
  • 更新日 2026年03月12日
  • 所要時間:21分
  • Appointment Open API は、予約アプリケーションとやり取りできるようにする電気通信 API です。この API を使用して、予約を行い、利用可能なタイムスロットを検索します。

    予約オープン API は、Open API TMForum TMF646 予約 REST API 仕様のServiceNow®実装であり、TM フォーラムによって適合性認定を受けています。この実装は、 TMF646 予約 API REST 仕様 R16.0.1 に基づいています。

    TMF 準拠ロゴ
    この API には、 ServiceNow Store で利用可能な次のプラグインが必要です。
    • 予約 (com.snc.appointment_booking)
    • フィールドサービス管理 (com.snc.work_management)
    • Field Service Management for Telecommunications (com.sn_fsmt)
    • 通信オープン API (com.sn_tmf_api)

    この API を使用する前に、予約の設定とサービスの設定を行う必要があります。また、予約対象のタスクが存在する必要があります。

    この API は sn_tmf_api 名前空間内で提供されます。呼び出し元ユーザーには sn_tmf_api.appointment_integrator ロールが必要です。

    予約のオープン:GET /api/sn_tmf_api/appointment/searchTimeSlot

    予約サービス設定で設定されたタイムスロットを、その可用性と共に返します。

    URL 形式

    /api/sn_tmf_api/appointment/searchTimeSlot

    サポートされている要求パラメーター

    表 : 1. パスパラメーター
    名前 説明
    なし
    表 : 2. クエリパラメーター
    名前 説明
    catalog_id 必須です。予約サービス構成で構成されたレコードプロデューサーのSys_id。

    データタイプ:文字列

    テーブル:レコードプロデューサー [sc_cat_item_producer]

    end_date 必須です。予約を検索する期間の終了日時。

    データタイプ:文字列

    形式:YYYY-MM-DD 00:00:00。例: 2025-01-31 12:00:00

    location 予約の場所のSys_id。

    テーブル:場所 [cmn_location]

    データタイプ:文字列

    デフォルト:指定されていない場合は、すべての場所が返されます。

    opened_for 必須です。予約対象のユーザーのSys_id。

    テーブル:連絡先 [customer_contact]

    データタイプ:文字列

    start_date 必須です。予約を検索する期間の開始日時。

    データタイプ:文字列

    形式:YYYY-MM-DD 00:00:00。例: 2025-01-31 09:00:00

    表 : 3. 要求本文のパラメーター
    名前 説明
    なし

    ヘッダー

    次の要求ヘッダーと応答ヘッダーは、この HTTP アクションにのみ適用されるか、別の方法でこのアクションに適用されます。REST API で使用される一般的なヘッダーのリストについては、「 サポートされている REST API ヘッダー」を参照してください。

    表 : 4. 要求ヘッダー
    ヘッダー 説明
    承認 応答本文のデータフォーマット。application/json のみをサポートします。
    表 : 5. 応答ヘッダー
    ヘッダー 説明
    なし

    ステータスコード

    この HTTP アクションには、次のステータスコードが適用されます。REST API で使用される可能性のあるステータスコードのリストについては、「 REST API HTTP 応答コード」を参照してください。

    表 : 6. ステータスコード
    ステータスコード 説明
    200 成功。要求が正常に処理されました。
    400 要求が正しくありません。不適切な要求タイプまたは誤った要求が検出されました。
    500 内部サーバーエラー要求の処理中に予期しないエラーが発生しました。応答には、エラーに関する追加情報が含まれています。

    応答本文のパラメーター

    名前 説明
    availableTimeSlot 指定された要求時間ブロック内の予約スロットのリスト。

    データタイプ:オブジェクトのアレイ

    'availableTimeSlot': [
     { 
      "available": Boolean,
      "end_date": "String",
      "end_date_display": "String",
      "end_dateUTC": "String",
      "start_date": "String",
      "start_date_display": "String",
      "start_dateUTC": "String"
     }
    ]
    availableTimeSlot.available 関連付けられたタイムスロットが利用可能かどうかを示すフラグ。
    可能な値:
    • true:タイムスロットが利用可能です。
    • false:タイムスロットは利用できません。

    データタイプ:ブーリアン

    availableTimeSlot.end_date 関連付けられた予約の終了日時。タイムゾーンは、 timeZone パラメーターの値に基づきます。

    データタイプ:文字列

    形式:YYYY-MM-DD 00:00:00。例:2025-01-31 09:35:43。

    availableTimeSlot.end_date_display 関連付けられた予約の終了日時を表示します。タイムゾーンは、 timeZone パラメーターの値に基づきます。

    データタイプ:文字列

    形式:YYYY-MM-DD 00:00:00。例:2025-01-31 09:35:43。

    availableTimeSlot.end_dateUTC 関連付けられた予約の終了日時。

    データタイプ:文字列

    形式:UTC

    availableTimeSlot.start_date 関連付けられた予約の開始日時。timeZoneパラメーターの値を反映します。

    データタイプ:文字列

    形式:YYYY-MM-DD 00:00:00。例:2025-01-31 09:35:43。

    availableTimeSlot.start_date_display 関連付けられた予約の開始日時を表示します。timeZoneパラメーターの値を反映します。

    データタイプ:文字列

    形式:YYYY-MM-DD 00:00:00。例:2025-01-31 09:35:43。

    availableTimeSlot.start_dateUTC 関連付けられた予約の開始日時。

    データタイプ:文字列

    形式:UTC

    hasMore 制限を返した後にフェッチする予約スロットが他にあるかどうかを示すフラグ。この制限は、予約プロパティ sn_apptmnt_booking.max_appointments_returned で指定されます (デフォルト:100)。このプロパティの詳細については、「 Appointment booking components 」を参照してください。
    可能な値:
    • true:さらに予約スロットをフェッチできます。
    • false:利用可能な予約スロットはありません。

    データタイプ:ブーリアン

    noApptAvailable 指定された日時に利用可能な予約スロットが他にあるかどうかを示すフラグ。
    有効な値:
    • true:指定された日時にさらに予約スロットが利用可能です。
    • false:指定された日時に利用可能な予約スロットはありません。

    データタイプ:ブーリアン

    検索結果 指定された検索タイムスロット内の予約可能な結果。
    可能な値:
    • 成功
    • 失敗

    データタイプ:文字列

    status 利用可能なタイムスロットの検索の完了ステータス。たとえば、「完了」などです。

    データタイプ:文字列

    タイムゾーン 指定された予約スロットの予約または更新時に使用されるタイムゾーン。

    日付タイプ:文字列

    形式:国/都市または地域の形式 (米国/東部など)

    cURL 要求

    次のコード例は、このエンドポイントを呼び出す方法を示しています。

    curl --location --request GET 'https://instance.service-now.com/api/sn_tmf_api/appointment/searchTimeSlot?
    start_date=2024-07-10 09:00:00&end_date=2024-07-20 23:00:00&catalog_id=ada50a93f0220210f8776517d8c8e776&
    opened_for=51670151c35420105252716b7d40ddfe&location=f48b21850a0a0ba7004182b18099696d ' \
    --user 'username':'password'

    結果:

    {
      "searchResult": "success",
      "status": "done",
      "availableTimeSlot": [
        {
          "start_date": "2024-07-10 09:00:00",
          "end_date": "2024-07-10 12:00:00",
          "start_date_display": "09:00",
          "end_date_display": "12:00",
          "start_dateUTC": "2024-07-10 16:00:00",
          "end_dateUTC": "2024-07-10 19:00:00",
          "available": false
        },
        {
          "start_date": "2024-07-11 13:00:00",
          "end_date": "2024-07-11 16:00:00",
          "start_date_display": "13:00",
          "end_date_display": "16:00",
          "start_dateUTC": "2024-07-11 20:00:00",
          "end_dateUTC": "2024-07-11 23:00:00",
          "available": true
        },
        {
          "start_date": "2024-07-12 09:00:00",
          "end_date": "2024-07-12 12:00:00",
          "start_date_display": "09:00",
          "end_date_display": "12:00",
          "start_dateUTC": "2024-07-12 16:00:00",
          "end_dateUTC": "2024-07-12 19:00:00",
          "available": true
        },
        {
          "start_date": "2024-07-12 13:00:00",
          "end_date": "2024-07-12 16:00:00",
          "start_date_display": "13:00",
          "end_date_display": "16:00",
          "start_dateUTC": "2024-07-12 20:00:00",
          "end_dateUTC": "2024-07-12 23:00:00",
          "available": true
        },
        {
          "start_date": "2024-07-19 13:00:00",
          "end_date": "2024-07-19 16:00:00",
          "start_date_display": "13:00",
          "end_date_display": "16:00",
          "start_dateUTC": "2024-07-19 20:00:00",
          "end_dateUTC": "2024-07-19 23:00:00",
          "available": true
        }
      ],
      "hasMore": false,
      "noApptAvailable": false,
      "timeZone": "US/Arizona"
    }

    予約のオープン:POST /api/sn_tmf_api/appointment/appointment

    作業指示書の予約を行うことができます。

    URL 形式

    /api/sn_tmf_api/appointment/appointment

    サポートされている要求パラメーター

    表 : 7. パスパラメーター
    名前 説明
    なし
    表 : 8. クエリパラメーター
    名前 説明
    なし
    表 : 9. 要求本文のパラメーター
    名前 説明
    category 必須です。予約サービス構成用に構成されたレコードプロデューサーのSys_id。

    データタイプ:文字列

    テーブル:予約サービス設定 [sn_apptmnt_booking_service_config] テーブルの [カタログアイテム] フィールド内。

    relatedEntity 必須です。予約に関連付けられた影響を受ける作業指示のリスト。

    データタイプ:オブジェクトのアレイ

    "relatedEntity": [
      {
        "@referredType": "String"
        "id": "String",
      }
    ]
    relatedEntity.@referredType 必須です。アイテムまたはサービスのタイプ。

    有効な値:作業指示のみ

    データタイプ:文字列

    テーブル:作業指示 [wm_order]

    relatedEntity.id 必須です。関連エンティティのSys_id。

    データタイプ:文字列

    テーブル:workOrder [wm_order]

    デフォルト:sys_idが指定されていない場合はすべてを返します。

    relatedEntity.role 必須です。ロール:関連エンティティの説明。

    有効な値のみ:作業指示

    データタイプ:文字列

    テーブル:作業指示 [wm_order]

    関連パーティー 必須です。予約の連絡先のリスト。各連絡先はアレイ内のオブジェクトです。要求には、顧客アカウント情報を含むアイテムが少なくとも 1 つリストされている必要があります。

    データタイプ:オブジェクトのアレイ

    "relatedParty": [ 
     {
      "@referredType": "String",
      "id": "String",
      "name": "String",
      "role": "String"
     }
    ]
    relatedParty.@referredType 顧客のタイプ。

    有効な値:個々

    データタイプ:文字列

    relatedParty.id 必須です。作業指示書に関連付けられた連絡先のSys_idまたはexternal_id。

    データタイプ:文字列

    テーブル:連絡先 [customer_contact]

    relatedParty.name 連絡先の名前。

    データタイプ:文字列

    テーブル:連絡先 [customer_contact]

    relatedParty.role 必須です。連絡先のロール。
    可能な値:
    • customer:連絡先には顧客ロールがあります。
    • 技術者:連絡先には技術者ロールがあります。

    データタイプ:文字列

    テーブル:連絡先 [customer_contact]

    relatedPlace 必須です。予約に関連する場所のリスト。

    データタイプ:オブジェクトのアレイ

    "relatedPlace": [
     {
      "@referredType": "String",
      "id": "String",
      "name": "String",
      "role": "String"
     }
    ]
    relatedPlace.@referredType 必須です。場所のタイプ。たとえば、市区町村です。

    データタイプ:文字列

    テーブル:場所 [cmn_location]

    relatedPlace.id 必須です。関連する場所のSys_id。

    データタイプ:文字列

    テーブル:場所 [cmn_location]

    relatedPlace.name 連絡先に関連する場所の名前。例:251 Reddy St, Darwin, CA 93522。

    データタイプ:文字列

    テーブル:場所 [cmn_location]

    relatedPlace.role 必須です。場所ロールの説明。たとえば、作業指示などです。

    データタイプ:文字列

    タイムゾーン 必須です。指定された予約スロットを予約するときに使用するタイムゾーン。

    日付タイプ:文字列

    形式:国/都市または地域の形式 (米国/東部など)

    validFor 必須です。予約が有効な日付範囲。

    データタイプ: オブジェクト

    "validFor": {
      "endDateTime": "String",
      "startDateTime": "String"
    }
    validFor.endDateTime 必須です。タイムスロットの終了日時。

    データタイプ:文字列

    形式:YYYY-MM-DD 00:00:00。例:2025-01-31 09:35:43。

    validFor.startDateTime 必須です。タイムスロットの開始日時。

    データタイプ:文字列

    形式:YYYY-MM-DD 00:00:00。例:2025-01-31 09:35:43。

    ヘッダー

    次の要求ヘッダーと応答ヘッダーは、この HTTP アクションにのみ適用されるか、別の方法でこのアクションに適用されます。REST API で使用される一般的なヘッダーのリストについては、「 サポートされている REST API ヘッダー」を参照してください。

    表 : 10. 要求ヘッダー
    ヘッダー 説明
    承認 応答本文のデータフォーマット。application/json のみをサポートします。
    表 : 11. 応答ヘッダー
    ヘッダー 説明
    Content-Type 要求本文のデータ形式。application/json のみをサポートします。

    ステータスコード

    この HTTP アクションには、次のステータスコードが適用されます。REST API で使用される可能性のあるステータスコードのリストについては、「 REST API HTTP 応答コード」を参照してください。

    表 : 12. ステータスコード
    ステータスコード 説明
    200 成功。要求が正常に処理されました。
    500 内部サーバーエラー要求の処理中に予期しないエラーが発生しました。応答には、エラーに関する追加情報が含まれています。

    応答本文のパラメーター

    名前 説明
    category 予約サービス構成用に構成されたレコードプロデューサーのSys_id。

    データタイプ:文字列

    保存場所:予約サービス設定 [sn_apptmnt_booking_service_config] テーブルの [カタログアイテム] フィールド。

    creationDate 予約が作成された日時。

    データタイプ:文字列

    形式:YYYY-MM-DD 00:00:00。例:2025-01-31 09:35:43。

    href 予約レコードへのハイパーリンク。別の Appointment Open API 要求でこのリンクを使用して、予約を再スケジュールまたは削除します。

    データタイプ:文字列

    ID 予約のSys_id。

    データタイプ:文字列

    保存場所:予約サービス設定 [sn_apptmnt_booking_service_config] テーブル

    前回の更新 予約が最後に更新された日時。

    データタイプ:文字列

    形式:YYYY-MM-DD 00:00:00。例:2025-01-31 09:35:43。

    relatedEntity 予約の関連エンティティに関する詳細。

    データタイプ:オブジェクトのアレイ

    "relatedEntity": [
     {
      "@referredType": "String",
      "id": "String",
      "role": "String"
      }
    ]
    relatedEntity.@referredType アイテムまたはサービスのタイプ。

    データタイプ:文字列

    保存場所:workOrder [wm_order] テーブル

    relatedEntity.id 関連エンティティのSys_id。

    データタイプ:文字列

    保存場所:workOrder [wm_order] テーブル

    relatedEntity.role ロール:関連エンティティの説明。

    可能な値:作業指示

    データタイプ:文字列

    保存場所:workOrder [wm_order] テーブル

    関連パーティー 予約の連絡先のリスト。各連絡先はアレイ内のオブジェクトです。

    データタイプ:オブジェクトのアレイ

    "relatedParty": [
     {
      "@referredType": "String",
      "id": "String",
      "name": " String",
      "role": "String"
     }
    ]
    relatedParty.@referredType 顧客のタイプ。

    データタイプ:文字列

    保存場所:連絡先 [customer_contact] テーブル

    relatedParty.id 作業指示書に関連付けられた顧客連絡先のSys_id。

    データタイプ:文字列

    保存場所:連絡先 [customer_contact] テーブル

    relatedParty.name 顧客連絡先の名前。

    データタイプ:文字列

    保存場所:連絡先 [customer_contact] テーブル

    relatedParty.role 顧客連絡先のロール。
    可能な値:
    • customer:連絡先には顧客ロールがあります。
    • 技術者:連絡先には技術者ロールがあります。

    データタイプ:文字列

    保存場所:連絡先 [customer_contact] テーブル

    relatedPlace 関連付けられた予約の場所の詳細。

    データタイプ: オブジェクト

    "relatedPlace": {
      "@referredType": "String",
      "id": "String",
      "name": "String",
      "role": "String"
    }
    relatedPlace.@referredType 予約の地理的住所。

    可能な値:GeographicLocation。

    データタイプ:文字列

    保存場所:場所 [cmn_location] テーブル

    relatedPlace.id 場所のSys_id。

    データタイプ:文字列

    保存場所:場所 [cmn_location] テーブル

    relatedPlace.name 連絡先に関連する場所の名前。例:100 South Charles Street, Baltimore, MD。

    データタイプ:文字列

    保存場所:場所 [cmn_location] テーブル

    relatedPlace.role 介入住所としての予約場所のロール。

    可能な値:InterventionAddress

    データタイプ:文字列

    保存場所:場所 [cmn_location] テーブル

    成功 要求が成功したかどうかを示すフラグ。
    可能な値:
    • true:要求は成功しました。
    • false:要求は失敗しました。

    データタイプ:ブーリアン

    タイムゾーン 指定された予約スロットの予約または更新時に使用されるタイムゾーン。

    日付タイプ:文字列

    形式:国/都市または地域の形式 (米国/東部など)

    validFor 予約が有効な日付範囲。

    データタイプ: オブジェクト

    "validFor": {
     "endDateTime": "String"
     "startDateTime": "String"
    }
    validFor.endDateTime 予約の終了日時。

    データタイプ:文字列

    形式:YYYY-MM-DD 00:00:00。例:2025-01-31 09:35:43。

    validFor.startDateTime 予約の開始日時。

    データタイプ:文字列

    形式:YYYY-MM-DD 00:00:00。例:2025-01-31 09:35:43。

    cURL 要求

    次の例は、新しい予約を作成する方法を示しています。

    curl "https://instance.servicenow.com/api/sn_tmf_api/appointment/appointment" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{
      \"validFor\": {
        \"startDateTime\": \"2024-08-19 09:00:00\",
        \"endDateTime\": \"2024-08-19 11:00:00\"
      },
      \"category\": \"e4c1116b3b810300ce8a4d72f3efc40f\",
      \"relatedParty\": [
        {
          \"id\": \"eaf68911c35420105252716b7d40ddde\",
          \"name\": \"Sally Thomas\",
          \"role\": \"customer\",
          \"@referredType\": \"Individual\"
        }
      ],
      \"relatedPlace\": {
        \"id\": \"25ab9c4d0a0a0bb300f7dabdc0ca7c1c\",
        \"name\": \"100 South Charles Street, Baltimore,MD\",
        \"role\": \"interventionAddress\",
        \"@referredType\": \"GeographicAddress\"
      },
      \"relatedEntity\": [
        {
          \"id\": \"48dbfbf9201f0250f877303e8a020dcd\",
          \"role\": \"work order\",
          \"@referredType\": \"WorkOrder\"
        }
      ],
      \"timeZone\": \"US/Arizona\"
    }" \
    --user 'username':'password'

    応答:

    {
      "validFor": {
        "startDateTime": "2024-07-19 09:00:00",
        "endDateTime": "2024-07-19 11:00:00"
      },
      "category": "e4c1116b3b810300ce8a4d72f3efc40f",
      "relatedParty": [
        {
          "id": "eaf68911c35420105252716b7d40ddde",
          "name": "Sally Thomas",
          "role": "customer",
          "@referredType": "Individual"
        }
      ],
      "relatedPlace": {
        "id": "25ab9c4d0a0a0bb300f7dabdc0ca7c1c",
        "name": "100 South Charles Street, Baltimore,MD",
        "role": "interventionAddress",
        "@referredType": "GeographicAddress"
      },
      "relatedEntity": [
        {
          "id": "48dbfbf9201f0250f877303e8a020dcd",
          "role": "work order",
          "@referredType": "WorkOrder"
        }
      ],
      "timeZone": "US/Arizona",
      "success": true,
      "id": "feacb7f9201f0250f877303e8a020d38",
      "href": "api/sn_tmf_api/appointment/appointment/feacb7f9201f0250f877303e8a020d38",
      "creationDate": "2024-07-10 22:45:01",
      "lastUpdate": "2024-07-10 22:45:01"
    }