Immobiliensoftware & CMS für Makler mit Openimmo Import / Export
Termine und Aufgaben: Ein Kalender, der Outlook und Nextcloud versteht

Termine und Aufgaben: Ein Kalender, der Outlook und Nextcloud versteht

· Features

aufgaben caldav crm feature import kalender

Ein Maklerbüro lebt von Terminen: Besichtigung am Dienstag, Notar am Freitag, der Rückruf, der seit zwei Wochen auf der Liste steht. Bisher hatten diese Dinge in unserer Maklersoftware keinen Platz, sie wohnten in Outlook, in Nextcloud, auf Zetteln. Seit dieser Woche gibt es im CRM einen Ort dafür: Kalender, Termine und Aufgaben, mit allem, was die beiden großen Welten auch können — Serien, Erinnerungen, Kategorien, Teilnehmer.

Wir haben bewusst mit der Datenbasis angefangen, nicht mit der Ansicht. Kein Wochenraster, kein Drag-and-Drop von Terminblöcken. Stattdessen Listen: eine Kalenderliste, eine Aufgabenliste, und im Kalender selbst die Liste seiner Termine. Das klingt bescheiden, ist aber die Reihenfolge, die hält. Die Ansichten kommen, wenn die Daten stimmen — und ob die Daten stimmen, erkennt man am Import.

Eine Sprache für Outlook und Nextcloud

Outlook und Nextcloud könnten unterschiedlicher nicht sein, und doch sprechen beide dieselbe Sprache, wenn es um Termine geht: iCalendar, ein Textformat aus den Neunzigern, das jeder Kalender auf der Welt lesen und schreiben kann. Ein Termin ist darin ein VEVENT, eine Aufgabe ein VTODO, eine Serie eine Regel wie FREQ=WEEKLY;BYDAY=MO,WE. Wir haben unser Datenmodell an diesem Format entlang gebaut. Nicht, weil es schön wäre — es ist es nicht —, sondern weil damit jeder Termin, der aus Outlook kommt, ohne Verlust bei uns ankommt und eines Tages genauso wieder hinausgeht.

Die Serien waren der schwierigste Teil. Eine Regel wie jeden zweiten Montag im Monat, bis Jahresende, außer am 14. Oktober muss die Maklersoftware nicht nur speichern, sondern entfalten können: Wann ist das nächste Vorkommen? Welche Termine fallen in diese Woche? Dafür gibt es jetzt einen eigenen Rechenkern im Datenmodell, der die Regelsprache liest, die Ausnahmen abzieht und geänderte Einzeltermine an ihrer Stelle einsetzt. Und weil kein Anwender BYMONTHDAY=15 tippen möchte, sitzt im Termin-Dialog ein Serien-Editor: Häufigkeit, Intervall, Wochentage, Monatstag, Ende — und darunter eine Vorschau der nächsten zehn Vorkommen, die sich bei jedem Klick aktualisiert. Regelteile, die der Editor nicht anzeigt, weil sie zu exotisch sind, bleiben unangetastet erhalten; der Editor sagt es dazu.

Import aus Outlook und Nextcloud

Der Import kennt zwei Wege. Der erste ist die Kalenderdatei: Outlook exportiert einen Kalender als .ics, Nextcloud ebenso, und die Maklersoftware liest beides ein — mit Vorschau, bevor etwas passiert. Die Vorschau zeigt je Eintrag, ob er neu wäre oder schon vorhanden, und ob er eine Serie trägt. Der Import selbst läuft als Serveraufgabe im Hintergrund, mit Fortschritt und Protokoll, wie beim Kontakt-Import vor zwei Wochen. Ein zweiter Import derselben Datei verdoppelt nichts: Jeder Termin trägt seine Kennung aus der Quelle, und ein bekannter Termin wird aktualisiert statt neu angelegt.

Der zweite Weg ist ein CalDAV-Konto — das Protokoll, über das Nextcloud seine Kalender freigibt. In der CRM-Administration legt man das Konto an, prüft die Verbindung und sieht, welche Kalender und Aufgabenlisten der Server anbietet. Ein Klick auf Kalender importieren holt sie alle: jede Sammlung bekommt bei uns einen eigenen Spiegelkalender, der weiß, woher er kommt. Zeitzonen werden dabei aufgelöst; ein Berliner Termin um zehn bleibt ein Termin um zehn, auch wenn die Datei ihn in UTC notiert hat.

Erinnerungen und Teilnehmer nehmen wir mit, werten sie aber noch nicht aus. Sie stehen als Text am Termin, damit nichts verloren geht, und warten auf die Ansichten, in denen sie etwas tun können.

Kalender teilt man, Termine nicht

Die interessanteste Entscheidung war eine über Rechte. Unser Rechtesystem kann jeden Datensatz einem Benutzer oder Team zuweisen, und für Kontakte ist das genau richtig: Der eine Kontakt gehört mir, der andere dem Team. Bei Terminen wäre das falsch. Niemand teilt einzelne Termine; man teilt einen Kalender. Also ist bei uns der Kalender der Rechteträger, und jeder Termin folgt ihm — dasselbe Muster, mit dem im letzten Bericht die Anfragen ihrem Lead folgten. Wer den Teamkalender sieht, sieht alle Termine darin; ein Termin, den man in einen anderen Kalender verschiebt, wechselt damit seine Sichtbarkeit.

Aufgaben dagegen sind einzeln zuweisbar, wie Kontakte. Der Rückruf gehört einer Person, nicht einem Kalender. Beides, Kalender und Aufgaben, stehen im Gruppenbaum des Maklerbüros und lassen sich per Drag-and-Drop einsortieren. Ein Einzelmakler merkt von alledem nichts: Er hat seinen Kalender, seine Aufgaben, fertig. Die Datentrennung ist da, sie ist nur nicht im Weg.

Und weil Termine im CRM etwas mit Menschen zu tun haben, hat jeder Kontakt und jeder Lead einen neuen Reiter: Termine & Aufgaben. Die Besichtigung steht am Interessenten, der Rückruf am Eigentümer — angelegt direkt dort, mit dem Bezug schon gesetzt.

Die Regel, die nicht in den Kern durfte

Jeder Benutzer hat einen Standardkalender: den, in den ein Termin fällt, wenn niemand einen anderen wählt. Beim Livetest der Zuweisung fiel eine Lücke auf. Wer einen Kalender einem anderen Benutzer zuweist, nimmt ihn dem bisherigen weg — und wenn es sein Standardkalender war, verliert der Kollege seinen Standard, ohne dass es jemand merkt. Der Server hätte ihm beim nächsten Termin still einen neuen, leeren angelegt.

Die erste Idee war, das im Zuweisungs-Endpunkt abzufangen. Nur: Dieser Endpunkt ist generisch. Er kennt Kontakte, Kalender, Vorlagen, Immobilien nur als Datensatz mit Zuständigem, und genau das macht ihn wertvoll. Eine Ausnahme für Kalender hineinzuschreiben hätte den Kern mit dem ersten Modul verheiratet, das eine Sonderregel braucht. Also bekam der Kern stattdessen eine Naht: Jedes Modul kann eine Zuweisungsregel anmelden, und der Endpunkt fragt vor dem Speichern alle an. Das CRM meldet eine an — ein Standardkalender bleibt bei seinem Benutzer; ein Teamwechsel ist frei — und der Kern weiß weiterhin nicht, was ein Kalender ist. Das nächste Modul mit einer solchen Regel, etwa eine Immobilie mit laufendem Vertrag, nutzt dieselbe Naht.

Die Bilanz in Zahlen

  • 4 neue Datentypen: Kalender, Termin, Aufgabe, CalDAV-Konto — dazu ein Rechenkern für Serienregeln
  • 2 Importwege: Kalenderdatei mit Vorschau und CalDAV-Konto mit Spiegelkalendern
  • 1 Serien-Editor mit Vorschau, in Termin- und Aufgaben-Dialog
  • 1 Naht im Kern für Zuweisungsregeln der Module
  • über 4.700 automatische Tests, alle grün, null Befunde in der Code-Analyse

Was Anwender davon sehen: ein Dokument Planer mit Kalendern und Aufgaben, einen Kalender-Dialog mit seinen Terminen, den Reiter am Kontakt — und einen Import, der die Vergangenheit aus Outlook und Nextcloud mitbringt. Was als Nächstes kommt, steht in den Listen schon drin: die Kalenderansicht, die aus denselben Daten ein Wochenraster macht, und das Benutzerdokument, das Kalender, Aufgaben und Kontakte eines Maklers an einem Ort zeigt.

Eine Serie mit Ausnahme: der Serien-Editor zeigt die nächsten Vorkommen, die Lücke bleibt leer

Eine Serie mit Ausnahme: der Serien-Editor zeigt die nächsten Vorkommen, die Lücke bleibt leer

Eine Sprache für beide: Kalender aus Outlook und Nextcloud kommen durch denselben Import

Eine Sprache für beide: Kalender aus Outlook und Nextcloud kommen durch denselben Import

Kalender teilt man, Termine nicht: jeder Termin folgt seinem Kalender

Kalender teilt man, Termine nicht: jeder Termin folgt seinem Kalender

Zurück zur Übersicht

Neu Eingestellt

Neu eingestellte Objekte erscheinen zuerst an dieser Stelle. So sehen Sie auf jeder Seite, was zuletzt dazugekommen ist, ohne dafür in die Übersicht wechseln zu müssen. Ein Klick öffnet das jeweilige Exposé mit allen Angaben, Bildern und der Lage auf der Karte. Die vollständige Liste finden Sie unter „Alle Immobilien“.

Haus zur Miete

01723 Wilsdruff

Objekt-Nr.:
MI-062
Kaltmiete:
1.850 EUR
Miete pro m²:
12,01 EUR
Wohnfläche:
154 m²
Zimmer:
5,0

Einfamilienhaus in Wilsdruff zur Miete: 154 m², Wärmepumpe, Garten, zwei Stellplätze

Haus zur Miete

01217 Dresden

Objekt-Nr.:
MI-061
Kaltmiete:
1.520 EUR
Miete pro m²:
14,07 EUR
Wohnfläche:
108 m²
Zimmer:
4,0

Reihenendhaus in Dresden-Mockritz zur Miete: 108 m², Erstbezug, Garten

Wohnung zum Kauf

01309 Dresden

Objekt-Nr.:
MI-060
Kaufpreis:
598.000 EUR
Kaufpreis pro m²:
4.397,06 EUR
Wohnfläche:
136 m²
Zimmer:
4,0

Neubau-Maisonette in Dresden-Striesen: 136 m², KfW 40, Erstbezug

Haus zum Kauf

01067 Dresden

Objekt-Nr.:
MI-059
Kaufpreis:
1.450.000 EUR
Kaufpreis pro m²:
7.250 EUR
Wohnfläche:
200 m²
Zimmer:
7,0

Stadtvilla in Dresden-Innenstadt: 200 m², 620 m² Garten, denkmalgeschützt

Haus zur Miete

01156 Dresden

Objekt-Nr.:
MI-058
Kaltmiete:
1.480 EUR
Miete pro m²:
11,94 EUR
Wohnfläche:
124 m²
Zimmer:
5,0

Doppelhaushälfte in Dresden-Cossebaude zur Miete: 124 m², Garten, Garage

Haus zur Miete

01156 Dresden

Objekt-Nr.:
MI-057
Kaltmiete:
1.050 EUR
Miete pro m²:
11,05 EUR
Wohnfläche:
95 m²
Zimmer:
3,0

Kleines Einfamilienhaus in Dresden-Cossebaude zur Miete: 95 m², Garten, Garage

    Kontaktieren Sie uns

    Software Entwicklung Sieg
    Rhönweg 5 
    01159 Dresden

    info@ses-realestate.com

    Interesannte Links

    Unsere Partner


    Hinweis: Alle Immobilien auf dieser Seite sind frei erfunden. Anschriften, Preise, Flächen und Energieangaben beschreiben keine tatsächlich vorhandenen Objekte, Anfragen werden nicht bearbeitet und ein Vertrag kommt nicht zustande. Was Sie sehen, ist die Oberfläche unserer Software im Betrieb: Suche, Exposé, Merkliste und Karte arbeiten genau so, wie sie es später mit echten Objekten tun.
    ©2026 SES Software Entwicklung Sieg