adds event structure and saves color information of calendar over to event
This commit is contained in:
		@@ -9,6 +9,17 @@ from google.auth.transport.requests import Request
 | 
				
			|||||||
# If modifying these scopes, delete the file token.pickle.
 | 
					# If modifying these scopes, delete the file token.pickle.
 | 
				
			||||||
SCOPES = ['https://www.googleapis.com/auth/calendar.readonly']
 | 
					SCOPES = ['https://www.googleapis.com/auth/calendar.readonly']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Event:
 | 
				
			||||||
 | 
					    def __init__(self, name_, color_, start_, end_):
 | 
				
			||||||
 | 
					        self.name = name_
 | 
				
			||||||
 | 
					        self.color = color_
 | 
				
			||||||
 | 
					        self.start = start_
 | 
				
			||||||
 | 
					        self.end = end_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Calendar:
 | 
				
			||||||
 | 
					    def __init__(self, calendarId_, color_):
 | 
				
			||||||
 | 
					        self.calendarId = calendarId_
 | 
				
			||||||
 | 
					        self.color = color_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def calendarCredentials():
 | 
					def calendarCredentials():
 | 
				
			||||||
    creds = None
 | 
					    creds = None
 | 
				
			||||||
@@ -36,24 +47,33 @@ def calendarCredentials():
 | 
				
			|||||||
    
 | 
					    
 | 
				
			||||||
def getCalendarEvents(service, startDate, endDate):
 | 
					def getCalendarEvents(service, startDate, endDate):
 | 
				
			||||||
    page_token = None
 | 
					    page_token = None
 | 
				
			||||||
    calendar_ids = []
 | 
					    calendars = []
 | 
				
			||||||
    while True:
 | 
					    while True:
 | 
				
			||||||
        calendar_list = service.calendarList().list(pageToken=page_token).execute()
 | 
					        calendar_list = service.calendarList().list(pageToken=page_token).execute()
 | 
				
			||||||
        for calendar_list_entry in calendar_list['items']:
 | 
					        for calendar_list_entry in calendar_list['items']:
 | 
				
			||||||
            print(calendar_list_entry['colorId'])
 | 
					            calendars.append(Calendar(calendar_list_entry['id'], calendar_list_entry['colorId']))
 | 
				
			||||||
            calendar_ids.append(calendar_list_entry['id'])
 | 
					 | 
				
			||||||
        page_token = calendar_list.get('nextPageToken')
 | 
					        page_token = calendar_list.get('nextPageToken')
 | 
				
			||||||
        if not page_token:
 | 
					        if not page_token:
 | 
				
			||||||
            break
 | 
					            break
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    all_events = []
 | 
					    all_events = []
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    for calendar in calendar_ids:
 | 
					    for calendar in calendars:
 | 
				
			||||||
        events_result = service.events().list(calendarId=calendar, timeMin=startDate,
 | 
					        events_result = service.events().list(calendarId=calendar.calendarId, timeMin=startDate,
 | 
				
			||||||
                                            timeMax=endDate,
 | 
					                                            timeMax=endDate,
 | 
				
			||||||
                                            maxResults=10, singleEvents=True,
 | 
					                                            maxResults=10, singleEvents=True,
 | 
				
			||||||
                                        orderBy='startTime').execute()
 | 
					                                            orderBy='startTime').execute()
 | 
				
			||||||
        all_events.append(events_result.get('items', []))
 | 
					
 | 
				
			||||||
 | 
					        for event in events_result.get('items', []):
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					            name = event['summary']
 | 
				
			||||||
 | 
					            start = event['start'].get('dateTime')
 | 
				
			||||||
 | 
					            end = event['end'].get('dateTime')
 | 
				
			||||||
 | 
					            color = event.get('colorId')
 | 
				
			||||||
 | 
					            if color == None:
 | 
				
			||||||
 | 
					                color = calendar.color
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            all_events.append(Event(name, color, start, end))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return all_events
 | 
					    return all_events
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -61,22 +81,21 @@ def main():
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    service = calendarCredentials()
 | 
					    service = calendarCredentials()
 | 
				
			||||||
    # Call the Calendar API
 | 
					    # Call the Calendar API
 | 
				
			||||||
    now = datetime.datetime.now()
 | 
					    now = datetime.datetime.now(datetime.timezone.utc).astimezone()
 | 
				
			||||||
    now = now.replace(hour=00, minute=00)
 | 
					    now = now.replace(hour=0, minute=0)
 | 
				
			||||||
    today = now.isoformat() + 'Z' # 'Z' indicates UTC time
 | 
					    today = now.isoformat() # + '+01:00' # 'Z' indicates UTC time
 | 
				
			||||||
 | 
					    print("today: ")
 | 
				
			||||||
 | 
					    print(today)
 | 
				
			||||||
    # one_day = datetime.timedelta(days=1)
 | 
					    # one_day = datetime.timedelta(days=1)
 | 
				
			||||||
    tomorrow = (now.replace(hour=23, minute=59, second=59)).isoformat() + 'Z'
 | 
					    tomorrow = (now.replace(hour=23, minute=0, second=1)).isoformat() # + '+01:00'
 | 
				
			||||||
 | 
					    print("tomorrow: ")
 | 
				
			||||||
 | 
					    print(tomorrow)
 | 
				
			||||||
    all_events = getCalendarEvents(service, today, tomorrow)
 | 
					    all_events = getCalendarEvents(service, today, tomorrow)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # if not events:
 | 
					    # if not events:
 | 
				
			||||||
    #    print('No upcoming events found.')
 | 
					    #    print('No upcoming events found.')
 | 
				
			||||||
    for event_list in all_events:
 | 
					    for event in all_events:
 | 
				
			||||||
        for event in event_list:
 | 
					        print(event.name + ": " + event.start + ", " + event.color)
 | 
				
			||||||
            start = event['start'].get('dateTime')
 | 
					 | 
				
			||||||
            color = event.get('colorId')
 | 
					 | 
				
			||||||
            end = event['end'].get('dateTime')
 | 
					 | 
				
			||||||
            print(start, " ", end, color, event['summary'])
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if __name__ == '__main__':
 | 
					if __name__ == '__main__':
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										
											BIN
										
									
								
								token.pickle
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								token.pickle
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
		Reference in New Issue
	
	Block a user