# 【插件说明】论坛日历和活动

**URL:** <https://niege.app/t/topic/67>\
**Category:** 开发调试\
**Tags:** Plugins, Discourse\
**Created:** [2025 年11 月 13 日 10:44 UTC](https://niege.app/t/topic/67 "2025-11-13T10:44:38Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

作者： ![niege](https://niege.app/user_avatar/niege.app/niege/32/3_2.png) [@niege](https://niege.app/u/niege)\
发布日期： [2025 年11 月 13 日 10:44 UTC](https://niege.app/t/topic/67/1 "2025-11-13T10:44:38Z")

</div>

| | | |
| --- | --- | --- |
| 🎊 | 总结 | **Discourse 日历和事件** 为您的 Discourse 站点添加了动态和交互式的日历和事件功能。 |
| 🛠 | 仓库链接 | [GitHub - discourse/discourse-calendar: Adds the ability to create a dynamic calendar in the first post of a topic.](https://github.com/discourse/discourse-calendar) |
| 📖 | 安装指南 | [如何在 Discourse 中安装插件](https://meta.discourse.org/t/install-plugins-in-discourse/19157) |

> 这是由 Discourse 团队维护的官方插件。

## 启用插件

日历插件可以通过切换开关或从其设置中启用，两者都可以从您的 `admin/plugins` 页面访问：

![](https://cdn.niege.app/original/1X/21ae37ed83dbe97b7b3544a4236d054bebeb7e75.png)

## 插件特点

不出所料， **Discourse 日历（和事件）** 为您的 Discourse 网站添加了日历和事件功能。有了这些，您可以创建单独的主题日历来跟踪重要场合或时间线，按类别显示日历，添加假期日历以标记假期、缺勤或病假，创建交互式事件主题，以及显示所有即将发生的事件的易于访问的日历摘要。

## 日历

可以在多个主题中创建自定义日历，并且您希望为其提供更高可见性的日历可以显示在类别的主题列表上方。

 ![](https://cdn.niege.app/original/1X/856693a778763454e6d93a7cacc0ea0e3d6b9209.png)

您可以在以下位置找到有关如何创建和使用日历的更多详细信息：

> [Creating and managing calendars - Using Discourse - Discourse Meta](https://meta.discourse.org/t/create-calendars/283773)  
> 🔖 本指南介绍了如何使用日历和活动插件，在 Discourse 中创建和管理日历。 🙋 所需用户级别：所有用户 日历是 Discourse 中的一项强大功能，可让您组织和显示社区内的活动。本指南将引导您完成创建日历、添加事件和有效管理日历的过程。

## 活动

 ![image](https://cdn.niege.app/original/1X/c309cfefaced86c4deb6e5cadaa80bd519ed0425.png)

活动功能允许将交互式元素插入到主题中，您的成员可以使用这些元素来注册参加或参与社区的活动。这些都汇总在一个专门的网站范围日历中，并可选择在您的导航菜单中添加易于访问的链接。您可以在以下位置找到有关如何创建和使用此功能的更多信息：

> [Creating and managing events - Using Discourse - Discourse Meta](https://meta.discourse.org/t/create-events/149964)  
> 🔖 本指南介绍了如何使用 Discourse 中的 Calendar（和事件）插件创建和管理事件。它介绍了如何创建活动、设置活动选项、与活动交互以及查看即将举行的活动日历。 🙋 所需的用户级别：所有用户（具有适当的权限） 启用事件 事件是 [Calendar（和 Event）插件](https://meta.discourse.org/t/discourse-calendar-and-event/97376) 的一项功能。

## 日历设置项

| 设置项目 | 说明 |
| --- | --- |
| 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 | 未指定开始时间的事件将在此时间启动。格式为 `HH:mm` 。对于 `6:00am` ，输入 `06:00` |
| all day event end time | 未指定结束时间的事件将在此时间结束。格式为 `HH:mm` 。对于 `6:00pm` ，输入 `18:00` |
| calendar categories | 在类别顶部显示日历。强制设置为 `categoryId` 和 `postId` 。例如： `categoryId=6;postId=453` 其他有效设置：`tzPicker` 、`weekends` 和 `defaultView` 。 |
| 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 | 在活动结束后延长（以分钟为单位），此时受邀者仍会收到原始帖子中的编辑通知。 |
| discourse post event allowed custom fields | 允许让每个事件设置自定义字段的值。 |
| events calendar categories | 在类别顶部显示事件日历。 |
| sort categories by event start date enabled | 启用按活动开始日期对类别主题进行排序。 |
| disable resorting on categories enabled | Allow categories （允许类别） 可禁用用户按事件类别排序的功能。 |
| sidebar show upcoming events | 在侧边栏中的“更多”下显示即将发生的活动链接。需要启用 `post event enabled` 。 |
| map events to color | 将事件颜色分配给指定的标签或类别 |

> ℹ 🥌 终端节点 `discourse-post-event/events.json` 现在有一个额外的参数，用于在简单响应和详细响应之间切换。要获得详细的响应，您可以添加 `?include_details=true` ，例如：  
> `/discourse-post-event/events.json?include_details=true`

## 与其他插件的集成

您可以将此插件中的组件与 [Right Sidebar Blocks](https://github.com/discourse/discourse-right-sidebar-blocks) 一起使用。您需要确保在 Right Sidebar Blocks 组件中启用所需的路由。区块名称将为 `upcoming-events-list` 。从历史上看，日历插件本身需要额外的设置，但这已经被简化了。

这是侧边栏日历默认的显示方式：

 ![image](https://cdn.niege.app/original/1X/b646ca1d6dda2e3ab086ea5ee00e21cf8dc3d58e.png)

如果你不想要时间，你可以在组件的 block 设置中添加一个空的 `timeFormat` 值，效果如下：

 ![image](https://cdn.niege.app/original/1X/ad14fa5542c619175d3bb4b71cc4d111de9c36f1.png)
