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 Calendar.

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 peut être découvert 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. S'il n'est pas défini, 'default' type sera 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 sont renvoyés.
  • eventTypes peut être spécifié dans un Events:watch appel pour s'abonner aux mises à jour des événements de types spécifiques. Si aucun type n'est spécifié, la requête entraîne 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 d'anniversaire dans Google Agenda. De plus, les informations sur les anniversaires sont synchronisées avec Google Agenda lorsque les utilisateurs ajoutent une personne et incluent sa date d'anniversaire et d'autres dates importantes dans Google Contacts. L'anniversaire des utilisateurs est également synchronisé 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 ne lister que les événements d'anniversaire. Si aucun type n'est spécifié, les anniversaires sont listés avec tous les autres types d'événements.

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

  • type: type de cet événement spécial (anniversaire, anniversaire de mariage ou autre date importante).
  • 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. Ce champ est au format 'people/c12345' et peut être utilisé pour récupérer les coordonnées du contact à partir de l'API People.

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

  • eventType est défini sur 'birthday'.
  • start et end champs doivent définir un événement qui dure toute la journée et s'étend sur exactement une journée.
  • visibility valeur du champ doit être 'private'.
  • transparency La valeur du champ doit être 'transparent'.
  • Doit avoir une récurrence annuelle, ce qui signifie que le recurrence champ doit être 'RRULE:FREQ=YEARLY'. Les événements d'anniversaire qui ont lieu le 29 février doivent avoir la règle de récurrence suivante : 'RRULE:FREQ=YEARLY;BYMONTH=2;BYMONTHDAY=-1'.
  • Peut avoir un colorId, summary et reminders.
  • Peut avoir birthdayProperties. Si ce champ est spécifié, type doit être 'birthday', et customTypeName et contact doivent être vides.
  • Ne peut pas avoir 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. start et end champs 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 qui dure toute la journée et s'étend sur exactement une journée. Les détails de l'heure d'un événement d'anniversaire ne peuvent pas être mis à jour si l'événement est associé à un contact, ou si son type est 'self'.

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

Les requêtes qui tentent de créer ou de mettre à jour un anniversaire de manière non compatible échouent. Dans ce cas, inspectez le message d'erreur pour identifier le problème.

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

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

Les événements d'anniversaire peuvent être supprimés à l'aide de la delete méthode de l' API Google Calendar. La suppression d'un événement d'anniversaire de Google Agenda n'affecte pas les données de Google Contacts ni leprofil de compte Google.

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

É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 Calendar ne permet pas de créer ce type d'événement à l'aide de la insert méthode.

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 ajoutés à partir de Gmail. eventTypes peut être défini sur 'fromGmail' pour ne lister 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 sont listés avec tous les autres types d'événements.

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

Les événements ajoutés à partir de Gmail peuvent être supprimés à l'aide de la delete méthode de l' API Google Calendar.

Il n'est pas possible de modifier l'organisateur d'un événement ajouté à partir de 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 de Google Agenda.

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 de moments de concentration, d'absences du bureau et de 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 Démarrage rapide de Google Apps Script pour commencer à utiliser Apps Script afin d'envoyer des requêtes à l'API Google Calendar.

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 Calendar, 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 volet de gauche, à côté de Services, cliquez sur Ajouter un service .
  3. Sélectionnez API Google Calendar , puis cliquez sur Ajouter.
  4. Une fois l'API activée, elle s'affiche 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 dans lequel 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é. La modification de cette valeur vous permet de lire les événements dans les agendas d'autres utilisateurs auxquels vous avez accès.
    • EVENT_ID : ID de l'événement. Vous pouvez appeler les 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 en bas de la fenêtre.