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 開始時間が指定されていないイベントは、この時間から開始されます。形式は HH:mm です。午前 6 時の場合は 06:00 と入力します。
all day event end time 終了時間が指定されていないイベントは、この時間で終了します。形式は HH:mm です。午後 6 時の場合は 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 サイドバーの「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

ライブストリームイベント

ライブイベントの場合、ライブストリーム機能を使用して、メンバーがイベントを視聴しながらチャットに参加できるようにします。

ライブストリームイベントには以下が含まれます:

ライブストリームイベントの前提条件

ライブストリームイベントを使用するには、chat enabled を有効にする必要があります。これは、ライブストリームがイベントに付随するチャットチャンネルを作成するためです。また、discourse post event enabledcalendar enabled も有効にする必要があります。

ライブストリームイベントの作成

ライブストリームイベントを作成するには:

  1. 新しいトピックを開きます。
  2. コンプオーザーツールバーの + アイコンを選択し、Create Event(イベントがトピックにまだ追加されていない場合)をクリックします。
  3. イベントビデオのリンク(例:YouTube URL)を場所/URL フィールドに貼り付けます。
  4. “livestream” をオンにします。

すると、イベントとライブストリームが作成され、右側に付随するチャットチャンネルが表示されます。

ユーザーがイベントで Going をクリックすると、チャットチャンネルに自動的に参加し、会話に参加できるようになります!

Zoom ウェビナーのライブストリーミング

ライブストリームを使用して、Discourse で直接 Zoom ウェビナーをホストできます。これにより、メンバーはコミュニティを離れずにイベントを視聴し、付随するチャットチャンネルに参加できます。

Zoom ウェビナーの前提条件

ライブストリームの前提条件に加えて、以下の設定を行う必要があります:

  • livestream zoom enabled をオンにします。
  • livestream zoom sdk key 設定に Zoom Meeting SDK キーを入力します。
  • livestream zoom sdk secret 設定に Zoom Meeting SDK シークレットを入力します。

Zoom Meeting SDK キーとシークレットの取得方法:

  1. marketplace.zoom.us にアクセスし、Develop をクリックし、Build app をクリックします。

  2. 作成するアプリのタイプを聞かれたら、General App を選択し、Create をクリックします。

  3. アプリの App Credentials ページから、Client ID(SDK キー)と Client Secret(SDK シークレット)をコピーします。

  4. Embed で、Meeting SDK 権限を有効にします。

  5. Discourse で、Admin → All site settings にアクセスし、ステップ 3 の値を livestream zoom sdk keylivestream zoom sdk secret に入力します。

Zoom ウェビナーが Discourse で正常に動作するには:

  • ウェビナーの参加に登録やパスコードが必要ないようにしてください。

  • すべての議論が単一の Discourse チャットチャンネルで行われ、ウェビナー終了後も会話が継続できるようにするために、Zoom の組み込みウェビナーチャットを無効にしてください。

Zoom ウェビナーのライブストリームイベントの作成

Zoom ウェビナーのライブストリームイベントを作成するには:

  1. 新しいトピックを開き、+ アイコンを選択し、Create Event をクリックします。
  2. Zoom ウェビナーのリンク(例:https://zoom.us/``...)を URL/Location フィールドに貼り付けます。
  3. Livestream をオンにします。
  4. イベント名、開始時間、終了時間、その他のイベント詳細を希望通りに設定します。
  5. トピックを投稿します。

他のライブストリームイベントと同様に、このイベントはメンバーが “Going” で RSVP 後に自動的に参加する付随する Discourse チャットチャンネルと共に作成されます。

メンバーの体験

メンバーがウェビナーを体験する方法は以下の通りです:

イベント前

イベント開始 30 分前から Join Zoom ボタンが表示されます。そのウィンドウ外では、ボタンが無効化され、いつ利用可能になるかを示すメッセージが表示されます。

イベント中

メンバーが Join Zoom をクリックすると、ウェビナーがトピックページにロードされます(または、ホストがまだイベントを開始していない場合は、メンバーはホストが開始するまで待機する必要があります)。

ウェビナーに参加する際にオーディオは自動的に接続されません。参加者は Zoom ツールバーのオーディオアイコンをクリックまたはタップして接続する必要があります。これは Zoom SDK の制限であり、変更することはできません。

モバイルでは、ウェビナーが全画面の Zoom ビューで開きます(イベントトピック URL の末尾に /zoom を追加することでデスクトップでもアクセス可能)で、イベント中にチャットオーバーレイパネルを開くことができるフローティング Chat ボタンがあります。

イベント後

Join Zoom ボタンはイベント終了時間から 10 分後に非表示になります。チャットチャンネルは、あなたが閉じるまで参加者がアクセス可能です。

他のプラグインとの統合

このプラグインのコンポーネントを 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 で 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?
Db:migrate fails on discourse-calendar
I am looking for a webhook or event api
Inserting date/time into new topic's title field (ie, right here > !)
📅 Event List Widget (Layouts Plugin)
Please better document the Discourse Calendar plugin
Vacation autoresponder for users who are away?
Creating sub-communities in a discourse server
Plugin to show upcoming events on hosted discourse
Go from a Wordpress + Discourse structure to a Discourse site only?
Moderator/Admin Off Duty Button
Plugin to gather approvals / signatures on an initiative?
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)
Help us test Horizon, our newest theme
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!
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
Current Projects - June 2026
Event Creation
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
Add color to events based on event category or tag?
Is there any way to change the starting date of the Calendar?