Mit Google Calendar API (Python) überprüfen ob ich ein Termin habe?
Hey,
Ich versuche schon länger ein code im Internet zu finden mit dem ich in Python nach einem Startdatum dann eine Startzeit und eine Endzeit gefragt werde.
Anschließend soll dank der Google Calendar API in meinem Google Calendar nachgeschaut werden ob ich während der Zeit ein Termin habe oder nicht.
Wenn ja soll "Ja" ausgegeben werden und wenn nicht "Nein".
LG
2 Antworten
Das hört sich jetzt nicht nach nem unlösbaren Problem an? Kannst Du kein Python oder was ist das Problem?
https://google-calendar-simple-api.readthedocs.io/en/latest/events.html#list-events
events = gc.get_events(time_min, time_max, order_by='updated')
Gibt dir ne Liste von Events im Zeitraum, der durch time_min und time_max spezifiert wird. Ist die Liste leer, hast Du Zeit.
Hey leider habe ich ein problem wenn ich mein programm starte.
Ich muss mich zuerst bei google anmelden und dann steht da:
Access blocked: ProjectNew has not completed the Google verification process
meine.email@gmail.com
ProjectNew has not completed the Google verification process. The app is currently being tested, and can only be accessed by developer-approved testers. If you think you should have access, contact the developer.
If you are a developer of ProjectNew, see error details.
Error 403: access_denied
Ich weiß nicht weshalb aber es klappt jetzt vielen dank
from datetime import datetime
from google.oauth2.credentials import Credentials
from google.auth.transport.requests import Request
from google_auth_oauthlib.flow import InstalledAppFlow
from googleapiclient.discovery import build
# Scopes für den Zugriff auf den Kalender
SCOPES = ['https://www.googleapis.com/auth/calendar.readonly']
def main():
creds = None
# Die Datei token.json speichert die Zugriffstoken und wird automatisch erzeugt, wenn die Authentifizierung erfolgreich ist.
if os.path.exists('token.json'):
creds = Credentials.from_authorized_user_file('token.json')
# Wenn es keine gültigen Anmeldeinformationen gibt oder diese abgelaufen sind, dann fordere den Benutzer zur erneuten Authentifizierung auf.
if not creds or not creds.valid:
if creds and creds.expired and creds.refresh_token:
creds.refresh(Request())
else:
flow = InstalledAppFlow.from_client_secrets_file(
'credentials.json', SCOPES)
creds = flow.run_local_server(port=0)
# Speichere die Anmeldeinformationen für die nächste Ausführung
with open('token.json', 'w') as token:
token.write(creds.to_json())
# Erzeuge ein Google Calendar API Objekt
service = build('calendar', 'v3', credentials=creds)
# Frage nach Startdatum, Startzeit und Endzeit
start_date = input("Bitte gib das Startdatum im Format 'YYYY-MM-DD' ein: ")
start_time = input("Bitte gib die Startzeit im Format 'HH:MM' ein: ")
end_time = input("Bitte gib die Endzeit im Format 'HH:MM' ein: ")
# Erzeuge Start- und Endzeit-Objekte
start_datetime = datetime.strptime(start_date + ' ' + start_time, '%Y-%m-%d %H:%M')
end_datetime = datetime.strptime(start_date + ' ' + end_time, '%Y-%m-%d %H:%M')
# ISO-Format für die Zeit
start_time_iso = start_datetime.isoformat() + 'Z'
end_time_iso = end_datetime.isoformat() + 'Z'
# Rufe die Liste der Ereignisse im Kalender ab
events_result = service.events().list(calendarId='primary', timeMin=start_time_iso, timeMax=end_time_iso,
maxResults=10, singleEvents=True,
orderBy='startTime').execute()
events = events_result.get('items', [])
# Überprüfe, ob ein Ereignis gefunden wurde
if not events:
print('Nein')
else:
print('Ja')
if __name__ == '__main__':
main()
Zugriff blockiert: Die Überprüfung von ProjectNew durch Google wurde nicht abgeschlossen
Okay ich weiß nicht weshalb aber es klappt jetzt vielen Dank !
Hey danke für deine Antwort aber auch in deinen Beispielen finde ich nichts, dass überprüft ob ich Zeit habe oder nicht. Oder Irre ich mich?