async def async_get_events(self, hass, start_date, end_date): """Get all events in a specific time frame.""" event = copy.copy(self.event) event['title'] = event['summary'] event['start'] = get_date(event['start']).isoformat() event['end'] = get_date(event['end']).isoformat() return [event]
async def async_get_events(self, hass, start_date, end_date): """Get all events in a specific time frame.""" # Get event list from the current calendar vevent_list = await hass.async_add_job(self.calendar.date_search, start_date, end_date) event_list = [] for event in vevent_list: vevent = event.instance.vevent uid = None if hasattr(vevent, "uid"): uid = vevent.uid.value data = { "uid": uid, "title": vevent.summary.value, "start": self.get_hass_date(vevent.dtstart.value), "end": self.get_hass_date(self.get_end_date(vevent)), "location": self.get_attr_value(vevent, "location"), "description": self.get_attr_value(vevent, "description"), } data["start"] = get_date(data["start"]).isoformat() data["end"] = get_date(data["end"]).isoformat() event_list.append(data) return event_list
async def async_get_events(self, hass, start_date, end_date): """Get all events in a specific time frame.""" # Get event list from the current calendar vevent_list = await hass.async_add_job(self.calendar.date_search, start_date, end_date) event_list = [] for event in vevent_list: vevent = event.instance.vevent uid = None if hasattr(vevent, 'uid'): uid = vevent.uid.value data = { "uid": uid, "title": vevent.summary.value, "start": self.get_hass_date(vevent.dtstart.value), "end": self.get_hass_date(self.get_end_date(vevent)), "location": self.get_attr_value(vevent, "location"), "description": self.get_attr_value(vevent, "description"), } data['start'] = get_date(data['start']).isoformat() data['end'] = get_date(data['end']).isoformat() event_list.append(data) return event_list
async def async_get_events(self, hass, start_date, end_date): """Get all events in a specific time frame.""" # Get event list from the current calendar vevent_list = await hass.async_add_executor_job( self.calendar.date_search, start_date, end_date ) event_list = [] for event in vevent_list: if not hasattr(event.instance, "vevent"): _LOGGER.warning("Skipped event with missing 'vevent' property") continue vevent = event.instance.vevent if not self.is_matching(vevent, self.search): continue uid = None if hasattr(vevent, "uid"): uid = vevent.uid.value data = { "uid": uid, "summary": vevent.summary.value, "start": self.get_hass_date(vevent.dtstart.value), "end": self.get_hass_date(self.get_end_date(vevent)), "location": self.get_attr_value(vevent, "location"), "description": self.get_attr_value(vevent, "description"), } data["start"] = get_date(data["start"]).isoformat() data["end"] = get_date(data["end"]).isoformat() event_list.append(data) return event_list
async def async_get_events(self, hass, start_date, end_date): """Get all events in a specific time frame.""" event = copy.copy(self.event) event["title"] = event["summary"] event["start"] = get_date(event["start"]).isoformat() event["end"] = get_date(event["end"]).isoformat() return [event]
async def async_get_events( self, hass: HomeAssistant, start_date: datetime.datetime, end_date: datetime.datetime, ) -> list[dict[str, Any]]: """Get all events in a specific time frame.""" event = copy.copy(self.event) event["title"] = event["summary"] event["start"] = get_date(event["start"]).isoformat() event["end"] = get_date(event["end"]).isoformat() return [event]
def update(self): """Update event data.""" self.data.update() event = copy.deepcopy(self.data.event) if event is None: self._event = event return (summary, offset) = extract_offset(event["summary"], OFFSET) event["summary"] = summary self._event = event self._attr_extra_state_attributes = { "offset_reached": is_offset_reached(get_date(event["start"]), offset) }
async def async_update(self) -> None: """Get the latest data.""" try: items, _ = await self._calendar_service.async_list_events( self._calendar_id, search=self._search) except ServerNotFoundError as err: _LOGGER.error("Unable to connect to Google: %s", err) return # Pick the first visible event and apply offset calculations. valid_items = filter(self._event_filter, items) self._event = copy.deepcopy(next(valid_items, None)) if self._event: (summary, offset) = extract_offset(self._event["summary"], self._offset) self._event["summary"] = summary self._offset_reached = is_offset_reached( get_date(self._event["start"]), offset)
def offset_reached(self) -> bool: """Return whether or not the event offset was reached.""" if self._event and self._offset_value: return is_offset_reached(get_date(self._event["start"]), self._offset_value) return False