Flow ist ein Pomodoro-Timer mit direkter Anbindung an einen Google-Kalender. Jeder Arbeitsblock wird als eigener Termin im Kalender "Arbeitsblöcke" angelegt – so lässt sich der Tag auch außerhalb der App nachvollziehen, und Erinnerungen kommen automatisch aus dem, was im Kalender steht.
Ein Arbeitsblock besteht aus einer Arbeitsphase (Standard: 25 Min) direkt gefolgt von einer kurzen Pause (Standard: 5 Min) – zusammen eine durchgehende Zeitspanne, die als ein einziger Kalender-Termin angelegt wird. Der Timer zählt beide Phasen als eine Einheit herunter: erst läuft die Arbeitszeit, dann schaltet die Anzeige automatisch auf die Pause um (mit Ton und Farbwechsel). Wie viele Blöcke hintereinander eine "Serie" bilden, wählst du vor dem Start (Standard: bis zu 4).
Eine lange Pause gibt es nicht als eigene Einstellung – sie ergibt sich automatisch daraus, dass nach dem letzten Block keine weiteren Termine im Kalender folgen. Ist für den Rest des Tages (6 Uhr bis 6 Uhr) nichts mehr eingetragen, zeigt Flow oben "Feierabend" an.
Kategorie und Anzahl der Blöcke wählen, dann eine der drei Start-Zeiten antippen. Die Startzeit wird immer auf die volle 5-Minuten-Marke gerundet (ab-, aufgerundet oder eine Marke weiter) – damit landen Termine im Kalender immer sauber auf glatten Uhrzeiten. Liegt die gewählte Zeit in der Zukunft, wartet Flow bis dahin und gibt beim tatsächlichen Start einen Ton. Der Kalender-Termin wird dabei sofort angelegt, nicht erst wenn die Wartezeit vorbei ist – der Google-Kalender zeigt den geplanten Block also schon, während die App noch wartet.
Jeder Block bekommt optional eine Kategorie (z.B. ein Kundenname oder Projekt) und einen frei wählbaren Namen (z.B. "Login-Bug"). Beides zusammen ergibt den Titel des Kalender-Termins. Neue Kategorien merkt sich Flow automatisch, sobald sie einmal benutzt wurden – sie lassen sich auch in den Einstellungen verwalten oder löschen.
Was im Google-Kalender steht, gilt. Flow speichert eine Kopie der Termine der letzten und nächsten 14 Tage lokal zwischen (u.a. damit "Heute" auch kurz nach dem Öffnen schon etwas anzeigt), aber bei jeder Aktualisierung (automatisch alle 2 Minuten, oder sofort nach einer eigenen Aktion) wird diese Kopie komplett durch den aktuellen Stand aus Google ersetzt.
Wird ein Termin direkt im Google-Kalender gelöscht – z.B. am Handy –, gilt das auch in Flow: Läuft gerade der zugehörige Block, wird er automatisch mit abgebrochen. Startest du einen Block, während du nicht angemeldet bist (oder der Sync gerade ausgeschaltet ist), läuft er trotzdem ganz normal lokal weiter; sobald du dich anmeldest, wird er umgehend im Kalender nachgetragen.
"Abbrechen" beendet die laufende oder pausierte Serie sofort. Gehört zum aktuellen Block schon ein Kalender-Termin, fragt Flow, ob der Termin komplett gelöscht oder nur auf die tatsächlich vergangene Zeit gekürzt werden soll – damit der Kalender am Ende immer die Wahrheit zeigt, egal wie lange der Block wirklich lief.
Steht im Kalender "Arbeitsblöcke" ein Termin an, meldet sich Flow automatisch einige Minuten vorher (einstellbar, Standard: 5 Min) mit der Frage, ob der Block jetzt starten soll – aber nur, wenn gerade kein anderer Block läuft oder wartet. Das funktioniert auch, wenn der Termin nicht über die App, sondern direkt im Kalender oder über die Wochenplanung angelegt wurde.
Es gibt genau vier Ereignisse mit eigenem Ton: ein Block startet (auch beim manuellen Start), die kurze Pause beginnt, eine Serie ist zu Ende (kein weiterer Block folgt direkt), und die Kalender-Erinnerung. Welcher der zehn verfügbaren Töne bei welchem Ereignis läuft, lässt sich in den Einstellungen festlegen und dort auch einzeln vorhören. Auf der Startseite lässt sich unabhängig davon einfach ein Ton zum Reinhören auswählen und abspielen.
Zeigt alle Termine des laufenden Kalendertages (6 Uhr bis 6 Uhr) direkt aus dem Kalender "Arbeitsblöcke" – vergangene wie kommende. Kategorie und Beschreibung lassen sich anklicken und ändern, das wirkt sich sofort auch auf den Kalender-Termin aus. Ein Termin lässt sich mit Bestätigung löschen (auch das synchron mit Google).
Legt für ausgewählte Wochentage und Uhrzeiten automatisch Kalender-Termine "Arbeitsblock" an – für die gewählte Anzahl an Blöcken pro Termin. Vorher wird geprüft, ob es mit bestehenden Terminen kollidiert (im Arbeitsblöcke-Kalender selbst sowie in allen zusätzlich in den Einstellungen ausgewählten Kalendern) – kollidierende oder in der Vergangenheit liegende Zeiten werden übersprungen, nicht verschoben.
Alles Konfigurierbare liegt gesammelt auf der Einstellungen-Seite: die Google-Verbindung, welcher Kalender für Arbeitsblöcke genutzt wird und welche zusätzlich zur Kollisionsprüfung herangezogen werden, Arbeits-/Pausenzeit, maximale Blockzahl pro Serie, Erinnerungs-Vorlauf, Tagesbeginn (Standard 6 Uhr), die vier Ton-Zuordnungen sowie die Liste der Kategorien. Nichts davon steht fest im Code – alles landet nur lokal im Browser (localStorage) und wirkt beim nächsten Laden von Flow.