Tribalbyte

Organiser le quotidien / Logigramme fonctionnel

Calendrier ICS — extraction sur une période

Lire un calendrier exporté et obtenir une liste structurée des événements qui chevauchent une période.

Cadre
Projet personnel / exploration professionnelle
État
Script présent — couverture à valider
Outils
PowerShell · Fichiers iCalendar ICS · Conversion de fuseaux · Données structurées

Le besoin

Lire un calendrier exporté et obtenir une liste structurée des événements qui chevauchent une période.

L’analyse

Le format de calendrier peut répartir une propriété sur plusieurs lignes, échapper des caractères et encoder des dates locales, UTC ou des journées entières. Le script normalise ces variantes avant de sélectionner les événements.

Le filtre retient les événements qui chevauchent l'intervalle demandé, même s'ils commencent avant celui-ci. Les récurrences sont une limite explicite : la règle de répétition est restituée comme information, mais aucune occurrence future n'est calculée.

Le processus documenté

Du besoin au résultat

Logigramme fonctionnel
Parcours fonctionnel de Calendrier ICS — extraction sur une périodeChoisir calendrier et période puis Déplier les propriétés multilignes puis Lire les blocs événement puis Normaliser les dates et textes puis Vérifier le chevauchement de période puis Restituer la liste chronologique. Point de contrôle : Événement dans la période ?. Exclure l'événement de cet extrait01 Choisir calendrier et période02 Déplier les propriétés multilignes03 Lire les blocs événement04 Normaliser les dates et textes05 Vérifier le chevauchement de périodeÉvénement dans la période ?À traiterExclure l'événement de cetextraitSuite du parcours06 Restituer la liste chronologique
Vue fonctionnelle du parcours. Le bloc latéral rend explicite le cas nécessitant un contrôle ou une intervention.

Règles de gestion

Ce que l’outil doit respecter.

  1. RG-01Une ligne commençant par un espace ou une tabulation complète la propriété précédente.
  2. RG-02La borne de fin demandée inclut toute sa journée.
  3. RG-03Les événements sont sélectionnés s'ils commencent avant la fin et finissent après le début de l'intervalle.
  4. RG-04Les dates UTC et les fuseaux connus sont convertis vers l'heure locale de la machine.
  5. RG-05La fin d'une journée entière est traitée comme exclusive.
  6. RG-06Les règles de récurrence sont restituées sans génération de leurs occurrences.

Ce que ce projet démontre.

Définir la sélection par chevauchement et les bornes inclusives.

Traiter séparément journée entière, UTC et fuseau déclaré.

Délimiter la couverture et le besoin éventuel de calcul des récurrences.

Le niveau de réalisation ci-dessous distingue les fonctions présentes des vérifications qui restent à mener.

État au 13 octobre 2026

Une réalisation, un périmètre précis.

Ce qui est réalisé

Lecture et dépliage ICS

Conversion des dates et déséchappement des textes

Filtrage par chevauchement et sortie structurée triée

Ce qui a été vérifié

L'intégralité du script a été lue. Aucun historique de tests ni recette fonctionnelle n'a été retrouvé. Aucun calendrier personnel n'a été ouvert.

Limites actuelles

Les événements récurrents ne sont pas développés en occurrences.

Un fuseau inconnu conserve l'heure initiale sans conversion.

Les journées entières sans fin explicite nécessitent une recette particulière.

Prochaine étape

Valider les bornes, fuseaux et journées entières sur un calendrier fictif ; décider ensuite du besoin de développer les récurrences.

Exemples de critères de recette

Ces critères décrivent le résultat attendu. Ils ne constituent pas, à eux seuls, des tests réussis.

  1. Un événement débutant avant la période mais se terminant dedans est inclus ; un événement entièrement extérieur est exclu.
  2. Une journée entière ne déborde pas sur sa borne de fin exclusive ; une propriété repliée restitue son texte complet.

Parlons de votre projet

Un besoin concret.
Une première discussion.

Un processus trop manuel, une donnée peu fiable ou une idée à tester ? Commençons par clarifier ce qui vous serait vraiment utile.

Échanger avec Loïc