Python afficher un évènement venant d'un calendrier google

Bonjour,

Je cherche à afficher un évènement venant de mon calendrier google. J'arrive à afficher tous les évènements de la journée mais je voudrais afficher seulement l'évènement actuel.
voici mon code pour cette partie:

for event in events['items']:
if now in (event['start'].get('dateTime', False) and event['end'].get('dateTime', False)):
print(event['summary'])

Voici mon erreur:
TypeError: 'in <string>' requires string as left operand, not datetime.datetime

Je la comprends mais j'arrive pas à la corriger.

Merci par avance

Configuration: Windows / Edge 89.0.774.45

3 réponses

  1. Contributeur Ambassadeur
    bonjour,
    quand tu écris ceci:
    if now in (event['start'].get('dateTime', False) and event['end'].get('dateTime', False)):

    essaies-tu de tester si maintenant est après le début et avant la fin de l'évènement?
    je pense que tu n'as pas compris à quoi servait
    in
    en python.
    0
    1. J'essaye d'afficher l'évènement qui se déroule en ce moment. Pour cela je veux l'afficher s'il se trouve dans la tranche horaire entre le dateTime du début et le dateTime de la fin de mon event.
      Je pense en effet que j'utilise mal le "in". J'ai également tenter de mettre des "<=" et ">=" mais cela ne fonctionne pas non plus.
      0
      1. Contributeur Ambassadeur
        montre-nous ce que tu as essayé avec des "<=" et ">=".
        je pense que c'est la bonne piste.
        0
      2. @yg_befor event in events['items']:
        if now <= (event['end'].get('dateTime', False)) and now >= (event['start'].get('dateTime', False)) :
        print(event['summary'])

        Voila mon code avec, mais j'ai aussi une erreur:
        TypeError: '<=' not supported between instances of 'datetime.datetime' and 'str'
        0
      3. Contributeur Ambassadeur
        @pythonhelpLe message te prévient que
        (event['end'].get('dateTime', False))
        est une chaine de caractères, et que tu ne peux pas la comparer à un élément de type
        datetime.datetime
        .
        0
    2. TypeError: 'in <string>' requires string as left operand, not datetime.datetime

      in <chaine> nécessite une chaine comme opérande à gauche pas un objet datetime
      0