]>
vault307.fbx.one Git - mu_code.git/blob - calendarWeek.py
2 # display events for next 7 days
3 from __future__
import print_function
7 from collections
import ChainMap
9 from tkinter
.scrolledtext
import ScrolledText
11 from google
.auth
.transport
.requests
import Request
12 from google
.oauth2
.credentials
import Credentials
13 from google_auth_oauthlib
.flow
import InstalledAppFlow
14 from googleapiclient
.discovery
import build
15 from googleapiclient
.errors
import HttpError
17 SCOPES
=['https://www.googleapis.com/auth/calendar.readonly']
19 """Shows basic usage of the Google Calendar API.
20 Prints the start and name of the next 7 days on the user's calendar
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())
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())
36 service
=build('calendar','v3',credentials
=creds
)
38 # Call the Calendar API
39 now
=datetime
.datetime
.utcnow().isoformat()+'Z' #datetime in crrct frmt
40 today
=datetime
.datetime
.now()
41 max=(today
+datetime
.timedelta(days
=7)).isoformat()+'Z'
42 print("Getting the week's events")
43 events_result
=service
.events().list(calendarId
='primary',
44 timeMin
=now
,timeMax
=max,singleEvents
=True,
45 orderBy
='startTime',prettyPrint
=True).execute()
46 events
=events_result
.get('items',[]) #list of dict (event=dict)
48 #dont use events_result. dictionary, then list of dictionaries
49 eventsJ
=([kind
["summary"] for kind
in events
])+(([kind
["start"] for kind
in events
]))
50 #for eventJ in eventsJ:
56 events_result2
=service
.events().list(calendarId
='greendaygirl0123@gmail.com',
57 timeMin
=now
,timeMax
=max,singleEvents
=True,
58 orderBy
='startTime').execute()
59 events2
=events_result2
.get('items',[])
62 print('No upcoming events found.')
65 print('No upcoming events2 found.')
68 start
=datetime
.datetime
.fromisoformat(
69 event
['start'].get('dateTime',event
['start'].get('date')))
70 description
=event
.get('description','')
72 for event2
in events2
:
73 start2
=datetime
.datetime
.fromisoformat(
74 event2
['start'].get('dateTime',event2
['start'].get('date')))
75 description2
=event2
.get('description','')
77 print(start
, event
['summary'], description
,"\n",
78 start2
, event2
['summary'], description2
,"\n")
80 except HttpError
as error
:
81 print('An error occurred: %s' % error
)
84 window
.title("Next 7 days")
85 #window.geometry('600x400+50+50')
86 #window.columnconfigure(0, weight=1)
87 #window.columnconfigure(2, weight=3)
88 #window.rowconfigure(0, weight=1)
89 #window.rowconfigure(1, weight=5)
90 #window.rowconfigure(2, weight=5)
92 idLbl1
=tk
.Label(window
, text
="Calendar User", relief
="sunken")
93 idLbl1
.grid(column
=0,row
=0, sticky
="nsew")
95 idLblJ
=tk
.Label(window
,text
="Jimmy", relief
="sunken")
96 idLblJ
.grid(column
=0,row
=1, sticky
="nsew")
98 idLblK
=tk
.Label(window
,text
="Katie", relief
="sunken")
99 idLblK
.grid(column
=0,row
=2, sticky
="nsew")
101 strtLbl1
=tk
.Label(window
,text
="start date/time in UTC", relief
="sunken")
102 strtLbl1
.grid(column
=1,row
=0, sticky
="nsew")
104 strtLblJ
=tk
.Label(window
,text
=start
,relief
="sunken")
105 strtLblJ
.grid(column
=1,row
=1, sticky
="nsew")
107 strtLblK
=tk
.Label(window
,text
=start2
, relief
="sunken",)
108 strtLblK
.grid(column
=1,row
=2, sticky
="nsew")
110 sumLbl1
=tk
.Label(window
,text
="summary", relief
="sunken")
111 sumLbl1
.grid(column
=2,row
=0, sticky
="nsew")
113 sumLblJ
=tk
.Label(window
,text
=event
['summary'],relief
="sunken")
114 sumLblJ
.grid(column
=2,row
=1,sticky
="nsew")
116 """sclTeventj=tk.scrolledtext.ScrolledText(window,height=2,width=30,wrap='word',
118 sclTeventj.insert(tk.INSERT,([kind["summary"] for kind in events]))
119 sclTeventj.grid(column=2,row=1,sticky="nsew")"""
121 """sumTxtJ=tk.Text(window,height=10,wrap="word",relief="sunken")
122 sumTxtJ.grid(column=2,row=1, sticky="nsew")
123 sumTxtJ.insert(tk.END,eventsJ)
124 sumTxtJ.configure(state='disabled')
125 scrlBrJ=tk.Scrollbar(sumTxtJ)
126 scrlBrJ.pack(side="right",fill='y')
127 sumTxtJ.config(yscrollcommand=scrlBrJ.set)
128 scrlBrJ.config(command=sumTxtJ.yview)"""
130 sumLblK
=tk
.Label(window
,text
=event2
['summary'], relief
="sunken")
131 sumLblK
.grid(column
=2,row
=2, sticky
="nsew")
133 dscLbl1
=tk
.Label(window
,text
="description", relief
="sunken")
134 dscLbl1
.grid(column
=3,row
=0, sticky
="nsew")
136 dscLblJ
=tk
.Label(window
,text
=description
, relief
="sunken")
137 dscLblJ
.grid(column
=3,row
=1, sticky
="nsew")
139 dscLblK
=tk
.Label(window
,text
=description2
, relief
="sunken")
140 dscLblK
.grid(column
=3,row
=2, sticky
="nsew")
142 dateLbl1
=tk
.Label(window
,text
="WEEK", relief
="sunken")
143 dateLbl1
.grid(column
=0,columnspan
=2, row
=4, sticky
="nsew")
145 dateLblMin
=tk
.Label(window
,text
=now
,relief
="sunken")
146 dateLblMin
.grid(column
=2,row
=4, sticky
="nsew")
148 dateLblmax
=tk
.Label(window
,text
=max,relief
="sunken")
149 dateLblmax
.grid(column
=3,row
=4,stick
="nsew")