Comme j’ai cherché pas mal sans trouver et que j’ai passé beaucoup de temps à coder cela, étant vraiment novice, je vous partage mon YAML qui envoi sur mon Discord à 7h00 le matin, tous les événements de la journée, dans plusieurs calendriers:
alias: Envoi quotidien des événements du calendrier
description: Envoie chaque jour la liste des événements du jour
triggers:
- at: "07:00:00"
trigger: time
actions:
- data:
start_date_time: "{{ now().replace(hour=0, minute=0, second=0).isoformat() }}"
end_date_time: "{{ now().replace(hour=23, minute=59, second=59).isoformat() }}"
response_variable: agenda_du_jour
action: calendar.get_events
target:
entity_id:
- calendar.pero
- calendar.anniversaires
- calendar.fetes_des_prenoms
- calendar.jours_feries_et_autres_fetes_en_france
- calendar.numeros_de_semaine
- calendar.poubelles
- calendar.vacances_scolaires_zone_b
- action: notify.home_assistant
metadata: {}
data:
target:
- "id_du_canal_discord"
message: |-
{% set ns = namespace(text="") %}
{% for cal_id, cal_data in agenda_du_jour.items() %}
{% set events = cal_data.get('events', []) %}
{% if events | length > 0 %}
{% set nom = state_attr(cal_id, 'friendly_name') %}
{% set ns.text = ns.text + "\n📌 " + nom + "\n" %}
{% for event in events %}
{# --- Cas journée entière --- #}
{% if event.start is string and event.start | length == 10 %}
{% set ligne = "- 📅 " + event.summary %}
{# --- Cas événement avec horaire --- #}
{% else %}
{% set debut = as_timestamp(event.start) | timestamp_custom('%H:%M') %}
{% set fin = as_timestamp(event.end) | timestamp_custom('%H:%M') %}
{% set ligne = "- 🕒 " + debut + " → " + fin + " : " + event.summary %}
{% endif %}
{# --- Ajout du lieu si présent --- #}
{% if event.location is defined and event.location %}
{% set ligne = ligne + " 📍 " + event.location %}
{% endif %}
{% set ns.text = ns.text + ligne + "\n" %}
{% endfor %}
{% endif %}
{% endfor %}
{{ ns.text if ns.text != "" else "Aucun événement prévu aujourd’hui 🎉" }}
variables:
events: >
{% set agenda = state_attr('calendar.pero', 'all_day') %} {% set events =
state_attr('calendar.pero', 'message') %} {{ events }}
mode: single
Il n’y a plus qu’à remplacer votre ID de canal Discord et mettre vos calendriers à vous.
J’espère que cela aidera certains d’entre vous.