Index: src/routes/shows.js
===================================================================
--- src/routes/shows.js	(revision 8d32dcf6552ef4dcd02cb0465748921a55ac674b)
+++ src/routes/shows.js	(revision 0fcc09c2923cbc6a69f4726d85a200eb8a38e7af)
@@ -16,6 +16,10 @@
 import { mailerConfigured, sendMail } from '../config/mailer.js';
 import { addSubscriber } from '../services/SubscriberService.js';
+import { getSetting } from '../services/SettingsService.js';
 
 const router = express.Router();
+
+// Agenda is opt-in: pas bereikbaar als de beheerder 'm heeft ingeschakeld.
+function agendaOn() { return getSetting('agenda_enabled') === '1'; }
 
 function esc(s) { return String(s || '').replace(/[&<>"]/g, (c) => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '"': '&quot;' }[c])); }
@@ -30,5 +34,5 @@
 
 router.get('/shows', (req, res, next) => {
-  if (!premiumUnlocked()) return next();
+  if (!premiumUnlocked() || !agendaOn()) return next();
   const site = res.locals.site;
   if (!site) return next();
@@ -42,5 +46,5 @@
 
 router.post('/shows/notify', async (req, res, next) => {
-  if (!premiumUnlocked()) return next();
+  if (!premiumUnlocked() || !agendaOn()) return next();
   const site = res.locals.site;
   if (!site) return next();
