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.
These are all events that have been created by this script.
Handles pagination so all events are returned regardless of count.
"""
if from_now:
now = datetime.datetime.now()
@@ -237,21 +238,32 @@ def get_all_gcal_events(service, from_now=False):
else:
min_time = "2000-01-01T00:00:00-00:00"
all_items = []
page_token = None
try:
events = (
service.events()
.list(
while True:
kwargs = dict(
calendarId="primary",
singleEvents=True,
maxResults=1000,
maxResults=250, # max allowed per page by the API
orderBy="startTime",
timeMin=min_time,
timeMax="2100-01-01T00:00:00-00:00",
privateExtendedProperty="blechreizEvent=true",
)
.execute()
)
return events.get("items", [])
if page_token:
kwargs["pageToken"] = page_token
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:
logger.error(f"Failed to retrieve GCal events: {e}")
return []