2nd Jul 2025 12 Leseminuten SQL trifft auf Google Kalender: Analysieren Sie ein Jahr in Meetings Jakub Romanowski SQL-Projekt Datenanalyse Inhaltsverzeichnis Warum sollten Sie Ihren Kalender analysieren? Schritt 1: Exportieren Sie Ihren Google-Kalender Schritt 2: Konvertieren Sie die .ics-Datei in ein SQL-kompatibles Format Schritt 3: Importieren Sie die CSV in Ihre SQL-Datenbank Schritt 1: Richten Sie Ihre PostgreSQL-Tabelle ein Schritt 2: Laden Sie die Daten aus der CSV-Datei Schritt 4: Analysieren Sie Ihre Besprechungen mit SQL Gesamtzahl der Besprechungen Gesamtzeit in Besprechungen (Stunden) Durchschnittliche Dauer der Besprechung (Minuten) Besprechungen nach Monat Top 5 geschäftigste Tage Schritt 5: Visualisieren Sie die Daten Anwendungsfälle für verschiedene Rollen Optional: Automatisieren Sie die ganze Sache Nächste Schritte Haben Sie manchmal das Gefühl, dass Ihr Kalender Ihr Leben steuert? Eine Besprechung nach der anderen, kaum Zeit für die eigentliche Arbeit - und keine Ahnung, wo Ihre Zeit geblieben ist? Da sind Sie nicht allein. Wie wäre es, wenn Sie eine schnelle SQL-Abfrage durchführen könnten, um genau zu wissen, wie viel Zeit Sie im letzten Jahr in Besprechungen verbracht haben, welche Monate die arbeitsreichsten waren und ob Ihre wöchentlichen Synchronisationen Ihre Morgenstunden auffressen? Genau darum geht es in diesem Leitfaden. Ich zeige Ihnen, wie Sie Ihren Google-Kalender exportieren, ihn in ein SQL-freundliches Format umwandeln und mit einfachen SQL-Abfragen Ihre Meeting-Gewohnheiten im vergangenen Jahr analysieren können. Möchten Sie Ihre SQL-Kenntnisse auffrischen, bevor Sie loslegen? Besuchen Sie den Kurs SQL für Anfänger. Er ist perfekt für Anfänger oder alle, die ihre Abfragekenntnisse verbessern möchten. Warum sollten Sie Ihren Kalender analysieren? Warum sollten Sie Ihren Kalender überhaupt analysieren? Hier sind ein paar echte Gründe: Sie wollen sehen, wie viel Zeit Sie in Meetings verbringen. Es ist leicht, den Überblick zu verlieren, wenn jeder Tag mit zwei oder drei Blöcken belegt ist. Ein Blick auf die Gesamtzahl der Stunden kann Ihnen die Augen öffnen. Sie vermuten, dass einige Tage oder Wochen überlastet sind. Vielleicht ist mittwochs immer viel los, oder jeder Montag fühlt sich wie ein Anrufmarathon an. Sie möchten diese Muster mit echten Daten herausfinden. Sie sind neugierig, ob wiederkehrende Besprechungen tatsächlich nützlich sind. Wöchentliche Synchronisationen und alle zwei Wochen stattfindende Besprechungen werden oft zur Routine. Durch die Analyse dieser Termine können Sie herausfinden, ob sie hilfreich sind oder nur Ihren Kalender füllen. Sie brauchen datengestützte Gründe, um eine weitere Einladung abzulehnen. Wenn Sie Ihre Entscheidung mit Zahlen untermauern können, können Sie sich für weniger Meetings und mehr konzentrierte Zeit entscheiden. Diese Art von Einblicken kann Ihnen dabei helfen, Ihre Zeit zurückzugewinnen, intelligentere Planungsentscheidungen zu treffen und die Ermüdung durch Meetings zu verringern. Lassen Sie uns nun diese Daten beschaffen. Schritt 1: Exportieren Sie Ihren Google-Kalender Google Calendar bietet Ihnen zwar keine Excel-Tabelle mit all Ihren Meetings, aber Sie können Ihre Daten im Format .ics exportieren. So exportieren Sie: Gehen Sie zu Google Calendar. Klicken Sie auf das Zahnradsymbol ⚙️ → Einstellungen. Blättern Sie zu Importieren & Exportieren. Klicken Sie unter "Exportieren" auf Exportieren. Sie erhalten eine ZIP-Datei. Entpacken Sie sie, um die .ics Dateien für jeden Kalender zu finden. Achten Sie darauf, dass Sie alle relevanten Kalender einschließen (Arbeit, privat, gemeinsam genutzt usw.). Schritt 2: Konvertieren Sie die .ics-Datei in ein SQL-kompatibles Format Bevor wir etwas anderes tun, müssen wir die .ics-Datei in etwas Nützlicheres umwandeln - z. B. in eine .csv -Datei, die wie eine Tabellenkalkulation funktioniert und sich leicht in jede SQL-Datenbank importieren lässt. Hierfür verwenden wir ein einfaches Python-Skript. Wenn Sie noch nie mit Python gearbeitet haben, brauchen Sie sich keine Sorgen zu machen - hier wird Schritt für Schritt vorgegangen. Das Skript liest die Datei .ics, zieht jedes Ereignis heraus (z. B. eine Besprechung oder einen Termin) und speichert diese Details in einer Datei .csv. Für die ersten Schritte benötigen Sie Folgendes: Python ist auf Ihrem Computer installiert (Version 3.x ist ausreichend). Zwei Python-Bibliotheken: icalendar: hilft Python, Kalenderdateien zu verstehen. pandas: hilft beim Verwalten und Speichern von Daten im Tabellenformat. Sie können diese Bibliotheken installieren, indem Sie Ihr Terminal oder die Eingabeaufforderung öffnen und ausführen: pip install icalendar pandas Python-Skript erklärt Lassen Sie sich von der Länge des folgenden Skripts nicht abschrecken - es mag komplex aussehen, aber Sie müssen nichts davon selbst schreiben. Sie müssen es nur kopieren und in eine Datei einfügen und ausführen. Alles ist bereits so eingerichtet, dass es die Arbeit für Sie erledigt. from icalendar import Calendar import pandas as pd # Read the .ics calendar file with open("calendar.ics", encoding="utf-8") as f: cal = Calendar.from_ical(f.read()) # Create a list to store extracted events events = [] # Walk through each event in the calendar for component in cal.walk(): if component.name == "VEVENT": event = { 'summary': str(component.get('summary')), 'start': component.get('dtstart').dt, 'end': component.get('dtend').dt, 'organizer': str(component.get('organizer')), 'attendees': str(component.get('attendee')), } events.append(event) # Convert list to DataFrame and export to CSV df = pd.DataFrame(events) df.to_csv('calendar_events.csv', index=False) Das Skript liest Ihren Kalender, geht jedes Ereignis in einer Schleife durch und zieht Felder wie den Namen der Besprechung, Start- und Endzeit, den Organisator und die Teilnehmer heraus. Anschließend speichert es alles in einer CSV-Datei, die Sie in SQL importieren können. Was Sie mit diesem Code tun können: Kopieren Sie das gesamte Skript in eine neue Python-Datei. Sie können dies in einem beliebigen Texteditor tun - speichern Sie es einfach mit der Erweiterung .py, zum Beispiel convert_calendar.py. Vergewissern Sie sich, dass sich die Datei .ics im gleichen Ordner wie Ihr Skript befindet und den Namen calendar.ics trägt. Wenn sie einen anderen Namen hat, aktualisieren Sie den Dateinamen in der Funktion open(). Um das Skript auszuführen, öffnen Sie Ihr Terminal (unter Mac oder Linux) oder die Eingabeaufforderung (unter Windows). Navigieren Sie zu dem Ordner, in dem Sie die Python-Datei gespeichert haben. Geben Sie dann python convert_calendar.py ein und drücken Sie die Eingabetaste. Dadurch wird Ihr Computer angewiesen, das Skript auszuführen. Wenn alles richtig eingestellt ist, wird die Datei .ics verarbeitet und eine neue Datei mit dem Namen calendar_events.csv im selben Ordner erstellt. Diese CSV-Datei enthält alle Ihre Google-Kalender-Ereignisse in einem Format, das sich leicht in SQL verwenden lässt. Nachdem das Skript ausgeführt wurde, sollten Sie im selben Ordner eine neue Datei mit dem Namen calendar_events.csv sehen. Diese Datei enthält alle Ihre Kalenderereignisse in einem einfachen Tabellenformat, das für die Verwendung in SQL bereit ist. So könnte Ihre CSV-Datei aussehen: summarystartendorganizer Weekly Sync2024-01-04 10:002024-01-04 10:30alice@company.com 1:1 with Tom2024-01-05 14:002024-01-05 14:45tom@company.com Schritt 3: Importieren Sie die CSV in Ihre SQL-Datenbank Sie können jede SQL-Datenbank verwenden - MySQL, PostgreSQL oder SQLite. In diesem Abschnitt zeigen wir Ihnen, wie Sie PostgreSQL verwenden. PostgreSQL ist in Unternehmen weit verbreitet und eignet sich hervorragend zum Erlernen praktischer SQL-Kenntnisse. Wenn Sie Windows verwenden und PostgreSQL noch nicht installiert haben, machen Sie sich keine Sorgen - der Einstieg ist ganz einfach. Gehen Sie einfach auf die offizielle PostgreSQL-Website und laden Sie das Installationsprogramm herunter. Führen Sie das Installationsprogramm aus, folgen Sie den Schritten und wählen Sie die Standardeinstellungen, sofern Sie keinen Grund haben, diese zu ändern. Stellen Sie sicher, dass Sie auch pgAdmin installieren - das ist ein visuelles Tool, mit dem Sie Ihre PostgreSQL-Datenbank verwalten können, ohne die Kommandozeile zu benutzen. Sobald es installiert ist, können Sie pgAdmin öffnen, sich mit Ihrem lokalen Server verbinden und mit wenigen Klicks Ihre erste Datenbank erstellen. Schritt 1: Richten Sie Ihre PostgreSQL-Tabelle ein Öffnen Sie Ihr Terminal oder pgAdmin und verbinden Sie sich mit Ihrer PostgreSQL-Datenbank. Erstellen Sie dann eine Tabelle, die Ihre Besprechungsdaten enthält: CREATE TABLE meetings ( id SERIAL PRIMARY KEY, summary TEXT, start TIMESTAMP, "end" TIMESTAMP, organizer TEXT, attendees TEXT ); Dadurch wird eine Tabelle erstellt, in der jede Besprechung als Zeile gespeichert wird. Das Schlüsselwort SERIAL erzeugt eine automatisch aufsteigende ID, und TIMESTAMP speichert das Datum und die Uhrzeit für Beginn und Ende. Schritt 2: Laden Sie die Daten aus der CSV-Datei Nun, da Ihre Tabelle fertig ist, müssen Sie die CSV-Datei importieren, die Sie zuvor erstellt haben (calendar_events.csv). PostgreSQL verwendet den Befehl COPY, um CSV-Daten in eine Tabelle zu laden. Wenn Sie pgAdmin verwenden, können Sie dies auch über die GUI tun: Klicken Sie mit der rechten Maustaste auf die Tabelle meetings in der linken Leiste unter Ihrer Datenbank. Wählen Sie Import/Export aus dem Kontextmenü. Wählen Sie in dem Dialogfenster die Option Import. Wählen Sie Ihre calendar_events.csv Datei von Ihrem Computer. Wählen Sie unter dem Dropdown-Menü Format die Option csv. Stellen Sie sicher, dass die Spaltenreihenfolge in Ihrer CSV Datei mit der Tabellenstruktur übereinstimmt. Belassen Sie andere Einstellungen als Standard, oder passen Sie das Trennzeichen an, falls erforderlich. Klicken Sie zum Importieren auf OK. Wenn Sie es vorziehen, einen SQL-Befehl im Abfragetool von pgAdmin zu verwenden, können Sie alternativ wie folgt vorgehen: COPY meetings(summary, start, "end", organizer) FROM 'C:/full/path/to/calendar_events.csv' DELIMITER ',' CSV HEADER; Stellen Sie sicher, dass Sie C:/full/path/to/calendar_events.csv durch den tatsächlichen Pfad zu Ihrer CSV Datei ersetzen. Vergewissern Sie sich außerdem, dass PostgreSQL die Berechtigung hat, auf diesen Ordner zuzugreifen. Diese Methode kann schneller sein, wenn Sie mit der Eingabe von ein wenig SQL vertraut sind. Sobald Sie diesen Schritt abgeschlossen haben, sind Ihre Kalenderdaten in PostgreSQL verfügbar. Schritt 4: Analysieren Sie Ihre Besprechungen mit SQL Jetzt kommt der spaßige Teil. Führen Sie einige SQL-Abfragen durch, um Ihre Besprechungsmuster zu untersuchen und allgemeine Fragen zu beantworten, wie z. B.: An wie vielen Besprechungen habe ich teilgenommen? An welchen Tagen war am meisten los? Wie viel Zeit habe ich in Besprechungen verbracht? Gesamtzahl der Besprechungen SELECT COUNT(*) AS total_meetings FROM meetings; Diese Abfrage zählt einfach, wie viele Zeilen in der Tabelle meetings vorhanden sind. Da jede Zeile eine Besprechung darstellt, zeigt das Ergebnis, wie viele Besprechungen Sie insgesamt hatten. Gesamtzeit in Besprechungen (Stunden) SELECT ROUND(SUM(EXTRACT(EPOCH FROM ("end" - start)) / 3600.0)::numeric, 2) AS total_hours FROM meetings; Diese Abfrage berechnet die Gesamtzeit, die Sie in Besprechungen verbracht haben, indem sie die Startzeit der Besprechung von der Endzeit subtrahiert. In PostgreSQL ergibt die Subtraktion von zwei Zeitstempeln die Dauer in Sekunden, daher verwenden wir EXTRACT(EPOCH FROM (...)), um die Anzahl der Sekunden zu erhalten. Dann dividieren wir durch 3600, um sie in Stunden umzurechnen. Schließlich wird ROUND(..., 2) verwendet, um das Ergebnis auf zwei Nachkommastellen zu begrenzen, damit es leichter zu lesen ist. Durchschnittliche Dauer der Besprechung (Minuten) SELECT ROUND(AVG(EXTRACT(EPOCH FROM ("end" - start)) / 60.0)::numeric, 1) AS avg_minutes FROM meetings; Diese Abfrage berechnet die durchschnittliche Dauer aller Ihrer Besprechungen. Sie subtrahiert die Startzeit von der Endzeit für jede Besprechung, um die Dauer zu erhalten, und verwendet dann EXTRACT(EPOCH FROM ...), um diese Zeit in Sekunden umzurechnen. Durch Division durch 60 werden Sekunden in Minuten umgerechnet. Mit AVG erhalten Sie schließlich die durchschnittliche Besprechungsdauer, und ROUND(..., 1) macht sie mit nur einer Dezimalstelle übersichtlicher. Besprechungen nach Monat SELECT TO_CHAR(start, 'YYYY-MM') AS month, COUNT(*) AS meeting_count FROM meetings GROUP BY month ORDER BY month; Diese Abfrage hilft Ihnen zu verstehen, wie Ihre Besprechungen auf die einzelnen Monate verteilt sind. Sie verwendet TO_CHAR(start, 'YYYY-MM'), um das Datum jeder Besprechung in ein vereinfachtes Jahr-Monat-Format wie 2024-03 umzuwandeln, was die Gruppierung der Ereignisse nach Monaten erleichtert. Mit der Funktion COUNT(*) wird gezählt, wie viele Besprechungen in jedem dieser Monate stattfanden. Die Funktion ORDER BY month schließlich ordnet die Ergebnisse in chronologischer Reihenfolge an, so dass Sie die geschäftigsten Monate auf einen Blick erkennen können. Top 5 geschäftigste Tage SELECT date(start) AS day, COUNT(*) AS meetings FROM meetings GROUP BY day ORDER BY meetings DESC LIMIT 5; Hier werden die fünf Tage mit den meisten Besprechungen angezeigt. date(start) extrahiert nur den Tag aus dem vollständigen Zeitstempel. GROUP BY gruppiert die Ereignisse nach Tag, und ORDER BY meetings DESC stellt die geschäftigsten Tage an die Spitze. LIMIT 5 zeigt nur die fünf geschäftigsten Tage an. Schritt 5: Visualisieren Sie die Daten Sie können verwenden: Power BI oder Tableau für Dashboards. Google Sheets für schnelle Diagramme. Python (Matplotlib/Seaborn) für Heatmaps. Versuchen Sie, eine wöchentliche Heatmap zu erstellen, um überlastete Tage zu erkennen. Pivotieren Sie Ihre Daten nach Wochentag und Stunde und wenden Sie dann bedingte Formatierung an. Anwendungsfälle für verschiedene Rollen Manager können diese Analyse nutzen, um zu verstehen, wie die Zeit ihres Teams tatsächlich genutzt wird. Wenn Besprechungen mehr Zeit in Anspruch nehmen als erwartet, können sie ermitteln, welche Besprechungen wichtig sind und welche gekürzt oder ganz gestrichen werden können. Für Entwickler ist es oft schwierig, große Zeitblöcke für konzentriertes Programmieren zu finden. Durch die Ausführung dieser Abfragen können sie Muster in der Überlastung durch Meetings erkennen und sich für weniger Unterbrechungen während der Arbeitszeit einsetzen. Marketingfachleute können überprüfen, wie viel Zeit sie für Planungssitzungen und wie viel für die Ausführung aufwenden. Dies kann zu einer besseren Planung der Kampagnenarbeit und effizienteren Besprechungen führen, die fokussiert und zielorientiert sind. Lehrer und Erzieher können davon profitieren, indem sie untersuchen, wie ihre Zeit zwischen wiederkehrenden Unterrichtssitzungen, persönlichen Treffen mit Schülern und Verwaltungsaufgaben aufgeteilt ist. Mit diesen Erkenntnissen können sie sich um ein besseres Gleichgewicht bemühen und ein mögliches Burnout vermeiden. Optional: Automatisieren Sie die ganze Sache Möchten Sie dies regelmäßig tun? Denken Sie über eine dieser Optionen nach: Google Calendar API - Dies ist ein offizielles Tool von Google, mit dem Sie programmatisch auf Ihre Kalenderdaten in Echtzeit zugreifen können. Sie können ein Python-Skript schreiben, das sich mit der API verbindet und Ihre Termine jede Woche oder jeden Monat abruft. Auf diese Weise müssen Sie die .ics-Dateien nicht manuell exportieren. Automatisieren mit Python - Sobald Sie das Skript zum Abrufen und Verarbeiten der Kalenderdaten eingerichtet haben, können Sie es mit Tools wie dem Windows Task Scheduler oder cron auf Mac/Linux automatisch ausführen lassen (z. B. jeden Monat). Das spart Zeit und hält Ihre Daten frisch. Zapier - Dies ist ein programmierfreies Tool, das verschiedene Anwendungen miteinander verbindet. Mit Zapier können Sie Ereignisse aus dem Google Kalender automatisch in ein Google Sheet kopieren. Von dort aus können Sie dieses Blatt in Ihre SQL-Datenbank importieren. Diese Option ist ideal, wenn Sie nicht bereit sind, Python-Code zu schreiben. Dieser Abschnitt soll Ihnen dabei helfen, Ihren Prozess so zu skalieren, dass er nach der Einrichtung mit wenig Aufwand von selbst läuft. Nächste Schritte Möchten Sie noch leistungsfähigere Abfragen erstellen? Lernen Sie SQL Schritt für Schritt mit SQL für Anfänger auf LearnSQL.de. In diesem praxisnahen Kurs lernen Sie, wie Sie echte SQL-Abfragen schreiben, die aussagekräftige Daten aus einer Datenbank abrufen. Sie werden Kernthemen wie das Auswählen von Spalten, das Filtern von Zeilen, das Sortieren von Ergebnissen und das Verbinden mehrerer Tabellen behandeln - alles, was Sie brauchen, um Daten wie ein Profi zu analysieren. Der Kurs ist in mundgerechte Lektionen gegliedert, die jeweils interaktive Übungen enthalten, mit denen Sie das Gelernte anwenden können. Sie brauchen keine Vorkenntnisse: Alles wird klar und schrittweise erklärt. Am Ende des Kurses werden Sie in der Lage sein, SQL zu verwenden, um Fragen zu beantworten, Probleme zu lösen und Erkenntnisse aus beliebigen Datenquellen zu gewinnen. Es ist die perfekte Grundlage für jeden, der mit Daten arbeitet. Und das Beste daran? Sie können es mit einer kostenlosen Testversion ausprobieren, um zu sehen, wie es funktioniert, bevor Sie sich festlegen. Nutzen Sie Ihre Daten. Verbessern Sie Ihren Zeitplan. Sparen Sie Zeit! Tags: SQL-Projekt Datenanalyse