ICS custom component to read online stored calendars

For “contains” and “startswith”, is there an option to search for multiple terms?

Sorry but no

Sorry for not noticing that - too busy at work and thus for this Mega-Delay:

I just made a sensor… not very beautiful, but it does the job:

- platform: template
  sensors:
    gcoll_next_date:
      icon_template: mdi:truck  
      friendly_name_template: >
            {% set r1 = state_attr('sensor.ics_1', 'remaining') %}
            {% set n1 = state_attr('sensor.ics_1', 'friendly_name') %}
            {% set r2 = state_attr('sensor.ics_2', 'remaining') %}
            {% set n2 = state_attr('sensor.ics_2', 'friendly_name') %}
            {% set r3 = state_attr('sensor.ics_3', 'remaining') %}
            {% set n3 = state_attr('sensor.ics_3', 'friendly_name') %}
            {% set r4 = state_attr('sensor.ics_4', 'remaining') %}
            {% set n4 = state_attr('sensor.ics_4', 'friendly_name') %}
            {% set min = (r1, r2, r3, r4) | min %}
            {% set remainings = (r1, r2, r3, r4) %}
            {% set types = (n1, n2, n3, n4) %}

            {%- for r in remainings -%}
              {%- if (r == min) -%}
                {{ types[loop.index0]}}
                {%- if not loop.last %}/ {% endif -%}
              {% endif -%}
            {% endfor %}
      value_template: >-
          {% set r1 = state_attr('sensor.ics_1', 'remaining') %}
          {% set n1 = state_attr('sensor.ics_1', 'friendly_name') %}
          {% set r2 = state_attr('sensor.ics_2', 'remaining') %}
          {% set n2 = state_attr('sensor.ics_2', 'friendly_name') %}
          {% set r3 = state_attr('sensor.ics_3', 'remaining') %}
          {% set n3 = state_attr('sensor.ics_3', 'friendly_name') %}
          {% set r4 = state_attr('sensor.ics_4', 'remaining') %}
          {% set n4 = state_attr('sensor.ics_4', 'friendly_name') %}
          {% set min = (r1, r2, r3, r4) | min %}

          {% if min == 0 %} Heute {% endif %}
          {% if min == 1 %} Morgen {% endif %}
          {%- if min > 1 %} in {{min}} Tagen {% endif -%}
          

      attribute_templates:
        type: >-
          {% set r1 = state_attr('sensor.ics_1', 'remaining') %}
          {% set n1 = state_attr('sensor.ics_1', 'friendly_name') %}
          {% set r2 = state_attr('sensor.ics_2', 'remaining') %}
          {% set n2 = state_attr('sensor.ics_2', 'friendly_name') %}
          {% set r3 = state_attr('sensor.ics_3', 'remaining') %}
          {% set n3 = state_attr('sensor.ics_3', 'friendly_name') %}
          {% set r4 = state_attr('sensor.ics_4', 'remaining') %}
          {% set n4 = state_attr('sensor.ics_4', 'friendly_name') %}
          {% set min = (r1, r2, r3, r4) | min %}
          {% set remainings = (r1, r2, r3, r4) %}
          {% set types = (n1, n2, n3, n4) %}

          {% for r in remainings %}
            {% if (r == min) %}
              {{ types[loop.index0]}}
              {%- if not loop.last %}/ {% endif -%}
            {% endif -%}
          {% endfor %}
        days: >-
          {% set r1 = state_attr('sensor.ics_1', 'remaining') %}
          {% set r2 = state_attr('sensor.ics_2', 'remaining') %}
          {% set r3 = state_attr('sensor.ics_3', 'remaining') %}
          {% set r4 = state_attr('sensor.ics_4', 'remaining') %}
          {% set min = (r1, r2, r3, r4) | min %}

          {{min}}

Hope it helps…

3 Likes

Hi There
could anybode let me know how to integrate a local stored calender into ICS. It’s stored on my SDD (use HA on a PI4), so how to address the local folder? I have tried several options as described, but no success. Even not with the external link stored/showed in the description. Thank you for any help.
On an external link I get: “The downloaded file can not be parsed, not a valid ICS file.”
Any help??

JJ

Thank you for the Template. I modified a little the friendly_name_template and replaced the for loop (to be able to remove the last slash):

{%- set types_joined -%}
  {%- set pipe = joiner(' / ') -%}
  {%- for r in remainings if (r == min) -%}
    {{ pipe() }}{{ types[loop.index0] }}
  {%- endfor -%}
{%- endset -%}
{{ types_joined }}

(inspired by home-assistant/core#Missing jinja extension: Expression statement)

will be this integration updated or can i remove it in future core updates?

Hopefully it’s gonna be fixed, I use it every day!

No worries

1 Like