function managePresentationSlides() { // ID deiner Präsentation const PRESENTATION_ID = 'DEINE_PRÄSENTATIONS_ID'; // Präsentation öffnen const presentation = SlidesApp.openById(PRESENTATION_ID); // Aktuelles Datum const today = new Date(); const dayOfWeek = today.getDay(); // 0 = Sonntag, 1 = Montag, ... // Alle Folien durchgehen const slides = presentation.getSlides(); slides.forEach((slide, index) => { // Notizen der Folie abrufen (hier können wir Steuerungsbefehle hinterlegen) const notes = slide.getNotesPage().getSpeakerNotesShape().getText().asString(); // Beispiel für Steuerungsbefehle in den Notizen: // #show-on: Mon,Tue,Wed // #hide-on: Sat,Sun const showOnMatch = notes.match(/#show-on:\s*(.*)/); const hideOnMatch = notes.match(/#hide-on:\s*(.*)/); // Tage in lesbare Format konvertieren const dayNames = { 0: 'Sun', 1: 'Mon', 2: 'Tue', 3: 'Wed', 4: 'Thu', 5: 'Fri', 6: 'Sat' }; const currentDay = dayNames[dayOfWeek]; // Folie basierend auf den Regeln ein- oder ausblenden if (showOnMatch) { const allowedDays = showOnMatch[1].split(',').map(day => day.trim()); if (!allowedDays.includes(currentDay)) { slide.setSkipped(true); } else { slide.setSkipped(false); } } if (hideOnMatch) { const hiddenDays = hideOnMatch[1].split(',').map(day => day.trim()); if (hiddenDays.includes(currentDay)) { slide.setSkipped(true); } else { slide.setSkipped(false); } } }); } // Funktion zum Erstellen eines Zeit-basierten Triggers function createDailyTrigger() { // Alle bestehenden Trigger löschen const triggers = ScriptApp.getProjectTriggers(); triggers.forEach(trigger => ScriptApp.deleteTrigger(trigger)); // Neuen täglichen Trigger erstellen ScriptApp.newTrigger('managePresentationSlides') .timeBased() .everyDays(1) .atHour(1) // Wird um 1 Uhr nachts ausgeführt .create(); } // Funktion zum manuellen Ausführen der Präsentationssteuerung function manualUpdate() { managePresentationSlides(); }