# Инструкция по настройке Календаря

## Добавить в сценарий блок HTTP-запрос

<figure><img src="/files/vG094fVt5kitRCT9RYeA" alt="" width="563"><figcaption></figcaption></figure>

## **Настройки блока HTTP-запрос**

<figure><img src="/files/xubhtDvN9rETbyJ4VWH4" alt="" width="534"><figcaption><p>Блок HTTP-запрос</p></figcaption></figure>

Копируйте фрагменты ниже и вставляйте в настройках своего блока HTTP-запрос.

### **URL**

```url
https://maxonline.ru/botjet/Calendar/v5.1/
```

Вы можете встретить в инструкциях ссылки с окончанием v1÷v4. Это старые  версии. \
[Чем отличаются версии ботжета "Календарь"](/instrukcii-dlya-leadtex/botdzhety/kalendar/versii-botdzheta-kalendar.md)

{% hint style="info" %}
Всегда копируйте ссылку из блока выше. ☝ В нем самая последняя версия ботджета.
{% endhint %}

#### **Метод :** "POST".

#### **Заголовки** : нет

### **Body**

*x-www-form-urlencoded*

#### **Параметры запроса**

<figure><img src="/files/1mbhsF4PoYks7vB9BJcA" alt="" width="423"><figcaption></figcaption></figure>

{% hint style="info" %}
Важно точно прописать имена параметров запроса (левая колонка) и имена переменных - значений параметров (правая колонка).
{% endhint %}

<table data-full-width="true"><thead><tr><th width="160">key</th><th width="233">value</th><th width="96" align="center">Обязат.</th><th>Описание </th></tr></thead><tbody><tr><td><strong>token</strong></td><td>token из BotFather в Telegram<br><br>или <br><br>Токен для бота в MAX из <a href="https://business.max.ru/self/#/chat-bots">https://business.max.ru/self/#/chat-bots</a> </td><td align="center"><mark style="color:red;">да</mark></td><td><strong>Telegram:</strong><br><em>API token из BotFather</em>. <br><strong>MAX:</strong><br>Токен для чат-бота с платформы MAX для партнеров.<br><em>На картинке ниже указана глобальная переменная {{ token }}, в которой сохраняется API</em> <em>token из BotFather или Токен с платформы MAX в зависимости от того, где используете.</em></td></tr><tr><td><strong>chat_id</strong></td><td><strong>{{ telegram_id }}</strong> для Telegram,<br><strong>{{ max_id }}</strong> для MAX</td><td align="center"><mark style="color:red;">да</mark></td><td>ID <em>контакта в</em> Telegram или MAX (пользователя чат-бота). Используется глобальная константа <br>{{ telegram_id }} или <br>{{ max_id }}</td></tr><tr><td><strong>command</strong></td><td>{{$calendar_command}}</td><td align="center"><mark style="color:red;">да</mark></td><td><em>Управляющая команда</em>. Используется локальная переменная {{$calendar_command}}. Переменная получает свое значение в графе "Записать ответ в пользовательскую переменную". Удаляется после каждого запроса.</td></tr><tr><td><strong>messid</strong></td><td>{{$calendar_message_id}}</td><td align="center"><mark style="color:red;">да</mark></td><td><em>ID сообщения</em>. Используется локальная переменная {{$calendar_message_id}}. Переменная получает свое значение в графе "Записать ответ json в переменные". Удаляется после выбора конкретной даты в календаре.</td></tr><tr><td><strong>hidepast</strong></td><td>1</td><td align="center"><mark style="color:green;">нет</mark></td><td><em>Скрыть прошлое</em>. Если добавлен и равен 1, запрещает показ прошедших дней, месяцев и годов. Кнопки прошедших дней будут пустыми и нажатие не приведет к действию.</td></tr><tr><td><strong>hidres</strong></td><td>1</td><td align="center"><mark style="color:green;">нет</mark></td><td><em>Скрыть результат</em>. Если добавлен и равен 1, отключает вывод сообщения о выбранной дате после нажатия на кнопку дня. Сообщение с календарем исчезнет и произойдет переход в блок сценария, ID которого указан в JavaScript-коде</td></tr><tr><td><strong>text</strong></td><td>&#x3C;текстовое сообщение><br><em><mark style="color:orange;">Например: "Выбери дату брони"</mark></em></td><td align="center"><mark style="color:green;">нет</mark></td><td><em>Свое сообщение перед календарем</em>. Если параметр не добавлен, то перед календарем будет показано стандартное сообщение: "2025 г. - выбери день:"</td></tr><tr><td><strong>setdate</strong></td><td>31.12.2023</td><td align="center"><mark style="color:green;">нет</mark></td><td><p><em>Задать дату, на которой должен открыться Календарь</em>. <br>Дата должна быть в формате ДД.ММ.ГГГГ, например 31.12.2025. Можно подставить переменную, в которой сохранена дата.</p><p>Календарь покажет месяц, в котором находится заданная дата.</p></td></tr><tr><td><strong>lang</strong></td><td>en | ru</td><td align="center"><mark style="color:green;">нет</mark></td><td><em>Вывести календарь на английском.</em><br>Если lang не указан или его значение "ru", календарь будет на русском.<br>Другие языки не поддерживаются.</td></tr><tr><td><strong>opendates</strong></td><td>json-строка со списком дат</td><td align="center"><mark style="color:green;">нет</mark></td><td><em>Поставить метку ":" рядом с датами, указанными в json-строке.</em><br><a href="#vid-json-stroki-dlya-parametra-opendates"><em>Вид json-строки для пометки дат</em></a></td></tr><tr><td><strong>messenger</strong></td><td>telegram | max</td><td align="center"><mark style="color:green;">нет |</mark> <mark style="color:red;">да</mark> </td><td><em>Из какого мессенджера вызывается ботжет "Календарь"</em>: Telegram или MAX. Для Telegram параметр можно пропустить. Для MAX указывать обязательно.</td></tr></tbody></table>

#### Вид JSON-строки для параметра "**opendates**"&#x20;

Json-строка должна содержать ключ "date" и значение даты в формате "ДД.ММ.ГГГГ", которую нужно пометить.&#x20;

```json
[
    {
      "date": "10.12.2024"
    },
    {
      "date": "11.12.2024"
    }
]
```

Json-строка может содержать другие элементы "ключ": "значение" внутри объектов { }. Это не влияет на работу ботжета. **Важно:** **обязательно должно быть поле с ключом "date" и значением в виде даты.**

Одинаковые значения поля "date" могут встречаться в нескольких объектах { }. Это не влияет на работу ботжета. Если определенная дата встречается в одном объекте { }, или в нескольких, она будет помечена в календаре.

### **Timeout**

по-умолчанию

### Отправлять в запросе данные контакта

❌ выключить

### **Записать ответ json в переменные**&#x20;

{% hint style="warning" %}
Настраивать только для версий **v1 ÷ v5**. \
ВАЖНО! Начиная с версии v5.1 ВЫключить и соотношение переменных не настраивать❗
{% endhint %}

✅ включить / ❌ выключить (для v5.1)

### Соотношение переменных&#x20;

```
result.message_id ➡ calendar_message_id
```

<figure><img src="/files/ZoVGCe5yi0A0Nl8rjleS" alt="" width="424"><figcaption></figcaption></figure>

### **Обработать ответ с помощь JavaScript** &#x20;

✅ включить

#### Скопировать и вставить код:

{% code overflow="wrap" fullWidth="false" %}

```javascript
var nextBlock=0,jsCommand=getContactVariable("calendar_command");jsCommand&&jsCommand.match(/^\d{2}\.\d{2}\.\d{4}$/)&&(setContactVariable("calendar_Date",jsCommand),goToBlock(nextBlock),deleteContactVariable("calendar_command"),deleteContactVariable("calendar_message_id"),deleteContactVariable("opendates"));var r=response.data.result;r&&void 0!==r.message_id&&setContactVariable("calendar_message_id",r.message_id);r&&r.body&&void 0!==r.body.mid&&setContactVariable("calendar_message_id",r.body.mid);deleteContactVariable("calendar_command");
```

{% endcode %}

<figure><img src="/files/sk8GShRQZkqa5KImSi4C" alt="" width="410"><figcaption><p>JavaScript</p></figcaption></figure>

{% hint style="info" %}
После вставки код будет в одну строку - это нормально.
{% endhint %}

### **Записать ответ в пользовательскую переменную**&#x20;

✅ включить

**Имя переменной** :&#x20;

```
calendar_command
```

{% hint style="info" %}
☝ должно совпадать с именем переменной в параметре "command" раздела "Body".
{% endhint %}

### **Повторный вопрос**&#x20;

✅ включить

<figure><img src="/files/C9nWMT4WgyBp49R3EDC0" alt="" width="425"><figcaption></figcaption></figure>

## **Переход на блок сценария после выбора даты**

<figure><img src="/files/m3d5Z8oc7hxVXiLtuwWW" alt="" width="563"><figcaption><p>Переход на следующий блок сценария</p></figcaption></figure>

1. Открой настройки блока сценария, которому должно быть передано управление после выбора даты в Календаре.
2. В самом низу панели настроек блока есть "ID ....". (смотри картинку ☝)
3. Скопируй цифры после ID. **Только цифры!**
4. В коде JavaScript найди в первой фразе "`var nextBlock=0`" вместо `0` вставь скопированный ID блока.

<figure><img src="/files/sk8GShRQZkqa5KImSi4C" alt="" width="410"><figcaption><p>Вставь в JavaScript ID блока сценария, который должен отработать после выбора даты</p></figcaption></figure>

> ❗ **Важно. От блока HTTP-запрос не должно идти связей к следующим по сценарию блокам.**

***Настройка ботджета "Календарь" завершена.***

{% content-ref url="/pages/1JBP8UT05jkeYMV4mzqC" %}
[Поддержка](/support.md)
{% endcontent-ref %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.maxonline.ru/instrukcii-dlya-leadtex/botdzhety/kalendar/manual.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
