[32788f42] Fix Calendly pagination missing events bug

This commit is contained in:
2026-03-21 14:02:25 +00:00
parent d4b20eb113
commit 106cfe6e33

View File

@@ -51,11 +51,11 @@ def get_calendly_events_raw(api_token: str, start_time: str = None, end_time: st
'Content-Type': 'application/json'
}
# Defaults: now to +180 days
# Defaults: 2024 to +2 years (broad range to ensure we capture all relevant upcoming)
if not start_time:
start_time = datetime.datetime.utcnow().isoformat() + "Z"
start_time = "2024-01-01T00:00:00Z"
if not end_time:
end_time = (datetime.datetime.utcnow() + datetime.timedelta(days=180)).isoformat() + "Z"
end_time = (datetime.datetime.utcnow() + datetime.timedelta(days=730)).isoformat() + "Z"
# 1. Get current user info to get the user URI
user_url = "https://api.calendly.com/users/me"
@@ -70,22 +70,34 @@ def get_calendly_events_raw(api_token: str, start_time: str = None, end_time: st
events_url = "https://api.calendly.com/scheduled_events"
params = {
'user': user_uri,
'status': 'active',
'min_start_time': start_time,
'max_start_time': end_time,
'status': 'active'
'count': 100
}
events_response = requests.get(events_url, headers=headers, params=params)
if not events_response.ok:
raise Exception(f"Calendly API Error: {events_response.status_code}")
all_events = []
url = events_url
while url:
response = requests.get(url, headers=headers, params=params)
if not response.ok:
raise Exception(f"Calendly API Error: {response.status_code}")
data = response.json()
all_events.extend(data.get('collection', []))
events_data = events_response.json()
events = events_data['collection']
pagination = data.get('pagination', {})
next_page_token = pagination.get('next_page_token')
if next_page_token:
params = {'user': user_uri, 'count': 100, 'page_token': next_page_token, 'status': 'active'}
else:
url = None
raw_results = []
# 3. Get invitees
for event in events:
for event in all_events:
event_name = event.get('name', '')
# Filter by event type if provided
if event_type_name and event_type_name.lower() not in event_name.lower():