# calendar.user.settings.set

URL: https://chugunov.pro/api-bitrix24/calendar/calendar-user-settings-set/
Проверено на Битрикс24 REST API, обновлено 11.09.2026 (ревизия источника fb39d6c).
Источник: официальная документация Битрикс24 (bitrix-tools/b24-rest-docs, лицензия MIT, © Bitrix). Справочник независимый, официальной документацией не является.

Установить пользовательские настройки календаря
Scope: `calendar`
Кто может выполнять метод: любой пользователь

## Описание

Метод устанавливает пользовательские настройки календаря для текущего пользователя.

## Параметры

- `settings` `object` — обязательный. Объект со значениями пользовательских [настроек календаря](#settings)

### Параметр settings

- `view` `string` — необязательный. Стандартное представление для календаря. Возможные значения:
  - `day` — день
  - `week` — неделя
  - `month` — месяц
  - `list` — список
- `meetSection` `string` — необязательный. Календарь для приглашений
- `crmSection` `string` — необязательный. Календарь для CRM
- `showDeclined` `boolean` — необязательный. Показывать события, в которых пользователь отказался принять участие
- `denyBusyInvitation` `boolean` — необязательный. Запрещать приглашать в событие, если время занято
- `collapseOffHours` `string` — необязательный. Скрывать нерабочее время в календаре в недельном и дневном представлении. Возможные значения:
  - `Y` — скрывать
  - `N` — не скрывать
- `showWeekNumbers` `string` — необязательный. Показывать номер недель. Возможные значения:
  - `Y` — показывать
  - `N` — не показывать
- `showTasks` `string` — необязательный. Отображать задачи в календаре. Возможные значения:
  - `Y` — отображать
  - `N` — не отображать
- `syncTasks` `string` — необязательный. Синхронизировать календарь задач. Возможные значения:
  - `Y` — да
  - `N` — нет
- `showCompletedTasks` `string` — необязательный. Отображать завершенные задачи. Возможные значения:
  - `Y` — отображать
  - `N` — не отображать
- `lastUsedSection` `string` — необязательный. Идентификатор календаря, который используется при создании событий, если в параметрах не передан идентификатор календаря. 
  Значение по умолчанию — `false`
- `sendFromEmail` `string` — необязательный. E-mail для отправки почтовых приглашений
- `defaultSections` `object` — необязательный. Настройки предустановленных календарей.
  Ключем объекта настроек может быть:
  - `user[id]` — тип Календарь пользователя c идентификатором пользователя. Например, `user12` соответствует календарю пользователя с идентификатором `12`
  - `group[id]` — тип Календарь группы с идентификатором группы. Например, `group36` соответствует календарю группы с идентификатором `36`
  Значением объекта является идентификатор календаря
- `syncPeriodPast` `string` — необязательный. Количество месяцев для синхронизации в прошлом периоде
- `syncPeriodFuture` `string` — необязательный. Количество месяцев для синхронизации в будущем периоде
- `defaultReminders` `object` — необязательный. Объект со стандартными настройками [напоминаний о событии](#defaultReminders)

### Объект defaultReminders

- `fullDay` `array` — необязательный. Массив [стандартных настроек напоминаний](#reminder-settings) для целодневных событий
- `withTime` `array` — необязательный. Массив [стандартных настроек напоминаний](#reminder-settings) для событий с указанием времени

## Ответ

HTTP-статус: 200

```json
{
    "result": true,
    "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` `boolean`. Возвращает `true` в случае успешного выполнения

## Ошибки

HTTP-статус: 400

```json
{
    "error": "",
    "error_description": "Не задан обязательный параметр \"settings\" для метода \"calendar.user.settings.set\""
}
```

- — — Не задан обязательный параметр "settings" для метода "calendar.user.settings.set". Не передан обязательный параметр `settings`

## Примеры запроса

### cURL (Webhook)

```bash
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"settings":{"view":"month","meetSection":"4","crmSection":"4","showDeclined":true,"denyBusyInvitation":false,"collapseOffHours":"N","showWeekNumbers":"N","showTasks":"Y","syncTasks":"N","showCompletedTasks":"N","lastUsedSection":"false","sendFromEmail":"","defaultSections":{"user1":"4","group6":"49"},"syncPeriodPast":"3","syncPeriodFuture":"12","defaultReminders":{"fullDay":[{"type":"min","count":15}],"withTime":[{"type":"min","count":50}]}}}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/calendar.user.settings.set
```

### cURL (OAuth)

```bash
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"settings":{"view":"month","meetSection":"4","crmSection":"4","showDeclined":true,"denyBusyInvitation":false,"collapseOffHours":"N","showWeekNumbers":"N","showTasks":"Y","syncTasks":"N","showCompletedTasks":"N","lastUsedSection":"false","sendFromEmail":"","defaultSections":{"user1":"4","group6":"49"},"syncPeriodPast":"3","syncPeriodFuture":"12","defaultReminders":{"fullDay":[{"type":"min","count":15}],"withTime":[{"type":"min","count":50}]}},"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/calendar.user.settings.set
```

### JS (TS)

```ts
// 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 the payload returned in result (match the "response handling" section of the page)
type CalendarUserSettingsSetResult = boolean

try {
  const response = await $b24.actions.v2.call.make<CalendarUserSettingsSetResult>({
    method: 'calendar.user.settings.set',
    params: {
      settings: {
        view: 'month',
        meetSection: '4',
        crmSection: '4',
        showDeclined: true,
        denyBusyInvitation: false,
        collapseOffHours: 'N',
        showWeekNumbers: 'N',
        showTasks: 'Y',
        syncTasks: 'N',
        showCompletedTasks: 'N',
        lastUsedSection: 'false',
        sendFromEmail: '',
        defaultSections: {
          user1: '4',
          group6: '49',
        },
        syncPeriodPast: '3',
        syncPeriodFuture: '12',
        defaultReminders: {
          fullDay: [
            {
              type: 'min',
              count: 15,
            },
          ],
          withTime: [
            {
              type: 'min',
              count: 50,
            },
          ],
        },
      },
    },
    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('Settings saved:', result)
  }
} catch (error) {
  // Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
  console.error(error)
}
```

### JS (UMD)

```html
<!-- 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 setCalendarUserSettings() {
    try {
      // Initialize the SDK inside a Bitrix24 frame
      const $b24 = await B24Js.initializeB24Frame()

      const response = await $b24.actions.v2.call.make({
        method: 'calendar.user.settings.set',
        params: {
          settings: {
            view: 'month',
            meetSection: '4',
            crmSection: '4',
            showDeclined: true,
            denyBusyInvitation: false,
            collapseOffHours: 'N',
            showWeekNumbers: 'N',
            showTasks: 'Y',
            syncTasks: 'N',
            showCompletedTasks: 'N',
            lastUsedSection: 'false',
            sendFromEmail: '',
            defaultSections: {
              user1: '4',
              group6: '49',
            },
            syncPeriodPast: '3',
            syncPeriodFuture: '12',
            defaultReminders: {
              fullDay: [
                {
                  type: 'min',
                  count: 15,
                },
              ],
              withTime: [
                {
                  type: 'min',
                  count: 50,
                },
              ],
            },
          },
        },
        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('Settings saved:', result)
    } catch (error) {
      // Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
      console.error(error)
    }
  }

  document.addEventListener('DOMContentLoaded', setCalendarUserSettings)
</script>
```

### Python

```python
from b24pysdk.errors import BitrixAPIError, BitrixSDKException

try:
    bitrix_response = client.calendar.user.settings.set(
        settings={
            "view": "month",
            "meetSection": "4",
            "crmSection": "4",
            "showDeclined": True,
            "denyBusyInvitation": False,
            "collapseOffHours": "N",
            "showWeekNumbers": "N",
            "showTasks": "Y",
            "syncTasks": "N",
            "showCompletedTasks": "N",
            "lastUsedSection": "false",
            "sendFromEmail": "",
            "defaultSections": {
                "user1": "4",
                "group6": "49",
            },
            "syncPeriodPast": "3",
            "syncPeriodFuture": "12",
            "defaultReminders": {
                "fullDay": [
                    {
                        "type": "min",
                        "count": 15,
                    },
                ],
                "withTime": [
                    {
                        "type": "min",
                        "count": 50,
                    },
                ],
            },
        },
    ).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}")
```

### PHP

```php
try {
    $response = $b24Service
        ->core
        ->call(
            'calendar.user.settings.set',
            [
                'settings' => [
                    'view'              => 'month',
                    'meetSection'       => '4',
                    'crmSection'        => '4',
                    'showDeclined'      => true,
                    'denyBusyInvitation' => false,
                    'collapseOffHours'  => 'N',
                    'showWeekNumbers'   => 'N',
                    'showTasks'         => 'Y',
                    'syncTasks'         => 'N',
                    'showCompletedTasks' => 'N',
                    'lastUsedSection'   => 'false',
                    'sendFromEmail'     => '',
                    'defaultSections'   => [
                        'user1'  => '4',
                        'group6' => '49'
                    ],
                    'syncPeriodPast'    => '3',
                    'syncPeriodFuture'  => '12',
                    'defaultReminders'  => [
                        'fullDay'  => [
                            [
                                'type'  => 'min',
                                'count' => 15
                            ]
                        ],
                        'withTime' => [
                            [
                                'type'  => 'min',
                                'count' => 50
                            ]
                        ]
                    ]
                ]
            ]
        );

    $result = $response
        ->getResponseData()
        ->getResult();

    echo 'Success: ' . print_r($result, true);
    // Нужная вам логика обработки данных
    processData($result);

} catch (Throwable $e) {
    error_log($e->getMessage());
    echo 'Error setting user calendar settings: ' . $e->getMessage();
}
```

### BX24.js

```js
BX24.callMethod(
    'calendar.user.settings.set',
    {
        settings: {
            view: 'month',
            meetSection: '4',
            crmSection: '4',
            showDeclined: true,
            denyBusyInvitation: false,
            collapseOffHours: 'N',
            showWeekNumbers: 'N',
            showTasks: 'Y',
            syncTasks: 'N',
            showCompletedTasks: 'N',
            lastUsedSection: 'false',
            sendFromEmail: '',
            defaultSections: {
                user1: '4',
                group6: '49'
            },
            syncPeriodPast: '3',
            syncPeriodFuture: '12',
            defaultReminders: {
                fullDay: [
                    {
                        type: 'min',
                        count: 15
                    }
                ],
                withTime: [
                    {
                        type: 'min',
                        count: 50
                    }
                ]
            }
        }
    }
);
```

### PHP CRest

```php
require_once('crest.php');

$result = CRest::call(
    'calendar.user.settings.set',
    [
        'settings' => [
            'view' => 'month',
            'meetSection' => '4',
            'crmSection' => '4',
            'showDeclined' => true,
            'denyBusyInvitation' => false,
            'collapseOffHours' => 'N',
            'showWeekNumbers' => 'N',
            'showTasks' => 'Y',
            'syncTasks' => 'N',
            'showCompletedTasks' => 'N',
            'lastUsedSection' => 'false',
            'sendFromEmail' => '',
            'defaultSections' => [
                'user1' => '4',
                'group6' => '49'
            ],
            'syncPeriodPast' => '3',
            'syncPeriodFuture' => '12',
            'defaultReminders' => [
                'fullDay' => [
                    [
                        'type' => 'min',
                        'count' => 15
                    ]
                ],
                'withTime' => [
                    [
                        'type' => 'min',
                        'count' => 50
                    ]
                ]
            ]
        ]
    ]
);

echo '<PRE>';
print_r($result);
echo '</PRE>';
```

### Go

```go
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "calendar.user.settings.set", b24.Params{
	"settings": b24.Params{
		"view":               "month",
		"meetSection":        "4",
		"crmSection":         "4",
		"showDeclined":       true,
		"denyBusyInvitation": false,
		"collapseOffHours":   "N",
		"showWeekNumbers":    "N",
		"showTasks":          "Y",
		"syncTasks":          "N",
		"showCompletedTasks": "N",
		"lastUsedSection":    "false",
		"sendFromEmail":      "",
		"defaultSections": b24.Params{
			"user1":  "4",
			"group6": "49",
		},
		"syncPeriodPast":   "3",
		"syncPeriodFuture": "12",
		"defaultReminders": b24.Params{
			"fullDay": []b24.Params{
				{
					"type":  "min",
					"count": 15,
				},
			},
			"withTime": []b24.Params{
				{
					"type":  "min",
					"count": 50,
				},
			},
		},
	},
})
if err != nil {
	return fmt.Errorf("calendar.user.settings.set: %w", err)
}

var ok bool
if err := json.Unmarshal(res.Result, &ok); err != nil {
	return fmt.Errorf("разбор ответа: %w", err)
}
fmt.Println("выполнено:", ok)
```

Оригинал в официальной документации: https://apidocs.bitrix24.ru/api-reference/calendar/calendar-user-settings-set.html
