Календарь и события Discourse

:discourse2: Краткое описание Discourse Calendar and Events добавляет динамические и интерактивные функции календаря и событий на ваш сайт Discourse.
:open_book: Руководство по установке Этот плагин встроен в ядро Discourse. Отдельная установка плагина не требуется.

Включение календаря и событий

Плагин Calendar and Events можно включить с помощью переключателя или через его настройки, доступные на странице admin/plugins:

Возможности

Как и следовало ожидать, Discourse Calendar and Events добавляет на ваш сайт Discourse функции календаря и событий. С их помощью вы можете:

  • создавать индивидуальные календари тем для отслеживания важных дат или временных рамок;
  • отображать календари в категориях;
  • добавлять календарь праздников для отметки отпусков, отсутствия или больничных;
  • создавать интерактивные темы событий;
  • а также показывать сводку всех предстоящих событий в удобном календаре.

Календари

Специальные календари можно создавать в нескольких темах, а те, которым вы хотите придать большую заметность, можно отображать над списком тем категории.

Более подробную информацию о том, как создавать и использовать календари, вы найдете здесь:

События

Функция событий позволяет добавлять в темы интерактивные элементы, с помощью которых ваши участники могут регистрироваться для участия или присутствия на мероприятиях вашего сообщества. Все они сводятся в общий календарь всего сайта, с возможностью добавить быструю ссылку в меню навигации. Более подробную информацию о том, как создавать и использовать эту функцию, вы найдете здесь:

:exclamation: Это не следует путать с плагином Pavilion Events plugin (обратите внимание на множественное число)

Настройки календаря

Имя Описание
calendar enabled Включить плагин discourse-calendar. Это добавит поддержку тега [calendar][/calendar] в первом сообщении темы.
holiday calendar topic id ID темы календаря праздников/отсутствий для персонала.
holiday status emoji Определяет эмодзи, используемый для статуса праздника.
delete expired event posts after Сообщения с истекшими событиями будут автоматически удаляться через (n) часов. Установите -1, чтобы отключить удаление.
all day event start time События, для которых не указано время начала, начнутся в это время. Формат: ЧЧ:мм. Для 6:00 введите 06:00.
all day event end time События, для которых не указано время окончания, закончатся в это время. Формат: ЧЧ:мм. Для 18:00 введите 18:00.
calendar categories Отображать календарь вверху категории. Обязательные настройки: categoryId и postId. Например: categoryId=6;postId=453[1]. Другие допустимые настройки: tzPicker[2], weekends[3] и defaultView[4].
calendar categories outlet Позволяет изменить выход (outlet), на котором будет отображаться календарь категории.
working days Установить рабочие дни. Вы можете отображать доступность группы, используя тег timezones в сообщении, например: [timezones group=admins][timezones]
working day start hour Время начала рабочих часов.
working day end hour Время окончания рабочих часов.
close to working day hours extension Установить время расширения в рабочих часах для подсветки часовых поясов.
calendar automatic holidays enabled Автоматически устанавливать статус праздника на основе региона пользователя (примечание: вы можете отключить конкретные автоматические праздники в настройках плагина).
map events title Заголовок бокового календаря на основе категории. По умолчанию «Upcoming events».

Настройки событий

Имя Описание
discourse post event enabled Включает функции событий. Примечание: также требуется включить calendar enabled.
discourse post event allowed on groups Группы, которым разрешено создавать события.
displayed invitees limit Ограничивает количество приглашенных, отображаемых в событии.
display post event date on topic title Отображает дату события после заголовка темы.
use local event date Использовать локальную дату после заголовка темы вместо относительного времени.
discourse post event edit notifications time extension Расширяет (в минутах) период после окончания события, когда приглашенным со статусом going все еще отправляются уведомления об изменениях в исходном сообщении.
discourse post event allowed custom fields Позволяет каждому событию устанавливать значение пользовательских полей.
events calendar categories Отображать календарь событий вверху категории.
sort categories by event start date enabled Включить сортировку тем категорий по дате начала события.
disable resorting on categories enabled Позволяет категориям отключать возможность сортировки пользователями по категории событий.
sidebar show upcoming events Отображать ссылку на предстоящие события в боковой панели в разделе «More». Требуется post event enabled.
map events to color Назначает цвет события указанному тегу или категории.

:information_source: :curling_stone: Эндпоинт discourse-post-event/events.json теперь имеет дополнительный параметр для переключения между простым и подробным ответом. Чтобы получить подробный ответ, добавьте ?include_details=true:

/discourse-post-event/events.json?include_details=true

Трансляции событий

Для живых событий используйте функцию трансляции, чтобы участники могли смотреть событие и участвовать в чате одновременно.

Трансляция события включает:

  • Видеопоток (например, с YouTube);
  • Событие календаря, созданное по инструкции Discourse Calendar and Events;
  • Автоматически создаваемый для события канал чат.

Требования для трансляций событий

Для использования трансляций событий необходимо включить chat enabled, так как трансляция создает канал чата для сопровождения вашего события, а также требуется discourse post event enabled и calendar enabled.

Создание трансляции события

Чтобы создать трансляцию события:

  1. Откройте новую тему.
  2. Выберите значок + на панели инструментов редактора и нажмите Create Event (если событие еще не было добавлено в вашу тему).
  3. Вставьте ссылку на видео события (например, URL YouTube) в поле «Место/URL».
  4. Включите переключатель «livestream».

Затем вы увидите, что событие и трансляция созданы, а справа появится сопутствующий канал чата.

Как только любой пользователь нажмет Going в событии, он автоматически присоединится к каналу чата, что позволит ему участвовать в разговоре!

Интеграция с другими плагинами

Вы можете использовать компонент из этого плагина с Right Sidebar Blocks. Убедитесь, что нужный маршрут включен в компонент Right Sidebar Blocks. Имя блока будет upcoming-events-list. Ранее для этого требовались дополнительные настройки в самом плагине Calendar, но теперь процесс был упрощен.

Так будет выглядеть боковой календарь по умолчанию.

Если вы не хотите отображать время, вы можете добавить пустое значение timeFormat в настройке блока компонента.

:discourse2: Если ваш сайт размещается у нас? Этот плагин доступен на наших тарифах Business и Enterprise Calendar | Discourse - Civilized Discussion


  1. categoryId — категория, над которой будет отображаться календарь.
    postId — сообщение, в котором размещается календарь с помощью [calendar][/calendar] ↩︎

  2. позволяет отображать выбор часового пояса в правом верхнем углу календаря. По умолчанию False, можно включить с помощью tzPicker=true ↩︎

  3. позволяет скрыть субботу и воскресенье из календаря. По умолчанию True. Можно отключить с помощью weekends=false. ↩︎

  4. defaultView устанавливает вид календаря (день, неделя и т.д.). Может быть установлен как:

    defaultView=agendaDay
    defaultView=agendaWeek
    defaultView=month (по умолчанию)
    defaultView=listNextYear ↩︎

99 лайков
How to use the calendar plugin?
Discourse Calendar - How to?
Calendar plugin, nothing is displayed
Discourse 2.2.0.beta3 Release Notes
How to use the calendar plugin?
Discourse Calendar dislpay link text rather than link url
Ability to mark any post as unread
Is there a room booking plugin?
Inserting date/time into new topic's title field (ie, right here > !)
I am looking for a webhook or event api
📅 Event List Widget (Layouts Plugin)
Db:migrate fails on discourse-calendar
Moderator/Admin Off Duty Button
Plugin to gather approvals / signatures on an initiative?
Go from a Wordpress + Discourse structure to a Discourse site only?
Creating sub-communities in a discourse server
Vacation autoresponder for users who are away?
Please better document the Discourse Calendar plugin
Plugin to show upcoming events on hosted discourse
Add color to events based on event category or tag?
Is there any way to change the starting date of the Calendar?
SEO applied to Discourse Official Plugins
Add color to events based on event category or tag?
Add recurrent items within a date-range
Use Case Question - Room/Equipment Booking
Best practices for communicating to user base
Integrate with Discourse-calendar
My Wiki of useful Meta (and other) links
Quotes in event name clears attendees
Calendar in Discourse
Show Cakeday dates on the Calendar plugin
Agenda de colegio
What are your favorite plugins for your community?
Display a category as a calendar by scheduled Topic-timer dates
Why you should use Discourse internally for your company/team instead of Slack (4 years use case)
Newbie question: Is there a comprehensive guide to configuring and administering Discourse instance?
Angus' Events Plugin :calendar:
When "closing" event it moves it to today's date & time
How to display different calendar views?
Discourse calendar and event iCal integration?
Can the auto-responder fire on @mentions?
Event/Calendar Plugin - Cannot select a user for bulk-invite
Bulk Invite via modal only allowing one user (and not displaying correctly)
Event Creation
500 Error when posting, moment.tz runtime error
Best practice for a topic for a recurring event
How to get "back" btn
Event Chat Channels Now Available
📅 New Calendar Feature: End Date for Recurring Events
🌍 New Calendar Feature: Show Local Time
What livestream/webinar platforms do you use?
Custom Wizard Plugin :mage:
ICS → Discourse Importer
How have you built a local community around Discourse?
Angus' Events Plugin :calendar:
What happens next?
Bundling more popular plugins with Discourse core
Calendar subscription URLs for external calendar apps
Listing event invitees with email addresses
Discourse Daily Challenges
Upcoming Events Extra Buttons and Enhancements
Horizon: High Context Topic Cards
Besoin de renseignement pour informer une annulation d'événement
Current Projects - May 2026
It's easier than ever to create events in Discourse!
Help us test Horizon, our newest theme
It is very difficult to make events all day in the events modal (and 00:00 is confusing)
Discourse Calendar - How to?
Angus' Events Plugin :calendar:
Topic List Previews (TLP)
New Topic button text does not change to New Event in sidebar in events category in Horizon Theme
Current Projects - June 2026
Easily create Events categories using the Calendar and Events plugin
Category Calendar with defaultView="listNextYear" not showing events
Calendar Core - Needs any special theme?
Creating and managing calendars
Sorting Categories by Title
Creating and managing events
Category Calendar with defaultView="listNextYear" not showing events
The "Save Changes" button is very low on my user preferences interface page
Group Timezones
Easily create Events categories using the Calendar and Events plugin
Available hours / work hours flair
Could use help, setting up new community
Feature request: wrap calendar items when there's just one per day
Right Sidebar Blocks
Custom Discourse instance for a writers club
Unread messages blue numbers appearing in Latest lately (when they shouldn't)?
Database migration chokes on huge value of a "calendar-details" item in table "post_custom_fields"
"Out of office" user indicator
Database migration chokes on huge value of a "calendar-details" item in table "post_custom_fields"
Angus' Events Plugin :calendar:
Angus' Events Plugin :calendar:
Calendar plugin features to make it really useful for us
"Out of office" user indicator
Can discourse display topic replies in reverse order?
Discourse Livestream
New to Discourse, have some questions :)
Expired events with end times are being removed from upcoming-events even with setting set to -1
Setup Continuous Integration using GitHub Actions

Этот плагин выглядит многообещающе, но в нём отсутствуют некоторые функции, из-за чего мы не можем перейти с плагина Pavilion.

  • Отображение событий, не являющихся «весь день», с указанием времени начала в календаре. В настоящее время все события выглядят как события на весь день.

  • Кнопка «Добавить событие» в редакторе рядом с селектором тегов (не скрытая в шестерёнке).

  • Ограничение категорий, в которых могут создаваться события, и указание, являются ли события обязательными в определённой категории.

Желательные улучшения:

  • Метаданные события в теме отображаются/вводятся только в верхней части темы (а не там, где находится курсор).
  • Возможность ограничить группы пользователей, которые могут создавать события в категории (например, только группа «EventPlanners» может создавать события в категории «Обсуждение», но все пользователи могут создавать темы, не являющиеся событиями, или редактировать темы, если тема установлена как Wiki).
  • Изменение URL /upcoming-events на /calendar.
13 лайков

2 сообщения были перенесены в новую тему: Статус праздника применяется неверно

Здравствуйте,
Спасибо за эту работу.

У меня есть два вопроса по UX:

  • Можно ли разместить кнопку «Добавить событие» рядом с кнопкой «Добавить место» в редакторе темы? Как это было в случае с плагином pavilion?
    image

  • Есть ли возможность добавить пункт «Календарь» в верхнее меню? Я не могу найти его в настройках.

Выглядит отлично! Есть несколько мыслей и вопросов:

Правильно ли я понимаю, что для создания календаря нужно просто создать новую тему и вставить в неё следующее:

Название календаря

[calendar]
[/calendar]

А чтобы добавить записи в календарь, достаточно сделать новый пост в той же теме с чем-то вроде следующего (нажав на иконку вставить время/дату в опциях поста):

Название события/записи

[date-range from=2024-04-18 to=2024-04-19 timezone="Europe/London"]

Это добавляет запись в календарь, что здорово, однако:

  • Можно ли добавлять записи в календарь так, чтобы у каждой из них была своя отдельная тема? (Я вижу, что можно создавать события в новых темах, но, похоже, нет способа добавить эти события в календарь).
  • Можно ли отображать «Ближайшие события» из конкретного календаря в письмах с дайджестом? Или, возможно, в левой колонке, причём каждая запись будет ссылаться на отдельную тему для этого события?

Если это пока невозможно, есть ли у вас планы добавить такую функцию?

1 лайк

@vinothkannans, не могли бы вы помочь с ревью этого PR?

1 лайк

Планируется ли добавить URL-канал, на который пользователи смогут подписываться? Уверен, что это будет сложно реализовать для всех событий, а не только для тех, на которые они подтвердили участие.

Во-вторых, было бы здорово добавить дополнительный уровень, который распознавал бы приватные события (или, возможно, это просто отдельный URL-канал для каждой группы).

6 лайков

Однако для URL /upcoming-events нет RSS-канала — это было бы отличным дополнением!

3 лайка

А как насчет синхронизации через CalDAV?

6 лайков

Для меня это тоже было бы поводом переключиться, действительно.

Это требует более тщательной доработки, так как упоминается вставка события в редактор и добавление деталей события не так, как показано на изображении. Разве событие было опцией?

Я установил плагин, и тег календаря работает в первом сообщении темы. Но я не вижу никаких опций событий или календаря в меню с шестерёнкой:

Не могли бы вы объяснить, что нужно сделать, чтобы опция события появилась в меню с шестерёнкой?

Вам нужно включить раздел событий плагина discourse post event enabled

2 лайка

Спасибо. Я как-то упустил эту настройку.

3 лайка

Как сделать так, чтобы создание события отображалось в теме категории, где ответы являются событиями?

Я вижу, что функция создания события работает при создании новых тем. Однако я хочу иметь календарь внутри темы, где ответы добавляют события. Это частично работает с помощью вставки даты, но не так хорошо, как функция создания события, которая предлагает больше опций.

1 лайк

В настоящее время пользователи могут выбрать регион в настройках своего профиля.

Я хотел бы дать возможность указывать регион при регистрации, добавив это поле в форму регистрации. Это возможно?

3 лайка

Отображается ли удалённый ответ в календаре?

Я не могу найти никаких настроек для изменения первого дня недели на понедельник. Если такой настройки нет, это легко реализовать? :thinking:

Другая проблема заключается в том, что ввод времени и даты сломан. Если это событие на весь день, должна быть возможность выбрать это до того, как поля ввода времени исказят даты, и даты, кажется, случайно меняются при редактировании.

Также заметил, что можно ввести 00:00 и во времени, и в дате (что иногда работает, а иногда нет), что приводит к ошибке в календаре. Это, в свою очередь, вызывает конфликт с черновиками, приводя к повторяющейся ошибке 422, пока страница не будет откатана к более ранней версии, а затем снова отредактирована и т. д.

3 лайка

Пожалуйста, ознакомьтесь здесь

1 лайк

Такой настройки нет, и поэтому я не пользуюсь этим. И я готов поспорить, что команда исправит эту ошибку, если это будет простая трюковая правка.

1 лайк