]>
vault307.fbx.one Git - mu_code.git/blob - loopCalWeek.py
2 # display events for next 7 days
3 from __future__
import print_function
8 from tkinter
import ttk
10 from google
.auth
.transport
.requests
import Request
11 from google
.oauth2
.credentials
import Credentials
12 from google_auth_oauthlib
.flow
import InstalledAppFlow
13 from googleapiclient
.discovery
import build
14 from googleapiclient
.errors
import HttpError
16 SCOPES
=['https://www.googleapis.com/auth/calendar.readonly']
18 """Shows basic usage of the Google Calendar API.
19 Prints the start and name of the next 7 days on the user's calendar
22 if os
.path
.exists('token.json'):
23 creds
=Credentials
.from_authorized_user_file('token.json', SCOPES
)
24 if not creds
or not creds
.valid
:
25 if creds
and creds
.expired
and creds
.refresh_token
:
26 creds
.refresh(Request())
28 flow
=InstalledAppFlow
.from_client_secrets_file(
29 'credentials-sheets.json',SCOPES
)
30 creds
=flow
.run_local_server(port
=0)
31 with open('token.json','w') as token
:
32 token
.write(creds
.to_json())
35 service
=build('calendar','v3',credentials
=creds
)
37 window
.title('next 7 days')
39 # Call the Calendar API
40 now
=datetime
.datetime
.utcnow().isoformat()+'Z' #datetime in crrct frmt
41 today
=datetime
.datetime
.now()
42 max=(today
+datetime
.timedelta(days
=7)).isoformat()+'Z'
43 print("Getting the week's events")
44 events_result
=service
.events().list(calendarId
='primary',
45 timeMin
=now
,timeMax
=max,singleEvents
=True,
46 orderBy
='startTime',prettyPrint
=True).execute()
47 events
=events_result
.get('items',[]) #list of dict (event=dict)
49 events_result2
=service
.events().list(calendarId
='greendaygirl0123@gmail.com',
50 timeMin
=now
,timeMax
=max,singleEvents
=True,
51 orderBy
='startTime').execute()
52 events2
=events_result2
.get('items',[])
55 print('No upcoming events found.')
58 print('No upcoming events2 found.')
63 start
=datetime
.datetime
.fromisoformat(
64 event
['start'].get('dateTime',event
['start'].get('date')))
65 Start
=start
.strftime("%a %m-%d %I:%M %p")
66 description
=event
.get('description','')
67 eventLblJ
=tk
.Label(window
,text
=(Start
, event
['summary'], description
),
68 fg
='cyan',bg
='black',relief
='sunken')
69 eventLblJ
.grid(stick
='nsew')
71 keyLblJ
=tk
.Label(window
,text
="Jimmy",bg
='black',fg
='cyan',
73 keyLblJ
.grid(sticky
='nsew')
74 keyLblK
=tk
.Label(window
,text
="Katie",bg
='cyan',relief
='sunken')
75 keyLblK
.grid(sticky
='nsew')
77 for event2
in events2
:
78 start2
=datetime
.datetime
.fromisoformat(
79 event2
['start'].get('dateTime',event2
['start'].get('date')))
80 Start2
=start2
.strftime("%a %m-%d %I:%M %p")
81 description2
=event2
.get('description','')
82 eventLblK
=tk
.Label(window
,text
=(Start2
, event2
['summary'], description2
),
83 bg
='cyan',relief
='sunken')
84 eventLblK
.grid(sticky
='nsew')
86 print(Start
, event
['summary'], description
,"\n",
87 Start2
, event2
['summary'], description2
,"\n")
91 except HttpError
as error
:
92 print('An error occurred: %s' % error
)