API Zugriff auf den Google Kalender

Neulich dachte ich mir, es könnte doch interessant sein den privaten Google Kalender per Ruby auszulesen und auf dem Dashboard auszugeben.

Für den API Zugriff muss zunächst ein Projekt in der google cloud unter https://console.cloud.google.com/projectcreate?hl=de ein Projekt erstellt werden. Nachdem das Projekt angelegt wurde kann unter dem Menüpunkt IAM ein Dienstkonto erstellt werden. Bei dem Erstellen des Dienstkontos sollte gleich der Schlüssel generiert werden als json Datei, diese wird später noch benötigt(dienstbenutzer.json).

Um die Daten abrufen zu können, muss das Dienstkonto auf den Google Kalender berechtigt werden.

Folgende gems wurden installiert: google-api-client, google-apis-calendar_v3, googleauth, json

Das Script selbst ist wie folgt aufgebaut:

require 'google/apis/calendar_v3'
require 'googleauth'
require 'json'

t = Time.now
zeit =  t.strftime("%Y-%d-%mT%H:%M:%Sz")
content = Google::Apis::CalendarV3::CalendarService.new
scope = 'https://www.googleapis.com/auth/calendar.readonly'

content.authorization = Google::Auth::ServiceAccountCredentials.make_creds(
  json_key_io: File.open('./dienstbenutzer.json'),
  scope: scope)
content.authorization.fetch_access_token!
termine = content.list_events(calenderid='<EmailAdresse des Kalenders>' )
events = termine.items.map do |e|
  {
     title: e.summary,
     start: e.start.date || e.start.date_time.strftime('%d.%m.%y %H:%M')}

end
puts events

Als weiteren Parameter kann neben der calenderid auch time_min und time_max verwendet werden, um die Ausgabe der Termine zu begrenzen.

Ein Gedanke zu „API Zugriff auf den Google Kalender

  1. Pingback: Google Kalender Termine in Grafana | itbasic

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert