Discourse 日历与活动

:discourse2: 摘要 Discourse 日历与活动 为您的 Discourse 站点增添了动态且交互式的日历和活动功能。
:open_book: 安装指南 此插件已随 Discourse 核心捆绑发布。无需单独安装该插件。

启用日历和活动

您可以通过开关或从设置中启用日历和活动插件,两者均可在您的 admin/plugins 页面访问:

功能

毫不意外地,Discourse 日历与活动 为您的 Discourse 站点增添了日历和活动功能。借助这些功能,您可以创建单独的主题日历以跟踪重要场合或时间线,在分类中显示日历,添加节假日日历以标记假期、缺席或病假,创建交互式活动话题,以及显示所有即将举行的活动的简易日历摘要。

日历

可以在多个主题中创建自定义日历,您可以选择将希望获得更高可见性的日历显示在分类的话题列表上方。

您可以在以下链接中找到有关如何创建和使用日历的更详细信息:

活动

活动功能允许在话题中插入交互元素,您的成员可以使用这些元素报名参加或参与社区的活动。所有活动都会汇总在一个专用的全站日历中,并可选择在导航菜单中添加一个简易访问链接。您可以在以下链接中找到有关如何创建和使用此功能的更多信息:

:exclamation: 请勿将其与 Pavilion 的 Events 插件(注意是复数)混淆

日历设置

名称 描述
calendar enabled 启用 discourse-calendar 插件。这将在话题的第一篇帖子中添加对 [calendar][/calendar] 标签的支持。
holiday calendar topic id 员工假期/缺席日历的话题 ID。
holiday status emoji 定义用于假期状态的 emoji。
delete expired event posts after 过期活动相关的帖子将在 (n) 小时后自动删除。设置为 -1 以禁用删除。
all day event start time 未指定开始时间的活动将在此时间开始。格式为 HH:mm。对于早上 6:00,请输入 06:00
all day event end time 未指定结束时间的活动将在此时间结束。格式为 HH:mm。对于下午 6:00,请输入 18:00
calendar categories 在分类顶部显示日历。必填设置是 categoryId 和 postId。例如:categoryId=6;postId=453[1] 其他有效设置:tzPicker[2], weekends[3] 和 defaultView[4]
calendar categories 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 在侧边栏“更多”下显示即将举行的活动链接。需要 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

直播活动

对于直播活动,请使用直播功能让成员观看活动并同时参与聊天。

直播活动包括:

直播活动的前提条件

要使用直播活动,您必须启用 chat enabled,因为直播会创建聊天频道以配合您的活动,此外还需要启用 discourse post event enabledcalendar enabled

配置直播

有几个设置需要配置:

  • livestream enabled:开启此选项以使用直播活动。
  • livestream chat allowed groups:设置为 Trust Level 0 以允许所有登录用户在活动期间聊天。

创建直播活动

要创建直播活动:

  1. 打开一个新话题。
  2. 在活动编辑器中粘贴活动视频链接(例如 YouTube URL)。
  3. 在活动编辑器工具栏中选择 + 图标,然后单击 Create Event(如果活动尚未添加到您的话题中),然后使用该活动的详细信息更新该活动。
  4. 为话题添加 #livestream 标签。

您将看到活动、直播以及右侧的配套聊天频道已创建。

一旦任何用户在活动中点击 Going,他们就会自动加入聊天频道,从而参与对话!

与其他插件的集成

您可以使用此插件中的组件与 Right Sidebar Blocks 配合使用。您需要确保在 Right Sidebar Blocks 组件中启用了所需的路由。块名称将为 upcoming-events-list。历史上,日历插件本身需要额外的设置,但现在已简化。

这是侧边栏日历的默认外观。

如果您不希望显示时间,可以在组件的块设置中添加空的 timeFormat 值。

:discourse2: 由我们托管?此插件在我们的 Business 和 Enterprise 套餐中可用 Calendar | Discourse - Civilized Discussion


  1. categoryId 是日历将显示顶部的分类。
    postId 是您使用 [calendar][/calendar] 放置日历的帖子 ↩︎

  2. 它可以在日历右上角显示时区选择器。默认为 False,您可以通过 tzPicker=true 启用它 ↩︎

  3. 它可以从日历中隐藏周六和周日。默认为 True。您可以通过 weekends=false 将其设置为 false. ↩︎

  4. defaultView 将设置日历的视图(天、周等)。可以设置为:

    defaultView=agendaDay
    defaultView=agendaWeek
    defaultView=month (默认)
    defaultView=listNextYear ↩︎

98 个赞
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?
📅 Event List Widget (Layouts Plugin)
Inserting date/time into new topic's title field (ie, right here > !)
I am looking for a webhook or event api
Db:migrate fails on discourse-calendar
Plugin to show upcoming events on hosted discourse
Moderator/Admin Off Duty Button
Plugin to gather approvals / signatures on an initiative?
Please better document the Discourse Calendar plugin
Vacation autoresponder for users who are away?
Creating sub-communities in a discourse server
Go from a Wordpress + Discourse structure to a Discourse site only?
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
Help us test Horizon, our newest theme
Easily create Events categories using the Calendar and Events plugin
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
It's easier than ever to create events in Discourse!
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