]> vault307.fbx.one Git - mu_code.git/blob - calendarQstrt.py
early learning in mu editor
[mu_code.git] / calendarQstrt.py
1 #!/usr/bin/env python3
2
3 from __future__ import print_function
4 import datetime
5 import os.path
6
7 import tkinter as tk
8
9 from google.auth.transport.requests import Request
10 from google.oauth2.credentials import Credentials
11 from google_auth_oauthlib.flow import InstalledAppFlow
12 from googleapiclient.discovery import build
13 from googleapiclient.errors import HttpError
14
15 SCOPES=['https://www.googleapis.com/auth/calendar.readonly']
16
17 def main():
18
19 """Shows basic usage of the Google Calendar API.
20 Prints the start and name of the next 10 events on the user's calendar
21 """
22 creds=None
23 if os.path.exists('token.json'):
24 creds=Credentials.from_authorized_user_file('token.json', SCOPES)
25 if not creds or not creds.valid:
26 if creds and creds.expired and creds.refresh_token:
27 creds.refresh(Request())
28 else:
29 flow=InstalledAppFlow.from_client_secrets_file(
30 'credentials-sheets.json',SCOPES)
31 creds=flow.run_local_server(port=0)
32 with open('token.json','w') as token:
33 token.write(creds.to_json())
34 try:
35 service=build('calendar','v3',credentials=creds)
36
37 # Call the Calendar API
38 now=datetime.datetime.utcnow().isoformat()+'Z'
39 print('Getting the upcoming 10 events')
40 events_result=service.events().list(calendarId='primary',
41 timeMin=now,maxResults=10,singleEvents=True,
42 orderBy='startTime').execute()
43 events=events_result.get('items',[])
44
45 if not events:
46 print('No upcoming events found.')
47 return
48
49 for event in events:
50 start=event['start'].get('dateTime',event['start'].get('date'))
51 description=event.get('description','')
52 print(start, event['summary'], description)
53
54 except HttpError as error:
55 print('An error occurred: %s' % error)
56
57 if __name__=='__main__':
58 main()