Ein leistungsstarker Discord-Bot zur effizienten Terminplanung auf Discord-Servern. Eigentlich habe ich diesen Bot entwickelt weil ich in meinem Freundeskreis das Problem hatte das Terminabsprachen immer erst auf den letzten Drücker entstanden, und keiner genau wusste wer denn jetzt wann kommt.
- Terminplanung: Erstellen Sie Termine mit voller Kontrolle über Datum, Uhrzeit und Teilnehmer
- Automatische Einladungen: Bot sendet automatische Einladungen an alle genannten Teilnehmer per DM
- Interaktive Teilnahme: Nutzer können direkt über Buttons zusagen, absagen oder alternative Zeiten vorschlagen
- Live-Statusübersicht: Echtzeit-Aktualisierung der Teilnehmerstatus im Server-Channel
- Intelligente Abbruchfunktion: Terminabbruch mit optionalem Grund und automatischen Benachrichtigungen
- Rollenunterstützung: Lade ganze Teams durch Erwähnung einer Rolle ein
- Terminverwaltung: Füge nachträglich Teilnehmer hinzu oder entferne sie
- Discord Zeitstempel: Unterstützung für relative und absolute Discord-Zeitangaben (zeigt die Zeit in jeder Zeitzone korrekt an)
- Flexible Zusage-Optionen: Verschiedene Antwortmöglichkeiten für unterschiedliche Teilnahme-Szenarien
- Alternative Uhrzeiten: Teilnehmer können alternative Zeiten vorschlagen, wenn der Haupttermin nicht passt
- Erweiterte Abbruchfunktion:
- Optionale Begründung für Terminabbrüche
- Automatische DM-Benachrichtigungen an zugesagte Teilnehmer
- Visuelle Kennzeichnung durch rote Embed-Farbe
- Erinnerungssystem:
- Senden Sie Erinnerungen an Teilnehmer, die noch nicht geantwortet haben
- Spezielle Starterinnerung kurz vor Terminbeginn an alle zugesagten Teilnehmer
- Multi-Server Support: Funktioniert auf beliebig vielen Discord-Servern gleichzeitig
- Automatische Befehlsregistrierung: Registriert sich automatisch auf neuen Servern
- SQLite-Datenbank: Lokale SQLite-Database mit Drizzle ORM für bessere Performance und Zuverlässigkeit
- Audit-Historie: Vollständige Verfolgung aller Aktionen und Änderungen
- Multi-Server-Isolation: Daten werden pro Server getrennt gespeichert
- Response-Analytics: Detaillierte Timeline aller Teilnehmer-Antworten mit Zeitstempel
- Live-Progress-Updates: Echtzeit-Feedback während Event-Erstellung und Teilnehmereinladung
- Intelligente Validierung: Automatische Input-Validierung und Bot-Filterung
- Duplikat-Erkennung: Verhindert doppelte Einladungen automatisch
- Batch-Processing: Optimierte Performance bei großen Teilnehmergruppen
- 🔵 Blaue Embeds: Aktive Terminsuchen
- 🟢 Grüne Embeds: Geschlossene Terminsuchen
- 🔴 Rote Embeds: Abgebrochene Terminsuchen
- Node.js (Version 16+)
- NPM oder Yarn
- Ein Discord Bot Token (Discord Developer Portal)
- Repository klonen
git clone https://github.com/Stevelo03/Discord-Terminplaner- Dependencies installieren
npm install.envDatei erstellen
BOT_TOKEN=dein_discord_bot_token
CLIENT_ID=deine_client_id- Bot starten
npm run build
npm startErstellt eine neue Terminsuche mit folgenden Parametern:
- Pflichtfelder:
titel: Name des Events (z.B. "ARMA 3 Session")datum: Datum des Events (normale Angabe oder Discord-Zeitstempel)uhrzeit: Uhrzeit des Eventsteilnehmer: Liste von Teilnehmern oder Rollen (@user1, @rolle1)
- Optionale Felder:
relatives_datum: Discord-Zeitstempel für relative Anzeigekommentar: Zusätzliche Informationen zum Termin
Fügt Teilnehmer zu einer bestehenden Terminsuche hinzu:
eventid: Die Event-ID der Terminsuche (aus dem Footer der Nachricht)teilnehmer: Zu hinzufügende Teilnehmer oder Rollen (@user1, @rolle1)
Entfernt Teilnehmer aus einer bestehenden Terminsuche:
eventid: Die Event-ID der Terminsuche (aus dem Footer der Nachricht)teilnehmer: Zu entfernende Teilnehmer oder Rollen (@user1, @rolle1)
Zeigt eine umfassende Hilfenachricht mit allen Funktionen und Features
Nur Server-Administratoren können:
- Termine erstellen und verwalten
- Teilnehmer hinzufügen oder entfernen
- Erinnerungen an ausstehende Teilnehmer senden
- Starterinnerungen kurz vor Terminbeginn versenden
- Terminsuchen intelligent abbrechen mit erweiterten Optionen:
- Optionale Begründung eingeben (wird im Status und bei Antwortversuchen angezeigt)
- Auswahl, ob zugesagte Teilnehmer automatisch per DM benachrichtigt werden sollen
- Statistiken über erfolgreich versendete Benachrichtigungen
- Terminsuchen schließen
Teilnehmer können aus fünf verschiedenen Antwortmöglichkeiten wählen:
- Zusagen: Bestätigt die Teilnahme zur angegebenen Zeit
- Zusagen mit Vorbehalt: Teilnahme mit gewissen Vorbehalten oder Unsicherheiten
- Zusagen ohne Uhrzeitgarantie: Teilnahme wahrscheinlich, aber pünktliches Erscheinen nicht garantiert
- Alternative Uhrzeit vorschlagen: Andere präferierte Zeit angeben
- Absagen: Teilnahme ablehnen
Beim Klick auf "Terminsuche abbrechen" öffnet sich ein Modal mit zwei Optionen:
-
Abbruchgrund (optional):
- Bis zu 200 Zeichen
- Wird im Server-Embed Footer angezeigt:
Status: Abgebrochen (Grund) - Erscheint bei Antwortversuchen:
Diese Terminsuche wurde abgebrochen. Grund: [Grund]
-
Benachrichtigung (Pflichtfeld):
0= Keine DM-Benachrichtigungen1= Alle Teilnehmer mit Zusagen erhalten eine DM über den Abbruch
- Visuelle Kennzeichnung: Das Server-Embed wird automatisch rot eingefärbt
- DM-Benachrichtigungen: Zugesagte Teilnehmer erhalten eine professionelle Abbruch-Nachricht
- Statistiken: Der Admin erhält eine Übersicht über erfolgreich versendete Benachrichtigungen
- Transparenz: Abbruchgrund ist für alle sichtbar und nachvollziehbar
- Bei Antwortversuchen auf abgebrochene Termine wird der Abbruchgrund angezeigt
- Optionale DM-Benachrichtigung mit allen relevanten Informationen
- Keine weiteren Interaktionen mit dem abgebrochenen Termin möglich
- Entwickelt in TypeScript
- Basiert auf discord.js v14
- SQLite-Datenbank mit Drizzle ORM
- Lokale Datenspeicherung (keine externe Datenbank benötigt)
- Automatische Error-Behandlung
- Ephemeral Nachrichten für saubere Channelinteraktion
- Schema: Servers, ServerUsers, Events, Participants, ResponseHistory, EventAuditLogs
- Relations: Foreign Keys und optimierte Indizes
- Performance: Batch-Processing und effiziente Queries
- Audit Trail: Vollständige Historie aller Aktionen
- Server Isolation: Multi-Server-Support mit Daten-Trennung
- Dynamische Embed-Farbgebung basierend auf Event-Status
- Robuste Modal-Verarbeitung mit Eingabevalidierung
- Live-Progress-Updates während Event-Erstellung
- Detaillierte Erfolgs- und Fehlerstatistiken
- Automatische Bot-Filterung und Duplikat-Erkennung
- Alle Daten werden lokal in SQLite-Database gespeichert
- Keine Weitergabe an Dritte
- Alle Kommunikation erfolgt über die offizielle Discord API
- Vollständige Audit-Historie für Compliance
- Server-isolierte Datenspeicherung
- Automatische Backups durch SQLite WAL-Modus
AGPL-3.0 Lizenz - siehe LICENSE Datei für Details sowie ATTRIBUTION Datei für Details