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 appelEvents: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 appelEvents: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é sitype
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
etend
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
, unsummary
et unreminders
. - Peut contenir
birthdayProperties
. Sitype
est spécifié, il doit être défini sur'birthday'
, etcustomTypeName
etcontact
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
- Créez un script en accédant à script.google.com/create.
- Dans le panneau de gauche, à côté de Services, cliquez sur Ajouter un service .
- Sélectionnez API Google Agenda, puis cliquez sur Ajouter.
- 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
.
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
- Au-dessus de l'éditeur de code, sélectionnez la fonction à exécuter dans le menu déroulant, puis cliquez sur Exécuter.
- Lors de la première exécution, vous êtes invité à autoriser l'accès. Examinez et autorisez Apps Script à accéder à votre agenda.
- 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.