def get(self): credentials = AppAssertionCredentials( "https://www.googleapis.com/auth/calendar.readonly") http_auth = credentials.authorize(Http()) cal_service = discovery.build('calendar', 'v3', http=http_auth) service_settings = ServiceSettings.query().get() if not service_settings: service_settings = ServiceSettings() next_sync_token = service_settings.cal_sync_token cal_events = [] if next_sync_token: now = None else: now = strict_rfc3339.now_to_rfc3339_utcoffset() try: events_result = cal_service.events().list( calendarId="*****@*****.**", timeMin=now, syncToken=next_sync_token).execute() except: service_settings.cal_sync_token = None service_settings.put() raise cal_events += events_result.get('items', []) next_page_token = events_result.get('nextPageToken', None) while next_page_token: events_result = cal_service.events().list( calendarId="*****@*****.**", timeMin=now, syncToken=next_sync_token, pageToken=next_page_token).execute() cal_events += events_result.get('items', []) next_page_token = events_result.get('nextPageToken', None) next_sync_token = events_result.get("nextSyncToken", None) service_settings.cal_sync_token = next_sync_token service_settings.put() for cal_event in cal_events: cal_id = cal_event.get("id") event = Event.query().filter(Event.cal_id == cal_id).get() if event: q = taskqueue.Queue('default') for task in event.tasks: q.delete_tasks(taskqueue.Task(name=task)) event.tasks = [] if cal_event.get("status") == "cancelled": event.key.delete() logging.info("Event deleted: %s", event) continue else: event = Event(cal_id=cal_id) event.put() summary = cal_event.get("summary") description = cal_event.get("description") start = cal_event.get("start") end = cal_event.get("end") start = parse_date_time(start.get("date"), start.get("dateTime")) end = parse_date_time(end.get("date"), end.get("dateTime")) event.summary = summary event.description = description event.start = start event.end = end set_event_reminders(event) event.put() logging.info("New event created: %s", event)
def get(self): credentials = AppAssertionCredentials("https://www.googleapis.com/auth/calendar.readonly") http_auth = credentials.authorize(Http()) cal_service = discovery.build('calendar', 'v3', http=http_auth) service_settings = ServiceSettings.query().get() if not service_settings: service_settings = ServiceSettings() next_sync_token = service_settings.cal_sync_token cal_events = [] if next_sync_token: now = None else: now = strict_rfc3339.now_to_rfc3339_utcoffset() try: events_result = cal_service.events().list(calendarId="*****@*****.**", timeMin=now, syncToken=next_sync_token).execute() except: service_settings.cal_sync_token = None service_settings.put() raise cal_events += events_result.get('items', []) next_page_token = events_result.get('nextPageToken', None) while next_page_token: events_result = cal_service.events().list(calendarId="*****@*****.**", timeMin=now, syncToken=next_sync_token, pageToken=next_page_token).execute() cal_events += events_result.get('items', []) next_page_token = events_result.get('nextPageToken', None) next_sync_token = events_result.get("nextSyncToken", None) service_settings.cal_sync_token = next_sync_token service_settings.put() for cal_event in cal_events: cal_id = cal_event.get("id") event = Event.query().filter(Event.cal_id == cal_id).get() if event: q = taskqueue.Queue('default') for task in event.tasks: q.delete_tasks(taskqueue.Task(name=task)) event.tasks = [] if cal_event.get("status") == "cancelled": event.key.delete() logging.info("Event deleted: %s", event) continue else: event = Event(cal_id=cal_id) event.put() summary = cal_event.get("summary") description = cal_event.get("description") start = cal_event.get("start") end = cal_event.get("end") start = parse_date_time(start.get("date"), start.get("dateTime")) end = parse_date_time(end.get("date"), end.get("dateTime")) event.summary = summary event.description = description event.start = start event.end = end set_event_reminders(event) event.put() logging.info("New event created: %s", event)