This plugin is now bundled with Discourse core as part of Bundling more popular plugins with Discourse core. If you are self-hosting and use the plugin, you need to remove it from your app.yml before your next upgrade.
We hebben echt de mogelijkheid nodig om het aantal deelnemers te beperken voor evenementen, aangezien veel van onze evenementen een beperkte capaciteit hebben.
Momenteel staat het evenementsysteem ons niet toe om:
- een maximaal aantal deelnemers in te stellen,
- te zien wie zich als eerste heeft aangemeld (geen registratietijdstempels),
- een wachtlijst te beheren of mensen te waarschuwen wanneer er een plek vrijkomt.
De volgende functies zouden erg nuttig zijn:
- Een deelnemerslimiet (maximum) dat voorkomt dat meer gebruikers zich aanmelden zodra het vol is.
- Een wachtlijst voor degenen die nog steeds willen deelnemen nadat het evenement vol is.
- Automatische meldingen wanneer er een plek beschikbaar komt.
- Optionele tijdstempels om de volgorde van aanmeldingen te zien (nuttig voor eerlijke prioritering).
Dit zou ongelooflijk nuttig zijn voor communities die evenementen organiseren met fysieke aanwezigheid of een beperkte capaciteit.
Staat zoiets al gepland of in ontwikkeling?
Of zijn er bekende oplossingen voor dit gebruiksscenario?
Alvast hartelijk dank!
Thanks Aurora â really excited to hear that native calendar work is active again!
Weâd also like to surface one additional high-impact request thatâs come up in a number of community discussions: iCal feed sync.
This was broken out into its own dedicated topic here:
The ability to subscribe to external .ics feeds (such as school timetables, civic calendars, or organizational events) and have them reflected in a Discourse topic calendar would make this feature vastly more useful for many real-world deployments. Without it, weâre forced to manually copy events over, which is error-prone and hard to maintain.
Weâd really appreciate any comment from the Discourse team about whether parts of that proposal â like one-way iCal sync, feed refresh interval settings, or optional event tagging â are in scope for the upcoming implementation.
Either way, thanks again for breathing new life into Discourse Calendar â weâre looking forward to whatâs ahead!
if you want to show the create event button from the composer directly like below , use the code below in your themeâs header. admin>appearance>theme>edit>edit code>head(make sure it is placed between tags)
Tested on discourse 3.5.0.beta9-dev on desktop in firefox
<!-- Custom Create Event Button (Icon-based, Language-proof) -->
<script>
(()=>{const e=".d-editor-button-bar",t=".btn.no-text.fk-d-menu__trigger.toolbar-menu__options-trigger.toolbar__button.options.toolbar-popup-menu-options",n=".fk-d-menu__inner-content",o=".d-modal.fk-d-menu-modal",c=e=>{const t=e.querySelector('svg use[href="#calendar-day"]');return t?t.closest("button"):null},r=(e,t,n=4e3)=>new Promise((o,c)=>{const r=t(e);if(r)return o(r);const l=new MutationObserver(()=>{const n=t(e);n&&(l.disconnect(),o(n))});l.observe(e,{childList:!0,subtree:!0}),setTimeout(()=>{l.disconnect(),c()},n)}),l=(e=4e3)=>{const t=new MutationObserver(()=>{document.querySelector(o)&&t.disconnect()});t.observe(document.body,{childList:!0,subtree:!0}),setTimeout(()=>t.disconnect(),e)},s=e=>{if(e.querySelector(".custom-create-event-btn"))return;const o=document.createElement("button");o.className="btn no-text btn-icon toolbar__button link custom-create-event-btn",o.title="Create event",o.innerHTML='<svg class="fa d-icon d-icon-calendar-day svg-icon"><use href="#calendar-day"></use></svg>',e.appendChild(o),o.addEventListener("click",async()=>{const e=document.querySelector(t);if(!e)return;e.click();let o=document.querySelector(n);o||(await new Promise((e,t)=>{const c=new MutationObserver(()=>{(o=document.querySelector(n))&&(c.disconnect(),e())});c.observe(document.body,{childList:!0,subtree:!0}),setTimeout(()=>{c.disconnect(),t()},2e3)}));try{(await r(o,c)).click(),l()}catch{}})},u=new MutationObserver(()=>{const t=document.querySelector(e);t&&s(t)});u.observe(document.body,{childList:!0,subtree:!0});const d=document.querySelector(e);d&&s(d)})();
</script>
I tried the script, the event creation button is created correctly, but when I click on it, I get the same contextual menu as the plus button. I may have made a mistake.
After the update it has improved, it appears at least only âCreate eventâ
Screenshot is german, sorry.
Hoi,
Dit werkt op de nieuwste met 3.5.0.beta9-dev, ik weet jouw versie niet?
En dit is javascript dus je moet de JS-fout uit de console geven wanneer je op F12 drukt in je browser. (je kunt mogelijk op de knop klikken zodra de console open is en dit zou informatie moeten geven over wat er op dat moment gebeurt)
Ik gebruik Edge niet, kun je het opnieuw proberen met het script dat ik zojuist in het originele bericht heb bijgewerkt, omdat ik fouten heb gevonden die ik heb gecorrigeerd. Als het niet werkt, zal ik het later bijwerken nadat ik Edge heb geĂŻnstalleerd.
Iâve just updated the script to be more mobile compatible, it should work now, please copy paste the script from the original post
Ik bevestig dat de bijgewerkte code goed werkt in Edge. Als je zoiets als uBlock hebt, kun je het altijd uitschakelen voor je Discourse-pagina, maar ik denk niet dat het hiermee te maken heeft.
Sorry, still the same problem for me, I must be doing something wrong
Yet I paste your script here correctly
Allright, thanks to Gilles situation, I could setup a selector based on the .svg class of the icon that is unique instead of a title attribute that would vary according to language, the script is also now minified and IIFE wrapped.
You may find the updated script here Discourse Calendar (and Event) - #535 by opcourdis
Thank you for your help ![]()
Het zou erg nuttig zijn om uw script te verpakken als een Theme component, en de categorieën waar het van toepassing is selecteerbaar te maken.
De use case die ik in gedachten heb, is een âEvenementenâ-categorie, waar ik het plaatsen van evenementen superduidelijk wil maken.
You may use whatâs below and modify the first conditions to specify your categories, and to make the button more visible css will do it: .btn.no-text.btn-icon.toolbar__button.link.custom-create-event-btn {
order: -1;
}
<script>(()=>{if(!(document.body.classList.contains("category-events")||document.body.classList.contains("category-event2")||document.body.classList.contains("category-event3")))return;const e=".d-editor-button-bar",t=".btn.no-text.fk-d-menu__trigger.toolbar-menu__options-trigger.toolbar__button.options.toolbar-popup-menu-options",n=".fk-d-menu__inner-content",o=".d-modal.fk-d-menu-modal",c=e=>{const t=e.querySelector('svg use[href="#calendar-day"]');return t?t.closest("button"):null},r=(e,t,n=4e3)=>new Promise((o,c)=>{const r=t(e);if(r)return o(r);const l=new MutationObserver(()=>{const n=t(e);n&&(l.disconnect(),o(n))});l.observe(e,{childList:!0,subtree:!0}),setTimeout(()=>{l.disconnect(),c()},n)}),l=(e=4e3)=>{const t=new MutationObserver(()=>{document.querySelector(o)&&t.disconnect()});t.observe(document.body,{childList:!0,subtree:!0}),setTimeout(()=>t.disconnect(),e)},s=e=>{if(e.querySelector(".custom-create-event-btn"))return;const o=document.createElement("button");o.className="btn no-text btn-icon toolbar__button link custom-create-event-btn",o.title="Create event",o.innerHTML='<svg class="fa d-icon d-icon-calendar-day svg-icon"><use href="#calendar-day"></use></svg>',e.appendChild(o),o.addEventListener("click",async()=>{const e=document.querySelector(t);if(!e)return;e.click();let o=document.querySelector(n);o||(await new Promise((e,t)=>{const c=new MutationObserver(()=>{(o=document.querySelector(n))&&(c.disconnect(),e())});c.observe(document.body,{childList:!0,subtree:!0}),setTimeout(()=>{c.disconnect(),t()},2e3)}));try{(await r(o,c)).click(),l()}catch{}})},u=new MutationObserver(()=>{const t=document.querySelector(e);t&&s(t)});u.observe(document.body,{childList:!0,subtree:!0});const d=document.querySelector(e);d&&s(d)})();</script>
Thanks for the suggestion, I am still a bit new to discourse and will check the theme component, the button placement is better indeed but my other script for event participant limit might soon not be necessary because of this FEATURE: introduce max attendees for events by SamSaffron · Pull Request #34313 · discourse/discourse · GitHub
Na het upgraden naar de nieuwste versie van Discourse en de discourse-calendar plugin, zie ik de volgende waarschuwing als beheerder:
â ïž Posts worden mogelijk niet correct weergegeven omdat een van de post content decorators op uw site een fout heeft veroorzaakt.
Veroorzaakt door plugin 'discourse-calendar'
(dit bericht wordt alleen getoond aan sitebeheerders)
- De kalenderplugin werkt niet meer: kalenderinhoud en evenementen worden niet weergegeven in onderwerpen.
- De plugin werkte correct vóór de recente upgrade.
- Mijn Discourse-site en alle officiële plugins zijn nu up-to-date.
Weâre using the Discourse Post Event plugin on our forum.
Currently, when a user joins (RSVPs) an event, the topic is automatically set to âWatchingâ, which means every new reply to the event topic triggers a notification to all participants.
Weâd like to keep the notification level as âNormalâ by default, even after someone joins an event.
Iâve checked the site settings but couldnât find an option that works.
Is there a way to disable or change this auto âWatchingâ behavior when users RSVP to an event?
I donât think so. But this would be a useful feature request.
A useful workaround might be to close the topic to stop replies, but have a chat channel associated with it (these donât notify by default).
The label on the âTodayâ button can be misleading.
The button doesnât actually navigate to the current day, it navigates to the current view of the active timeframe tab (Day/Week/Month/Year). On Day, Week and Month this does bring the current day into view. But on Year, it only navigates to the current year (which always starts in January).
It should probably be
- renamed to more accurately describe itâs functionality, like âCurrentâ
- or, maybe better, not only navigate to the current year, but scroll to the current day on the Year list








