from dataclasses import dataclass from datetime import datetime from typing import Optional from ...exceptions import HomeAssistantError @dataclass class CalendarEvent: start: datetime end: datetime summary: str description: Optional[str] = None uid: Optional[str] = None def __post_init__(self): if self.start.tzinfo is None or self.end.tzinfo is None: raise HomeAssistantError("Expected all values to have a timezone") if self.end <= self.start: raise HomeAssistantError("Expected end time to be after start time") class CalendarEntity: pass