Мы часто встречались с потребностью организаций создавать анонс своих мероприятий в виде календаря и чтобы у пользователей была возможность онлайн-записи на мероприятия. И если в WordPress эту нишу твердо занимает плагин Events Calendar (большинство функций у него бесплатное), то для Битрикса готовых решений просто нет.
Вот и при работе над проектом «Равные консультанты в онкологии» мы в столкнулись с задачей, когда нужно было создать список мероприятий с отображением в виде календаря, которые пользователь мог бы фильтровать по нескольким параметрам (город проведения, категория проведения, периодичность мероприятия) с возможностью записаться на необходимое мероприятие. В очередной раз зайдя в Маркетплейс Битрикса и убедившись, что ничего похожего нет, поняли, что придется делать самим.
Учитывая сроки сдачи проекта, создавать модуль с нуля нам показалось неоправданным решением и мы решили приобрести модуль «Расписание» от компании Мибок и доработать под наши задачи. В этом модуле нам сразу понравилась реализация большого количества параметров, которые были нужны и нам: категории мероприятий, периодичность мероприятий, цвет отображения мероприятия в списке, возможность сохранения записи на мероприятие в инфоблок, возможность установления лимита записи на мероприятие и счетчик свободных мест.
Минусы модуля для наших задач:
Для реализации отображения списка мероприятий в виде календаря мы решили использовать библиотеку Tiva Events Calendar работающую на jQuery и Ajax, заменив ею шаблон из коробки от Мибок. Эта библиотека позволяет через Json выводить в шаблон расписания все записи анонсов мероприятий из нужного раздела, а также позволяет их сортировать через фильтры и инструменты навигации. Также в данной библиотеке есть возможность выводить анонс мероприятия во всплывающем окне (дата проведения и время проведения, название, изображение анонса, текст анонса) при наведении на название мероприятия в календаре.
Еще мы доработали вывод описания мероприятия на отдельную страницу и добавили проверку посетителя, чтобы зарегистрироваться мог только авторизованный пользователь. Готовое решение полностью закрывало задачи клиента.











Татьяна Михайловна
Нам нужен календарь для учебного центра: расписание курсов, вебинаров, экзаменов. Важно, чтобы слушатели видели только открытые события, а внутренние (подготовка, репетиции) были скрыты. Как в Битриксе разграничить видимость событий для разных групп пользователей? И можно ли сделать так, чтобы при регистрации на курс событие автоматически попадало в личный календарь слушателя?
Студия Фонарь
Здравствуйте! Видимость событий настраивается через права доступа к элементам инфоблока: для каждой группы пользователей задаётся свой уровень доступа (чтение/запись). Внутренние события можно помечать специальным свойством и скрывать их на фронтенде для внешних групп. Автоматическое добавление в личный календарь делается через генерацию .ics-файла при регистрации — его можно скачать или отправить на почту, и он импортируется в любой календарь (Google, Outlook, Apple). Если скажете, какой модуль регистрации вы используете, подскажем, как встроить эту логику.
Ольга Николаевна
Читала статью и думала про мобильную версию: у нас много сотрудников, которые работают “в полях” и смотрят календарь с телефонов. Насколько календарь в Битриксе удобен на мобильных? Есть ли возможность быстро добавить событие прямо из мобильного приложения или хотя бы из мобильной версии сайта, не заходя в админку?
Студия Фонарь
Здравствуйте, Ольга Николаевна! Стандартный календарь в Битриксе на мобильных устройствах работает, но интерфейс не всегда удобен для быстрого добавления событий. Оптимально делать отдельный лёгкий интерфейс (например, простую форму в публичной части или мини-приложение), который отправляет данные в тот же инфоблок, что и основной календарь. Так сотрудники смогут добавлять события с телефона, а в десктопной версии всё будет отображаться единообразно. Можем показать пример такой формы и API-методов для интеграции.
Елена В.
Планируем использовать календарь для планирования отпусков и больничных в отделе из 120 человек. Хочется, чтобы сотрудники могли сами отмечать периоды отсутствия, но чтобы руководитель обязательно подтверждал. В статье про это не сказано — подскажите, как лучше реализовать такой сценарий на Битриксе? Можно ли обойтись без программирования или всё-таки придётся писать свой компонент?
Студия Фонарь
Здравствуйте! Такой сценарий можно реализовать без написания собственного компонента, но с небольшой доработкой. Вариант: использовать инфоблок “Отпуска и больничные” с бизнес-процессом на утверждение. Сотрудник создаёт элемент, он уходит на согласование руководителю, после утверждения статус меняется, и событие автоматически попадает в общий календарь через агент или вебхук. Если подскажете, какая версия Битрикса у вас стоит, то мы подскажем конкретные шаги и шаблоны бизнес-процессов.
Дмитрий Сергеевич
Интересует вопрос производительности: если в календаре будет по 500–700 событий в месяц (встречи, задачи, дедлайны), не начнёт ли он тормозить при отображении месяца и при фильтрации? У нас уже есть портал на Битриксе, и некоторые списки при большом объёме данных начинают “подвисать”. Есть ли какие-то проверенные практики оптимизации именно для компонента календаря?
Студия Фонарь
Дмитрий Сергеевич, здравствуйте и спасибо за вопрос — он очень практичный. При 500–700 событиях в месяц стандартный календарь Битрикса обычно работает стабильно, если правильно настроены индексы и кэширование. Основные практики: ограничить глубину выборки (например, показывать только текущий и следующий месяц), использовать AJAX-подгрузку при переключении месяцев, вынести тяжёлые поля (описания, файлы) в модальное окно, а в сетке оставить только ключевые данные. Также важно не перегружать события пользовательскими свойствами без необходимости. Если дадите доступ к админке (или описание текущей нагрузки), можем подсказать точечные настройки.
Дмитрий Сергеевич
Спасибо!
Анна П.
Спасибо за статью — очень вовремя! Мы как раз запускаем корпоративный портал для сети клиник, и календарь нужен, чтобы вести расписание врачей. Особенно полезным показался раздел про синхронизацию с внешними календарями — у нас часть администраторов привыкли работать в Google Календаре. Подскажите, а можно ли настроить двустороннюю синхронизацию, чтобы изменения в Битриксе сразу отображались и там, и наоборот?
Студия Фонарь
Здравствуйте и спасибо за отзыв! Двусторонняя синхронизация возможна, но реализуется через внешние коннекторы или кастомную разработку: стандартный модуль Битрикса даёт одностороннюю выгрузку (из Битрикса наружу). Для вашего сценария (клиника, расписание врачей) мы обычно делаем отдельный сервис-посредник, который отслеживает изменения и обновляет оба календаря. Если расскажете подробнее про объём данных и частоту изменений, подскажем архитектуру и примерный срок реализации.