Получение списка встреч из EWS на Python

from exchangelib import Credentials, Account, Configuration, DELEGATE, EWSDateTime, EWSTimeZone
from exchangelib.protocol import BaseProtocol, NoVerifyHTTPAdapter
 
from datetime import datetime, timedelta
 
BaseProtocol.HTTP_ADAPTER_CLS = NoVerifyHTTPAdapter
 
credentials = Credentials(username="name@company.ru", password="pas$")
config = Configuration(server="mail.company.ru", credentials=credentials, auth_type='NTLM')
account = Account('name@company.ru', config=config, autodiscover=False, access_type=DELEGATE)
 
tz = account.default_timezone
 
# Определяем границы "сегодня"
now = datetime.now()
start = EWSDateTime(now.year, now.month, now.day, 0, 0, 0, tzinfo=tz)
end = start + timedelta(days=1)
 
print(f"Встречи за {start.date()}:\n")
 
# Фильтруем календарь по диапазону времени
items = account.calendar.filter(start__lt=end, end__gt=start).order_by('start')
 
for item in items:
    print(f"📅 {item.subject}")
    print(f"🕒 {item.start.astimezone(tz)}{item.end.astimezone(tz)}")
    print(f"📍 Место: {item.location or '—'}")
    print("👥 Участники:")
    for attendee in (item.required_attendees or []):
        print(f"   - {attendee.mailbox.name} <{attendee.mailbox.email_address}>")
    if item.optional_attendees:
        print("   (необязательные):")
        for attendee in item.optional_attendees:
            print(f"   - {attendee.mailbox.name} <{attendee.mailbox.email_address}>")
    print(f"✍️ Организатор: {item.organizer.email_address if item.organizer else '—'}")
    print(f"📄 Тело: {(item.text_body or '')[:200]}{'...' if item.text_body and len(item.text_body) > 200 else ''}")
    print("-" * 70)