36 lines
1.2 KiB
Python
36 lines
1.2 KiB
Python
import os
|
|
import yaml
|
|
from caldav import DAVClient
|
|
from ics import Calendar
|
|
from datetime import datetime
|
|
|
|
if __name__ == "__main__":
|
|
with open("config.yaml") as f:
|
|
config = yaml.safe_load(f)
|
|
|
|
url = "http://localhost:8080/"
|
|
|
|
# Diane checks the aggregate 'lennart' calendar
|
|
diane_client = DAVClient(url, username="diane", password="123")
|
|
d_principal = diane_client.principal()
|
|
|
|
print("\n--- Diane viewing Aggregate 'lennart' calendar ---")
|
|
agg_path = "/lennart/calendars/lennart/"
|
|
lennart_agg = next(c for c in d_principal.calendars() if agg_path in c.url.path)
|
|
|
|
events = lennart_agg.events()
|
|
print(f"Events found in aggregate: {len(events)}")
|
|
for e in events:
|
|
print(f" - Path: {e.url.path}")
|
|
if not e.url.path.startswith(agg_path):
|
|
print(f" ERROR: Path {e.url.path} is NOT under the aggregate {agg_path}!")
|
|
|
|
# Test individual GET (GetCalendarObject)
|
|
try:
|
|
data = e.data
|
|
c = Calendar(data)
|
|
for ev in c.events:
|
|
print(f" Fetched: {ev.name} (UID: {ev.uid})")
|
|
except Exception as err:
|
|
print(f" ERROR fetching individual item: {err}")
|