Einfaches Anfrage- und Reservierungssystem mit Google Apps Bordmitteln

Online-Reservierungssysteme werden als SaaS (Software as a Service) in beträchtlicher Anzahl und Variation angeboten. Wer ein einfaches, kleines System mit geringem Aufwand selbst erstellen oder einsetzen möchte (und bereits über ein Google Apps Konto verfügt), kann mit dieser Anleitung die ersten Schritte machen.

1. einen Google Kalender erstellen
Der Kalender entspricht im Prinzip der Ressource, um dessen Reservierung bzw. Belegung es geht. Das kann z.B. eine Ferienwohnung, ein PKW, ein Veranstaltungsraum oder ähnliches sein, dessen frei-/belegt-Status visualisiert werden soll.

Kalender erstellen

Notieren Sie sich die Kalender-ID aus den „Einstellungen“, diese wird später in das Script eingetragen:
Kalender-ID

2. ein Formular in Google Drive erstellen
Damit können Interessenten, Mitarbeiter und andere User eine Art „Anfrage“ für die Buchung absenden. Hier kann man Felder, wie z.B. Datum, Uhrzeiten, Namen, etc. vorgeben. Es gibt unzähliche Anleitungen und Tutorials, was man alles mit den „Google Forms“ anstellen kann. Wichtig ist es, die notwendigen Infos (=Felder) für die spätere Verwendung bei der Belegung abzufragen.

Formular erstellen

3. die Tabelle auswählen
Die Felder aus dem Formular werden auf Wunsch automatisch in eine neue oder bestehende Tabelle, die als Datenbank dient, eingetragen. Sobald also jemand das Formular ausfüllt und absendet, wird der Tabelle eine weitere Zeile zugefügt, die Spalten entsprechen dabei (auch in der Reihenfolge) den Feldern aus dem Formular.

Formular verknüpfen

4. die Tabelle mit dem Kalender verknüpfen
Das geschieht mit Hilfe eines Google Scripts, das die Zellen in einen Kalendereintrag überträgt. Dazu muss man in der Tabelle unter „Tools“ den „Skripteditor“ aufrufen und der Datenbank die gewünschten Aktionen beibringen. Für weniger geübte GS-Programmierer gibt es zahlreiche Anleitungen mit fertigen Scripts für unterschiedliche Zwecke, hier eine kleine Auswahl für unser Vorhaben:

http://www.googleappsscript.org/calendar-services/create-calendar-events-by-submitting-form
http://blog.ouseful.info/2010/03/04/maintaining-google-calendars-from-a-google-spreadsheet/

In dem Script muss dann die eigene Kalender-ID (-> var calId) aus dem 1. Schritt eingesetzt werden.

5. Action
In der Tabelle erscheint nach Erstellung des Scripts ein neuer Menüeintrag „Calendar Actions“, wodurch die Ausführung gestartet und der Kalendereintrag vorgenommen wird. Man kann das auch automatisch erledigen lassen, in dieser einfachen Variante ist jedoch vorgesehen, dass sich jemand die Einträge in der Tabelle ansieht und erst durch den Klick bestätigt. Bei der ersten Ausführung fordert das Script die Schreibberechtigung für den Kalender an. Hier bitte „akzeptieren“ klicken, damit die Einträge in den Kalender übertragen werden.

Genehmigung
Kalendereintrag

Zum Schluss noch eine paar Hinweise:

– für dieses Konzept reichen einfache Kalender, die es für die kostenlosen Google Apps Konten gibt, völlig aus – es müssen keine Ressourcen-Kalender der Premium Edition sein
– pro Ressource muss jeweils ein Set aus Kalender, Formular und Tabelle (inkl. Script) erstellt werden
– als einfacheres User-Interface lässt sich eine Google Site erstellen, worin z.B. das Formular und der Kalender gemeinsam auf einer Seite eingebettet werden können
– natürlich können Einträge (die entsprechende Rechte vorausgesetzt) direkt in der Tabelle vorgenommen werden, ohne das Formular zu nutzen
– in den Tabellen kann (und sollte) die Benachrichtigungsfunktion (unter –> Tools –> Benachrichtigungsregeln…) aktiviert werden, damit bei eingehenden Anfragen durch abgesendete Formulare oder direkte Einträge/Änderungen in der Tabelle eine E-Mail an den Besitzer gesendet wird
– wenn man auf einem iOS oder Android Gerät die Google Drive und Google Tabellen Apps installiert hat, kann man Reservierungsanfragen mobile einsehen (AFAIK lassen sich Google Scripte unter iOS aktuell noch nicht triggern – bitte korrigieren, wenn ich falsch liege)

Wenn jemand Fragen oder Probleme bei der Umsetzung hat, kann er mich dazu gerne kontaktieren.