Types d'événement

Cette page explique la propriété eventType et les spécifications des types d'événements disponibles dans l'API Google Agenda.

Google Agenda permet aux utilisateurs de créer des événements génériques, ainsi que des événements conçus pour des cas d'utilisation spécifiques et avec des propriétés personnalisées.

Le type d'événement est indiqué aux emplacements suivants dans l'API :

  • Tous les événements sont renvoyés avec un eventType.
  • eventType doit être défini lors de la création ou de la mise à jour d'une ressource d'événement. Si ce paramètre n'est pas défini, le type 'default' est utilisé.
  • eventTypes peut être spécifié dans un appel Events:list pour lister les événements de types spécifiques. Si aucun type n'est spécifié, tous les types d'événements seront renvoyés.
  • eventTypes peut être spécifié dans un appel Events:watch pour s'abonner aux mises à jour sur les événements de types spécifiques. Si aucun type n'est spécifié, la requête entraînera l'abonnement à tous les types d'événements.

Événement par défaut

Les événements de type default sont créés et utilisés comme l'une des principales ressources de l'API Google Calendar. Ils sont compatibles avec un large éventail de propriétés qui peuvent être utilisées pour personnaliser davantage l'événement.

Consultez Créer des événements pour commencer à utiliser les événements Google Agenda.

Anniversaire

Les anniversaires sont des événements spéciaux qui durent toute la journée et se répètent chaque année.

Les utilisateurs peuvent créer manuellement des événements de type anniversaire dans Google Agenda. De plus, les informations sur les anniversaires sont synchronisées avec Google Agenda lorsque les utilisateurs ajoutent une personne et indiquent son anniversaire et d'autres dates importantes dans Google Contacts. La date de naissance des utilisateurs est également synchronisée avec Google Agenda à partir de leur profil de compte Google.

L'API Google Calendar est compatible avec les méthodes get, instances et list pour lire les événements d'anniversaire. eventTypes peut être défini sur 'birthday' pour n'afficher que les événements d'anniversaire. Si aucun type n'est spécifié, les anniversaires seront listés avec tous les autres types d'événements.

Dans les objets Event renvoyés, examinez le champ birthdayProperties pour en savoir plus sur cet événement spécial. birthdayProperties comporte les champs suivants :

  • type : type de cet événement spécial (anniversaire, fête, etc.).
  • customTypeName : libellé spécifié par l'utilisateur pour cet événement spécial. Ce champ est renseigné si type est défini sur 'custom'.
  • contact : nom de ressource du contact auquel cet événement spécial est associé, le cas échéant. Il est au format 'people/c12345' et peut être utilisé pour récupérer les coordonnées à partir de l'API People.

L'API permet de créer des événements d'anniversaire à l'aide de la méthode insert avec les spécifications suivantes :

  • eventType est défini sur 'birthday'.
  • Les champs start et end doivent définir un événement d'une journée entière qui s'étend sur exactement un jour.
  • La valeur du champ visibility doit être 'private'.
  • La valeur du champ transparency doit être 'transparent'.
  • La récurrence doit être annuelle, ce qui signifie que le champ recurrence doit être défini sur 'RRULE:FREQ=YEARLY'. Les événements d'anniversaire qui ont lieu le 29 février doivent respecter la règle de récurrence suivante : 'RRULE:FREQ=YEARLY;BYMONTH=2;BYMONTHDAY=-1'.
  • Peut avoir un colorId, un summary et un reminders.
  • Peut contenir birthdayProperties. Si type est spécifié, il doit être défini sur 'birthday', et customTypeName et contact doivent être vides.
  • Ne doit pas comporter d'autres propriétés d'événement.

L'API permet de mettre à jour les colorId, summary et reminders des événements d'anniversaire à l'aide des méthodes update et patch. Les champs start et end peuvent également être mis à jour pour modifier la date de l'événement. Dans ce cas, les nouvelles valeurs doivent définir un événement d'une journée qui s'étend exactement sur une journée. Vous ne pouvez pas modifier les détails de l'heure d'un événement de type anniversaire si l'événement est associé à un contact ou si son type est défini sur 'self'.

L'API Google Agenda ne permet pas de créer des événements d'anniversaire avec des birthdayProperties personnalisés ni de mettre à jour ces propriétés. Vous pouvez modifier les dates importantes avec l'API People. Les modifications sont synchronisées avec Google Agenda. De même, les utilisateurs peuvent modifier leur date de naissance dans leur profil de compte Google, et elle se synchronise avec Google Agenda.

Les requêtes qui tentent de créer ou de modifier une date de naissance de manière non acceptée échoueront. Dans ce cas, examinez le message d'erreur pour identifier le problème.

L'API est compatible avec l'opération import pour les événements d'anniversaire. Toutefois, l'événement sera importé en tant qu'événement par défaut. En d'autres termes, eventType sera égal à 'default'.

L'API est compatible avec la méthode watch pour s'abonner aux modifications apportées aux événements d'anniversaire dans Google Agenda. eventTypes peut être défini sur 'birthday' pour s'abonner aux informations sur les événements d'anniversaire. Si aucun type n'est spécifié, tous les types d'événements, y compris les anniversaires, sont inclus dans l'abonnement.

Vous pouvez supprimer les événements d'anniversaire à l'aide de la méthode delete de l'API Google Calendar. La suppression d'un événement d'anniversaire dans Google Agenda n'a aucune incidence sur les données de Google Contacts ni sur le profil de votre compte Google.

Il n'est pas possible de modifier l'organisateur d'un événement de type anniversaire à l'aide des méthodes move ou update.

Événements ajoutés à partir de Gmail

Les événements générés automatiquement à partir de Gmail ont le type d'événement 'fromGmail'.

L'API Google Agenda ne permet pas de créer ce type d'événement à l'aide de la méthode insert.

L'API permet de mettre à jour les propriétés étendues colorId, reminders, visibility, transparency, status, attendees, private et shared à l'aide des méthodes update et patch.

L'API est compatible avec les méthodes get et list pour lire les événements de Gmail. eventTypes peut être défini sur 'fromGmail' pour n'afficher que les événements générés à partir de Gmail. Si aucun type n'est spécifié, les événements ajoutés à partir de Gmail seront listés avec tous les autres types d'événements.

L'API est compatible avec la méthode watch pour s'abonner aux modifications apportées aux événements Gmail dans Google Agenda. Si aucun type n'est spécifié, tous les types d'événements, y compris 'fromGmail', seront abonnés.

Vous pouvez supprimer les événements ajoutés à partir de Gmail à l'aide de la méthode delete de l'API Google Agenda.

Il n'est pas possible de modifier l'organisateur d'un événement depuis Gmail à l'aide des méthodes move ou update.

Moments de concentration, absences du bureau et lieu de travail

L'API Google Calendar peut être utilisée pour créer et gérer des événements qui indiquent l'état des utilisateurs Google Calendar.

Ces fonctionnalités ne sont disponibles que dans les agendas principaux et pour certains utilisateurs de Google Agenda. Pour en savoir plus, consultez Gérer les événements "Temps de travail", "Absence du bureau" et "Lieu de travail".

Explorer les types d'événements dans Google Apps Script

Google Apps Script est un langage de script cloud basé sur JavaScript qui vous permet de créer des applications professionnelles intégrables à Google Workspace. Les scripts sont développés dans un éditeur de code basé sur un navigateur, et ils sont stockés et exécutés sur les serveurs de Google. Consultez également le démarrage rapide de Google Apps Script pour commencer à utiliser Apps Script afin d'envoyer des requêtes à l'API Google Agenda.

Les instructions suivantes décrivent comment lire et gérer des événements à l'aide de l'API Google Calendar en tant que service avancé dans Google Apps Script. Pour obtenir la liste complète des ressources et des méthodes de l'API Google Agenda, consultez la documentation de référence.

Créer et configurer le script

  1. Créez un script en accédant à script.google.com/create.
  2. Dans le panneau de gauche, à côté de Services, cliquez sur Ajouter un service  .
  3. Sélectionnez API Google Agenda, puis cliquez sur Ajouter.
  4. Une fois l'API activée, elle apparaît dans le volet de gauche. Les méthodes et classes disponibles dans l'API peuvent être listées à l'aide du mot clé Calendar dans l'éditeur.

(Facultatif) Mettre à jour le projet Google Cloud

Chaque projet Google Apps Script est associé à un projet Google Cloud. Votre script peut utiliser le projet par défaut que Google Apps Script crée automatiquement. Si vous souhaitez utiliser un projet Google Cloud personnalisé, consultez Passer à un autre projet Cloud standard. Après avoir défini le projet Google Cloud, sélectionnez Éditeur sur la gauche pour revenir à l'éditeur de code.

Ajouter du code au script

L'exemple de code suivant montre comment lister, lire et créer des événements avec différentes valeurs eventType.

  1. Collez le code suivant dans l'éditeur de code.

    const CALENDAR_ID = 'CALENDAR_ID' || 'primary';
    
    /** Lists default events. */
    function listDefaultEvents() {
      listEvents('default');
    }
    
    /** Lists birthday events. */
    function listBirthdays() {
      listEvents('birthday');
    }
    
    /** Lists events from Gmail. */
    function listEventsFromGmail() {
      listEvents('fromGmail');
    }
    
    /**
      * Lists events with the given event type. If no type is specified, lists all events.
      * See https://developers.google.com/workspace/calendar/api/v3/reference/events/list
      */
    function listEvents(eventType = undefined) {
      // Query parameters for the list request.
      const optionalArgs = {
        eventTypes: eventType ? [eventType] : undefined,
        singleEvents: true,
        timeMax: '2024-07-30T00:00:00+01:00',
        timeMin: '2024-07-29T00:00:00+01:00',
      }
      try {
        var response = Calendar.Events.list(CALENDAR_ID, optionalArgs);
        response.items.forEach(event => console.log(event));
      } catch (exception) {
        console.log(exception.message);
      }
    }
    
    /**
      * Reads the event with the given eventId.
      * See https://developers.google.com/workspace/calendar/api/v3/reference/events/get
      */
    function readEvent() {
      try {
        var response = Calendar.Events.get(CALENDAR_ID, 'EVENT_ID');
        console.log(response);
      } catch (exception) {
        console.log(exception.message);
      }
    }
    
    /** Creates a default event. */
    function createDefaultEvent() {
      const event = {
        start: { dateTime: '2024-07-30T10:30:00+01:00'},
        end: { dateTime: '2024-07-30T12:30:00+01:00'},
        description: 'Created from Apps Script.',
        eventType: 'default',
        summary: 'Sample event',
      }
      createEvent(event);
    }
    
    /** Creates a birthday event. */
    function createBirthday() {
      const event = {
        start: { date: '2024-01-29' },
        end: { date: '2024-01-30' },
        eventType: 'birthday',
        recurrence: ["RRULE:FREQ=YEARLY"],
        summary: "My friend's birthday",
        transparency: "transparent",
        visibility: "private",
      }
      createEvent(event);
    }
    
    /**
      * Creates a Calendar event.
      * See https://developers.google.com/workspace/calendar/api/v3/reference/events/insert
      */
    function createEvent(event) {
    
      try {
        var response = Calendar.Events.insert(event, CALENDAR_ID);
        console.log(response);
      } catch (exception) {
        console.log(exception.message);
      }
    }
    

    Remplacez les éléments suivants :

    • CALENDAR_ID : adresse e-mail de l'agenda pour récupérer et créer des événements. Cette constante est initialement définie sur 'primary', qui est un mot clé permettant d'accéder à l'agenda principal de l'utilisateur connecté. Modifier cette valeur vous permet de lire les événements dans les agendas des autres utilisateurs auxquels vous avez accès.
    • EVENT_ID : ID de l'événement. Vous pouvez appeler Events:list pour récupérer les ID d'événement.

Exécuter l'exemple de code

  1. Au-dessus de l'éditeur de code, sélectionnez la fonction à exécuter dans le menu déroulant, puis cliquez sur Exécuter.
  2. Lors de la première exécution, vous êtes invité à autoriser l'accès. Examinez et autorisez Apps Script à accéder à votre agenda.
  3. Vous pouvez inspecter les résultats de l'exécution du script dans le journal d'exécution qui s'affiche au bas de la fenêtre.