calendar.resource.booking.list
Получить бронирования ресурсов по фильтру
Описание
Метод получает бронирования ресурсов по фильтру.
Параметры
filter
object
обязательный
Поля фильтра
Параметр filter
resourceTypeIdList
array
обязательный
Cписок идентификаторов ресурсов.
Получить идентификаторы можно методом calendar.resource.list
from
date
необязательный
Дата начала периода
to
date
необязательный
Дата окончания периода
resourceIdList
array
обязательный
Список идентификаторов бронирований ресурсов из пользовательского поля типа resourcebooking у лидов или сделок в CRM.
Получить идентификаторы можно:
- универсальными методами — crm.item.get, crm.item.list
- методами для лидов — crm.lead.get, crm.lead.list
- методами для сделок — crm.deal.get, crm.deal.list
Узнать какие пользовательские поля имеют тип resourcebooking можно методом crm.lead.userfield.list для лидов и методом crm.deal.userfield.list для сделок
Примеры запроса
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"filter":{"resourceTypeIdList":[10852,10888,10873,10871,10853],"from":"2024-06-20","to":"2024-08-20"}}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/calendar.resource.booking.list
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"filter":{"resourceTypeIdList":[10852,10888,10873,10871,10853],"from":"2024-06-20","to":"2024-08-20"},"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/calendar.resource.booking.list
// This snippet is an ES module: top-level await requires type="module" or a bundler.
// $b24 is an already-initialized SDK instance (see the SDK "Get started" guide).
import { Text } from '@bitrix24/b24jssdk'
import type { B24Frame } from '@bitrix24/b24jssdk'
declare const $b24: B24Frame
// Shape of each booking returned in result[]
type ResourceBooking = {
ID: string
PARENT_ID: string
DELETED: string
CAL_TYPE: string
OWNER_ID: string
NAME: string
DATE_FROM: string
DATE_TO: string
TZ_FROM: string
TZ_TO: string
TZ_OFFSET_FROM: string
TZ_OFFSET_TO: string
DATE_FROM_TS_UTC: string
DATE_TO_TS_UTC: string
DT_SKIP_TIME: string
DT_LENGTH: number
EVENT_TYPE: string
CREATED_BY: string
DATE_CREATE: string
TIMESTAMP_X: string
DESCRIPTION: string
IS_MEETING: boolean
MEETING_STATUS: string
MEETING_HOST: string
VERSION: string
SECTION_ID: string
DATE_FROM_FORMATTED: string
DATE_TO_FORMATTED: string
SECT_ID: string
RESOURCE_BOOKING_ID: string
}
try {
// calendar.resource.booking.list returns a single page (max 50 records). For the whole result set
// use a list helper: $b24.actions.v2.callList.make() returns every record as one
// array, $b24.actions.v2.fetchList.make() yields them in chunks (async generator).
// NOTE: the list helpers do not accept `order` (it is excluded from their params, so
// passing it is a TS error) — keep this call.make + `start` variant when sort matters.
const response = await $b24.actions.v2.call.make<ResourceBooking[]>({
method: 'calendar.resource.booking.list',
params: {
filter: {
resourceTypeIdList: [10852, 10888, 10873, 10871, 10853],
from: '2024-06-20',
to: '2024-08-20',
},
start: 0,
},
requestId: Text.getUuidRfc4122()
})
// The payload is available only on a successful response
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
} else {
const result = response.getData()!.result
console.info('Bookings on this page:', result.length, result)
}
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
<!-- Load the SDK (UMD build); it is exposed as the global B24Js -->
<script src="https://unpkg.com/@bitrix24/b24jssdk@1/dist/umd/index.min.js"></script>
<script>
async function fetchResourceBookings() {
try {
// Initialize the SDK inside a Bitrix24 frame
const $b24 = await B24Js.initializeB24Frame()
// calendar.resource.booking.list returns a single page (max 50 records). For the whole result set
// use a list helper: $b24.actions.v2.callList.make() returns every record as one
// array, $b24.actions.v2.fetchList.make() yields them in chunks (async generator).
// NOTE: the list helpers do not accept `order` (it is excluded from their params, so
// passing it is a TS error) — keep this call.make + `start` variant when sort matters.
const response = await $b24.actions.v2.call.make({
method: 'calendar.resource.booking.list',
params: {
filter: {
resourceTypeIdList: [10852, 10888, 10873, 10871, 10853],
from: '2024-06-20',
to: '2024-08-20',
},
start: 0,
},
requestId: B24Js.Text.getUuidRfc4122()
})
// The payload is available only on a successful response
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
return
}
const result = response.getData().result
console.info('Bookings on this page:', result.length, result)
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
}
document.addEventListener('DOMContentLoaded', fetchResourceBookings)
</script>
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
try:
bitrix_response = client.calendar.resource.booking.list(
filter={
"resourceTypeIdList": [
10852,
10888,
10873,
10871,
10853,
],
"from": "2024-06-20",
"to": "2024-08-20",
},
).response
result = bitrix_response.result
print(result)
except BitrixAPIError as error:
print(
"Ошибка Bitrix API",
f"error: {error.error}",
f"error_description: {error.error_description}",
sep="\n",
)
except BitrixSDKException as error:
print(f"Ошибка Bitrix SDK: {error.message}")
except Exception as error:
print(f"Непредвиденная ошибка: {error}")
try {
$response = $b24Service
->core
->call(
'calendar.resource.booking.list',
[
'filter' => [
'resourceTypeIdList' => [10852, 10888, 10873, 10871, 10853],
'from' => '2024-06-20',
'to' => '2024-08-20',
],
]
);
$result = $response
->getResponseData()
->getResult();
echo 'Success: ' . print_r($result, true);
// Нужная вам логика обработки данных
processData($result);
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error fetching resource booking list: ' . $e->getMessage();
}
BX24.callMethod(
'calendar.resource.booking.list',
{
filter: {
resourceTypeIdList: [10852, 10888, 10873, 10871, 10853],
from: '2024-06-20',
to: '2024-08-20',
}
}
);
require_once('crest.php');
$result = CRest::call(
'calendar.resource.booking.list',
[
'filter' => [
'resourceTypeIdList' => [10852, 10888, 10873, 10871, 10853],
'from' => '2024-06-20',
'to' => '2024-08-20'
]
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "calendar.resource.booking.list", b24.Params{
"filter": b24.Params{
"resourceTypeIdList": []int{10852, 10888, 10873, 10871, 10853},
"from": "2024-06-20",
"to": "2024-08-20",
},
}, b24.WithIdempotent())
if err != nil {
return fmt.Errorf("calendar.resource.booking.list: %w", err)
}
// Ответ приходит как json.RawMessage — разберите его
// в структуру под форму ответа, показанную ниже на этой странице.
fmt.Printf("%s\n", res.Result)
Ответ
HTTP-статус: 200
{
"result": [
{
"ID": "1408",
"PARENT_ID": "1408",
"DELETED": "N",
"CAL_TYPE": "resource",
"OWNER_ID": "0",
"NAME": "Бронирование",
"DATE_FROM": "20.12.2024 00:00:00",
"DATE_TO": "21.12.2024 00:00:00",
"TZ_FROM": "Europe/Riga",
"TZ_TO": "Europe/Riga",
"TZ_OFFSET_FROM": "7200",
"TZ_OFFSET_TO": "7200",
"DATE_FROM_TS_UTC": "1734652800",
"DATE_TO_TS_UTC": "1734739200",
"DT_SKIP_TIME": "Y",
"DT_LENGTH": 172800,
"EVENT_TYPE": "#resourcebooking#",
"CREATED_BY": "1",
"DATE_CREATE": "18.12.2024 13:55:35",
"TIMESTAMP_X": "18.12.2024 13:55:35",
"DESCRIPTION": "Услуга: some",
"IS_MEETING": false,
"MEETING_STATUS": "Y",
"MEETING_HOST": "0",
"VERSION": "1",
"SECTION_ID": "198",
"DATE_FROM_FORMATTED": "Fri Dec 20 2024",
"DATE_TO_FORMATTED": "Sat Dec 21 2024",
"SECT_ID": "198",
"RESOURCE_BOOKING_ID": "10"
},
{
"ID": "1409",
...
}
],
"time": {
"start": 1733318565.183275,
"finish": 1733318565.695058,
"duration": 0.5117831230163574,
"processing": 0.29406094551086426,
"date_start": "2024-12-04T13:22:45+00:00",
"date_finish": "2024-12-04T13:22:45+00:00"
}
}
Возвращаемые данные
result
array
Массив объектов. Каждый объект описывает бронирование
Обработка ошибок
HTTP-статус: 400
{
"error": "",
"error_description": "Не задан обязательный параметр \"filter['resourceTypeIdList']\" для метода \"calendar.resource.booking.list\""
}
| Код | Описание | Значение |
|---|---|---|
| — | Доступ запрещен | Запрещен доступ к методу для внешних пользователей |
| — | Не задан обязательный параметр "filter['resourceTypeIdList']" для метода "calendar.resource.booking.list" | Не передан ни один из обязательных параметров: resourceTypeIdList или resourceIdList |

