Google 日历事件持续时间 Python
Google Calendar Event Duration Python
I am trying to get the duration of each event from the google calendar
api.
这里是我试图打印个人日历中前 20 个事件的持续时间的代码:
page_token = None
while True:
calendar_list = service.calendarList().list(pageToken=page_token).execute()
for calendar_list_entry in calendar_list['items']:
print(calendar_list_entry['summary'])
events_result = service.events().list(calendarId=calendar_list_entry['id'], timeMin=now,
maxResults=20, singleEvents=True,
orderBy='startTime').execute()
events = events_result.get('items', [])
if not events:
print('\tNo upcoming events found.')
for event in events:
start = event['start'].get('dateTime', event['start'].get('date'))
end = event['end'].get('dateTime', event['end'].get('date'))
print(end - start)
page_token = calendar_list.get('nextPageToken')
if not page_token:
break
我想知道是否有一种简单的方法可以从 google 日历 api.
中获取此信息
我对日期时间进行了一些研究(我从来没有真正使用它)并意识到谷歌的开始和结束时间是 iso 标准格式。
我通过导入 dateutil.parser 包修复了它,并使用 isoparse 函数将 iso 标准字符串转换为日期时间。
page_token = None
while True:
calendar_list = service.calendarList().list(pageToken=page_token).execute()
for calendar_list_entry in calendar_list['items']:
print(calendar_list_entry['summary'])
events_result = service.events().list(calendarId=calendar_list_entry['id'], timeMin=now,
maxResults=20, singleEvents=True,
orderBy='startTime').execute()
events = events_result.get('items', [])
if not events:
print('\tNo upcoming events found.')
for event in events:
start = event['start'].get('dateTime', event['start'].get('date'))
end = event['end'].get('dateTime', event['end'].get('date'))
new_start = dateutil.parser.isoparse(start) # changing the start time to datetime format
new_end = dateutil.parser.isoparse(end) # changing the end time to datetime format
print(new_end - new_start)
I am trying to get the duration of each event from the google calendar api.
这里是我试图打印个人日历中前 20 个事件的持续时间的代码:
page_token = None
while True:
calendar_list = service.calendarList().list(pageToken=page_token).execute()
for calendar_list_entry in calendar_list['items']:
print(calendar_list_entry['summary'])
events_result = service.events().list(calendarId=calendar_list_entry['id'], timeMin=now,
maxResults=20, singleEvents=True,
orderBy='startTime').execute()
events = events_result.get('items', [])
if not events:
print('\tNo upcoming events found.')
for event in events:
start = event['start'].get('dateTime', event['start'].get('date'))
end = event['end'].get('dateTime', event['end'].get('date'))
print(end - start)
page_token = calendar_list.get('nextPageToken')
if not page_token:
break
我想知道是否有一种简单的方法可以从 google 日历 api.
中获取此信息我对日期时间进行了一些研究(我从来没有真正使用它)并意识到谷歌的开始和结束时间是 iso 标准格式。
我通过导入 dateutil.parser 包修复了它,并使用 isoparse 函数将 iso 标准字符串转换为日期时间。
page_token = None
while True:
calendar_list = service.calendarList().list(pageToken=page_token).execute()
for calendar_list_entry in calendar_list['items']:
print(calendar_list_entry['summary'])
events_result = service.events().list(calendarId=calendar_list_entry['id'], timeMin=now,
maxResults=20, singleEvents=True,
orderBy='startTime').execute()
events = events_result.get('items', [])
if not events:
print('\tNo upcoming events found.')
for event in events:
start = event['start'].get('dateTime', event['start'].get('date'))
end = event['end'].get('dateTime', event['end'].get('date'))
new_start = dateutil.parser.isoparse(start) # changing the start time to datetime format
new_end = dateutil.parser.isoparse(end) # changing the end time to datetime format
print(new_end - new_start)