Calendrier et événements Discourse

:discourse2: Résumé Discourse Calendar and Events ajoute des fonctionnalités de calendrier et d’événements dynamiques et interactifs à votre site Discourse.
:open_book: Guide d’installation Ce plugin est inclus dans le noyau de Discourse. Il n’est pas nécessaire d’installer le plugin séparément.

Activation du calendrier et des événements

Le plugin Calendrier et Événements peut être activé soit via l’interrupteur, soit depuis ses paramètres, tous deux accessibles depuis votre page admin/plugins :

Fonctionnalités

Un peu étonnamment, Discourse Calendar and Events ajoute à la fois les fonctionnalités de calendrier et d’événements à votre site Discourse. Avec celles-ci, vous pouvez créer des calendriers de sujets individuels pour suivre des occasions importantes ou des chronologies, afficher des calendriers dans les catégories, ajouter un calendrier de vacances pour marquer les congés, absences ou jours de maladie, créer des sujets d’événements interactifs, ainsi qu’afficher un résumé de calendrier d’accès facile pour tous vos événements à venir.

Calendriers

Des calendriers personnalisés peuvent être créés dans plusieurs sujets, et ceux que vous souhaitez donner une visibilité accrue peuvent être affichés au-dessus de la liste des sujets d’une catégorie.

Vous pouvez trouver plus d’informations détaillées sur la création et l’utilisation des calendriers dans :

Événements

La fonctionnalité Événement permet d’insérer des éléments interactifs dans les sujets que vos membres peuvent utiliser pour s’inscrire pour assister ou participer aux activités de votre communauté. Ceux-ci sont tous résumés dans un calendrier dédié à l’échelle du site, avec l’option d’ajouter un lien d’accès facile à votre menu de navigation. Vous pouvez trouver plus d’informations sur la création et l’utilisation de cette fonctionnalité dans :

:exclamation: Cela ne doit pas être confondu avec le plugin Events de Pavilion (notez le pluriel)

Paramètres du calendrier

Nom Description
calendar enabled Active le plugin discourse-calendar. Cela ajoutera le support pour un tag [calendar][/calendar] dans le premier post d’un sujet.
holiday calendar topic id ID du sujet du calendrier de vacances/absence du personnel.
holiday status emoji Définit l’emoji utilisé pour le statut de vacances.
delete expired event posts after Les posts avec des événements expirés seront automatiquement supprimés après (n) heures. Réglez sur -1 pour désactiver la suppression.
all day event start time Les événements qui n’ont pas d’heure de début spécifiée commenceront à cette heure. Le format est HH:mm. Pour 6h00 du matin, entrez 06:00
all day event end time Les événements qui n’ont pas d’heure de fin spécifiée se termineront à cette heure. Le format est HH:mm. Pour 18h00, entrez 18:00
calendar categories Affiche un calendrier en haut d’une catégorie. Les paramètres obligatoires sont categoryId et postId. ex: categoryId=6;postId=453[1] Autres paramètres valides: tzPicker[2], weekends[3] et defaultView[4].
calendar categories outlet Permet de changer quel outlet doit afficher le calendrier de la catégorie.
working days Définit les jours ouvrables. Vous pouvez afficher la disponibilité d’un groupe en utilisant le tag timezones dans un post, ex: [timezones group=admins][timezones]
working day start hour Heure de début des heures de travail.
working day end hour Heure de fin des heures de travail.
close to working day hours extension Définit l’heure d’extension des heures de travail pour mettre en évidence les fuseaux horaires.
calendar automatic holidays enabled Définit automatiquement le statut de vacances en fonction de la région d’un utilisateur (note: vous pouvez désactiver des vacances automatiques spécifiques dans les paramètres du plugin)
map events title Mappe le titre du calendrier de la barre latérale en fonction de la catégorie. Par défaut “Upcoming events”

Paramètres des événements

Nom Description
discourse post event enabled Active les fonctionnalités d’Événement. Note: nécessite également que calendar enabled soit activé.
discourse post event allowed on groups Groupes autorisés à créer des événements.
displayed invitees limit Limite le nombre d’invités affichés sur un événement.
display post event date on topic title Affiche la date de l’événement après le titre du sujet.
use local event date Utilise la date locale après le titre du sujet au lieu du temps relatif.
discourse post event edit notifications time extension Étend (en minutes) la période après la fin d’un événement lorsque les invités going sont encore notifiés des modifications dans le post original.
discourse post event allowed custom fields Permet à chaque événement de définir la valeur des champs personnalisés.
events calendar categories Affiche un calendrier d’événements en haut d’une catégorie.
sort categories by event start date enabled Active le tri des sujets de catégorie par date de début d’événement.
disable resorting on categories enabled Permet aux catégories de désactiver la capacité des utilisateurs à trier sur la catégorie d’événement.
sidebar show upcoming events Affiche le lien des événements à venir dans la barre latérale sous ‘More’. Nécessite post event enabled
map events to color Assigne une couleur d’événement à un tag ou une catégorie spécifiée

:information_source: :curling_stone: L’endpoint discourse-post-event/events.json a maintenant un paramètre ajouté pour basculer entre une réponse simple et détaillée. Pour obtenir la réponse détaillée, vous pouvez ajouter ?include_details=true:

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

Création d’événements via l’API

Vous pouvez créer des événements via POST /posts.json avec le BBCode [event][/event] dans le champ raw. Voici les détails sur la configuration de votre requête API :

  • Utilisez POST /posts.json avec le paramètre raw
  • Syntaxe de l’événement: [event start="2024-05-10 20:00" status="public" timezone="America/Vancouver" end="2024-05-10 21:30" allowedGroups="trust_level_0"]\n[/event]
  • Un retour à la ligne littéral \n est requis entre les balises ouvrantes et fermantes
  • Les guillemets doubles doivent être échappés lors de l’utilisation de JSON (\")
  • Le compte utilisateur API doit avoir la permission de créer des événements (admin ou un groupe avec des droits de création d’événements)
  • Définissez la catégorie via le paramètre category, en passant l’id de la catégorie comme valeur.

Événements en direct (Livestream)

Pour les événements en direct, utilisez la fonctionnalité livestream pour permettre aux membres de regarder un événement et de participer au chat en même temps.

Un événement livestream inclut :

  • Un flux vidéo (en utilisant YouTube, par exemple)
  • Un événement de calendrier utilisant Discourse Calendar and Events
  • Un canal chat associé créé automatiquement pour l’événement

Prérequis pour les événements livestream

Pour utiliser les événements livestream, vous devez avoir chat enabled, car livestream crée un canal chat pour accompagner votre événement, en plus de discourse post event enabled et calendar enabled.

Si vous voulez utiliser livestream, mais ne voulez pas le chat ailleurs...
  • Réglez chat allowed groups sur la configuration par défaut, ou incluez trust_level_0 pour permettre aux nouveaux utilisateurs de participer au chat livestream
  • Supprimez les groupes du paramètre direct message enabled groups pour empêcher les DMs utilisateur-utilisateur
  • Ne créez pas d’autres canaux de chat

Création d’un événement livestream

Pour créer un événement livestream :

  1. Ouvrez un nouveau sujet.
  2. Sélectionnez l’icône + dans la barre d’outils du composer et cliquez sur Create Event (si l’événement n’a pas déjà été ajouté à votre sujet).
  3. Collez le lien vers la vidéo de l’événement (par exemple, une URL YouTube) dans le champ emplacement/URL.
  4. Activez “livestream”

Vous verrez alors que l’événement et le livestream ont été créés, ainsi qu’un canal chat associé sur le côté droit.

Dès qu’un utilisateur clique sur Going sur l’événement, il rejoindra automatiquement le canal de chat, lui permettant de participer à la conversation !

Diffusion de webinaires Zoom

Vous pouvez utiliser livestream pour héberger des webinaires Zoom directement dans Discourse, afin que les membres puissent regarder l’événement et participer au canal de chat associé sans quitter votre communauté.

Prérequis pour les webinaires Zoom

En plus des prérequis livestream, vous devrez également configurer les paramètres suivants :

  • Activez livestream zoom enabled
  • Entrez votre clé SDK de réunion Zoom dans le paramètre livestream zoom sdk key
  • Entrez votre secret SDK de réunion Zoom dans le paramètre livestream zoom sdk secret

Pour obtenir la clé et le secret du SDK de réunion Zoom :

  1. Rendez-vous sur marketplace.zoom.us, cliquez sur Develop, puis sur Build app.

  2. Lorsqu’on vous demande quel type d’application vous créez, choisissez General App et cliquez sur Create.

  3. Depuis la page App Credentials de l’application, copiez le Client ID (Clé SDK) et le Client Secret (Secret SDK).

  4. Sous Embed, activez la permission Meeting SDK.

  5. Dans votre Discourse, rendez-vous dans Admin → All site settings et entrez les valeurs de l’étape 3 dans livestream zoom sdk key et livestream zoom sdk secret.

Pour que le webinaire Zoom fonctionne correctement dans Discourse :

  • Le webinaire ne doit pas nécessiter d’inscription ou de code d’accès pour rejoindre.

  • Désactivez le chat intégré de Zoom pour vous assurer que toute la discussion a lieu dans le seul canal de chat Discourse, pour garder tout le chat au même endroit et s’assurer que la conversation peut continuer après la fin du webinaire.

Création d’un événement livestream pour un webinaire Zoom

Pour créer un événement livestream pour votre webinaire Zoom :

  1. Ouvrez un nouveau sujet, sélectionnez l’icône +, et cliquez sur Create Event.
  2. Collez votre lien de webinaire Zoom (par exemple, https://zoom.us/``...) dans le champ URL/Emplacement.
  3. Activez Livestream.
  4. Définissez le nom de l’événement, l’heure de début, l’heure de fin et autres détails de l’événement comme désiré.
  5. Publiez le sujet.

Comme pour les autres événements livestream, cet événement sera créé avec un canal de chat Discourse associé que les membres rejoindront automatiquement après avoir confirmé leur présence en tant que “Going”.

Expérience des membres

Voici comment vos membres vivront le webinaire :

Avant l’événement

Un bouton Join Zoom est affiché à partir de 30 minutes avant le début de l’événement. En dehors de cette fenêtre, le bouton est désactivé avec un message indiquant quand il sera disponible.

Pendant l’événement

Une fois que les membres cliquent sur Join Zoom, le webinaire se chargera dans la page du sujet (ou, si l’hôte n’a pas encore démarré l’événement, le membre devra attendre qu’il le fasse pour voir la vidéo).

L’audio ne se connecte pas automatiquement lors de la connexion au webinaire ; les participants doivent cliquer ou taper sur l’icône audio dans la barre d’outils Zoom pour se connecter. C’est une limitation du SDK Zoom et ne peut pas être modifiée.

Sur mobile, le webinaire s’ouvre dans une vue Zoom plein écran (qui est également accessible sur desktop en ajoutant /zoom à la fin de l’URL du sujet de l’événement) avec un bouton flottant Chat qu’ils peuvent taper pour ouvrir un panneau de superposition de chat pendant l’événement.

Après l’événement

Le bouton Join Zoom est masqué 10 minutes après l’heure de fin de l’événement. Le canal de chat reste accessible aux participants jusqu’à ce que vous le fermiez.

Intégrations avec d’autres plugins

Vous pouvez utiliser un composant de ce plugin avec Right Sidebar Blocks. Vous voudrez vous assurer que la route souhaitée est activée dans le composant Right Sidebar Blocks. Le nom du bloc sera upcoming-events-list. Historiquement, des paramètres supplémentaires étaient requis dans le plugin Calendrier lui-même, mais cela a été rationalisé.

Voici à quoi ressemblera le calendrier de la barre latérale par défaut.

Si vous ne voulez pas l’heure, vous pouvez ajouter une valeur vide timeFormat dans le paramètre de bloc du composant.

:discourse2: Hébergé par nous ? Ce plugin est disponible sur nos niveaux Business et Enterprise Calendar | Discourse - Civilized Discussion


  1. categoryId est la catégorie sur laquelle le calendrier sera affiché en haut.
    postId est le post dans lequel vous mettez le calendrier avec [calendar][/calendar] ↩︎

  2. il peut afficher un sélecteur de fuseau horaire en haut à droite du calendrier. Faux par défaut, vous pouvez l’activer avec tzPicker=true ↩︎

  3. il peut masquer les samedis et dimanches du calendrier. Vrai par défaut. Vous pouvez le définir à faux avec weekends=false. ↩︎

  4. defaultView définira la vue du calendrier (jour, semaine, etc;). Il peut être défini comme:

    defaultView=agendaDay
    defaultView=agendaWeek
    defaultView=month (par défaut)
    defaultView=listNextYear ↩︎

101 « J'aime »
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)
I am looking for a webhook or event api
Inserting date/time into new topic's title field (ie, right here > !)
Db:migrate fails on discourse-calendar
Moderator/Admin Off Duty Button
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 gather approvals / signatures on an initiative?
Plugin to show upcoming events on hosted discourse
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?
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!
Easily create Events categories using the Calendar and Events plugin
Discourse Calendar & Events: Webhook triggers & Automations Plugin
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 Duplicator: duplicate calendar events/topics into a new time period
It is very difficult to make events all day in the events modal (and 00:00 is confusing)
Questions about the Zoom Livestream integration
Help us test Horizon, our newest theme
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