pagination fix

This commit is contained in:
2026-04-09 16:29:00 +02:00
parent 51a6a8be83
commit bd048a245b

View File

@@ -230,6 +230,7 @@ def get_all_gcal_events(service, from_now=False):
Retrieves all gcal events with custom property blechreizEvent=True. Retrieves all gcal events with custom property blechreizEvent=True.
These are all events that have been created by this script. These are all events that have been created by this script.
Handles pagination so all events are returned regardless of count.
""" """
if from_now: if from_now:
now = datetime.datetime.now() now = datetime.datetime.now()
@@ -237,21 +238,32 @@ def get_all_gcal_events(service, from_now=False):
else: else:
min_time = "2000-01-01T00:00:00-00:00" min_time = "2000-01-01T00:00:00-00:00"
all_items = []
page_token = None
try: try:
events = ( while True:
service.events() kwargs = dict(
.list(
calendarId="primary", calendarId="primary",
singleEvents=True, singleEvents=True,
maxResults=1000, maxResults=250, # max allowed per page by the API
orderBy="startTime", orderBy="startTime",
timeMin=min_time, timeMin=min_time,
timeMax="2100-01-01T00:00:00-00:00", timeMax="2100-01-01T00:00:00-00:00",
privateExtendedProperty="blechreizEvent=true", privateExtendedProperty="blechreizEvent=true",
) )
.execute() if page_token:
) kwargs["pageToken"] = page_token
return events.get("items", [])
response = service.events().list(**kwargs).execute()
all_items.extend(response.get("items", []))
page_token = response.get("nextPageToken")
if not page_token:
break
logger.info(f"Fetched {len(all_items)} GCal events (all pages)")
return all_items
except Exception as e: except Exception as e:
logger.error(f"Failed to retrieve GCal events: {e}") logger.error(f"Failed to retrieve GCal events: {e}")
return [] return []