Example #1
0
 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]
Example #2
0
 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]
Example #3
0
    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
Example #4
0
    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
Example #5
0
    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
Example #6
0
 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]
Example #7
0
 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]
Example #8
0
 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)
     }
Example #9
0
    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)
Example #10
0
 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