From b0a39a1b8c0ecb7940c782193af42067274e5e6e Mon Sep 17 00:00:00 2001 From: Dmitry Date: Sat, 7 Mar 2020 17:54:16 +0300 Subject: [PATCH] manage_calendars: use nextPageToken for list By default maximum number of entries returned on one result page is 100 --- sync_ics2gcal/manage_calendars.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/sync_ics2gcal/manage_calendars.py b/sync_ics2gcal/manage_calendars.py index 6edb504..c95b24d 100644 --- a/sync_ics2gcal/manage_calendars.py +++ b/sync_ics2gcal/manage_calendars.py @@ -69,8 +69,16 @@ def load_config(): def list_calendars(service): - response = service.calendarList().list(fields='items(id,summary)').execute() - for calendar in response.get('items'): + calendars = [] + page_token = None + while True: + response = service.calendarList().list(fields='nextPageToken,items(id,summary)', pageToken=page_token).execute() + if 'items' in response: + calendars.extend(response['items']) + page_token = response.get('nextPageToken') + if not page_token: + break + for calendar in calendars: print('{summary}: {id}'.format_map(calendar))