|
from google import calendar |
|
from copy import deepcopy |
|
|
|
import datetime |
|
|
|
def transform(recurringEvent): |
|
simpleEvent = deepcopy(recurringEvent) |
|
|
|
del simpleEvent['kind'] |
|
del simpleEvent['etag'] |
|
del simpleEvent['id'] |
|
del simpleEvent['status'] |
|
del simpleEvent['htmlLink'] |
|
del simpleEvent['created'] |
|
del simpleEvent['updated'] |
|
del simpleEvent['creator'] |
|
del simpleEvent['organizer'] |
|
del simpleEvent['recurringEventId'] |
|
del simpleEvent['originalStartTime'] |
|
del simpleEvent['iCalUID'] |
|
del simpleEvent['sequence'] |
|
|
|
simpleEvent = calendar.events().insert(calendarId='primary', body=simpleEvent).execute() |
|
|
|
if simpleEvent: |
|
calendar.events().delete(calendarId='primary', eventId=recurringEvent['id']).execute() |
|
start = simpleEvent['start'].get('dateTime', simpleEvent['start'].get('date')) |
|
print(' ✅', start, simpleEvent['summary']) |
|
else: |
|
print(' ❗', start, simpleEvent['summary']) |
|
|
|
pageToken = None |
|
|
|
todayMinusOneYear = datetime.datetime.now() - datetime.timedelta(days=365) |
|
todayPlusOneYear = datetime.datetime.now() + datetime.timedelta(days=365) |
|
|
|
timeMin = todayMinusOneYear.isoformat() + 'Z' # 'Z' indicates UTC time |
|
timeMax = todayPlusOneYear.isoformat() + 'Z' # 'Z' indicates UTC time |
|
|
|
while True: |
|
data = calendar.events().list( |
|
calendarId='primary', singleEvents=True, pageToken=pageToken, |
|
maxResults=100, timeMin=timeMin, timeMax=timeMax |
|
).execute() |
|
|
|
events = data.get('items', []) |
|
pageToken = data.get('nextPageToken') |
|
|
|
if events: |
|
for event in events: |
|
start = event['start'].get('dateTime', event['start'].get('date')) |
|
print(' ', start, event['summary'], ' ' * 120, '\r', end='') |
|
|
|
if 'recurringEventId' in event: |
|
transform(event) |
|
|
|
if not pageToken: |
|
break |