Events: insert

Crée un événement. Essayez maintenant ou voir un exemple

Requête

Requête HTTP

POST https://www.googleapis.com/calendar/v3/calendars/calendarId/events

Paramètres

Nom du paramètre Valeur Description
Paramètres de chemin d'accès
calendarId string Identifiant de l'agenda. Pour récupérer les ID d'agenda, appelez la méthode calendarList.list. Si vous souhaitez accéder à l'agenda principal de l'utilisateur actuellement connecté, utilisez le mot clé "primary".
Paramètres de requête facultatifs
conferenceDataVersion integer Numéro de version des données de conférence compatibles avec le client de l'API. La version 0 ne prend pas en charge les données de conférence et les ignore dans le corps de l'événement. La version 1 permet de copier des données ConferenceData et de créer des conférences à l'aide du champ createRequest de conférenceData. La valeur par défaut est 0. Les valeurs autorisées vont de 0 à 1, inclus.
maxAttendees integer Nombre maximal de participants à inclure dans la réponse. Si le nombre de participants est supérieur au nombre spécifié, seul le participant est renvoyé. Facultatif.
sendNotifications boolean Obsolète. Veuillez plutôt utiliser sendUpdates.

Vous voulez recevoir des notifications concernant la création de l'événement ? Notez que certains e-mails peuvent toujours être envoyés, même si vous définissez la valeur sur false. La valeur par défaut est false.
sendUpdates string Indique si des notifications doivent être envoyées concernant la création du nouvel événement. Notez que certains e-mails peuvent encore être envoyés. La valeur par défaut est false.

Les valeurs acceptées sont les suivantes :
  • "all": les notifications sont envoyées à tous les invités.
  • "externalOnly": les notifications ne sont envoyées qu'aux invités qui n'utilisent pas Google Agenda.
  • "none": aucune notification n'est envoyée.
supportsAttachments boolean Indique si le client API effectuant l'opération accepte les pièces jointes d'événements. Facultatif. La valeur par défaut est "False" (faux).

Autorisation

Une autorisation est requise pour cette demande. Celle-ci doit inclure au moins l'un des champs d'application suivants:

Portée
https://www.googleapis.com/auth/calendar
https://www.googleapis.com/auth/calendar.events

Pour en savoir plus, consultez la page Authentification et autorisation.

Corps de la requête

Dans le corps de la requête, indiquez une ressource "Events" (Événements) avec les propriétés suivantes:

Nom de propriété Valeur Description Remarques
Propriétés requises
end nested object Heure de fin (exclusive) de l'événement. Pour un événement récurrent, il s'agit de l'heure de fin de la première instance.
start nested object Heure de début (inclusive) de l'événement. Pour un événement périodique, il s'agit de l'heure de début de la première occurrence.
Propriétés facultatives
anyoneCanAddSelf boolean Indique si les utilisateurs peuvent s'inviter à l'événement (obsolète). Facultatif. La valeur par défaut est "False" (faux). accessible en écriture
attachments[].fileUrl string Lien URL vers la pièce jointe.

Pour ajouter des pièces jointes Google Drive, utilisez le même format que dans la propriété alternateLink de la ressource Files dans l'API Drive.

Obligatoire lors de l'ajout d'une pièce jointe.

accessible en écriture
attendees[] list Participants à l'événement Pour en savoir plus sur la planification d'événements avec d'autres utilisateurs d'Agenda, consultez le guide Événements avec des participants. Les comptes de service doivent utiliser la délégation d'autorité au niveau du domaine pour renseigner la liste des participants. accessible en écriture
attendees[].additionalGuests integer Nombre d'invités supplémentaires. Facultatif. La valeur par défaut est 0. accessible en écriture
attendees[].comment string Commentaire de la personne interrogée. Facultatif. accessible en écriture
attendees[].displayName string Nom de l'utilisateur, le cas échéant Facultatif. accessible en écriture
attendees[].email string Adresse e-mail du participant, si disponible. Ce champ doit être présent lorsque vous ajoutez un participant. Il doit s'agir d'une adresse e-mail valide, conformément à la norme RFC5322.

Obligatoire lors de l'ajout d'un participant.

accessible en écriture
attendees[].optional boolean Indique s'il s'agit d'un participant facultatif. Facultatif. La valeur par défaut est "False" (faux). accessible en écriture
attendees[].resource boolean Indique si le participant est une ressource. Ne peut être défini que lorsque le participant est ajouté à l'événement pour la première fois. Les modifications ultérieures sont ignorées. Facultatif. La valeur par défaut est "False" (faux). accessible en écriture
attendees[].responseStatus string État de la réponse de l'utilisateur. Les valeurs possibles sont les suivantes:
  • "needsAction" : le participant n'a pas répondu à l'invitation (recommandé pour les nouveaux événements).
  • "declined" : le participant a refusé l'invitation.
  • "tentative" : l'invité a accepté provisoirement l'invitation.
  • "accepted" : l'invité a accepté l'invitation.
accessible en écriture
birthdayProperties nested object Données d'anniversaire ou d'événement spécial Utilisé si eventType est défini sur "birthday". Immuable. accessible en écriture
birthdayProperties.type string Type d'anniversaire ou d'événement spécial. Les valeurs possibles sont les suivantes:
  • "anniversary" : anniversaire autre qu'un anniversaire. Contient toujours un contact.
  • "birthday" : événement d'anniversaire. Il s'agit de la valeur par défaut.
  • "custom" : date spéciale dont le libellé est précisé dans le champ customTypeName. Contient toujours un contact.
  • "other" : date spéciale qui ne correspond à aucune des autres catégories et qui ne possède pas de libellé personnalisé. Contient toujours un contact.
  • "self" : anniversaire du propriétaire de l'agenda. Ne peut pas avoir de contact.
L'API Calendar ne permet de créer que des événements de type "birthday". Une fois l'événement créé, le type ne peut plus être modifié.
accessible en écriture
colorId string Couleur de l'événement. Il s'agit d'un ID faisant référence à une entrée de la section event de la définition des couleurs (voir le point de terminaison des couleurs). Facultatif. accessible en écriture
conferenceData nested object Informations liées à la conférence, telles que les détails d'une conférence Google Meet. Pour créer des informations sur une conférence, utilisez le champ createRequest. Pour que vos modifications soient conservées, n'oubliez pas de définir le paramètre de requête conferenceDataVersion sur 1 pour toutes les requêtes de modification d'événement. accessible en écriture
description string Description de l'événement. Peut contenir du code HTML. Facultatif. accessible en écriture
end.date date Date au format "aaaa-mm-jj", si l'événement dure toute la journée. accessible en écriture
end.dateTime datetime Heure, sous la forme d'une valeur combinée de date et heure (formatée conformément à la norme RFC3339). Un décalage de fuseau horaire est requis, sauf si un fuseau horaire est explicitement spécifié dans timeZone. accessible en écriture
end.timeZone string Fuseau horaire dans lequel l'heure est spécifiée. (au format de nom de la base de données des fuseaux horaires IANA, par exemple "Europe/Zurich") Pour les événements périodiques, ce champ est obligatoire. Il spécifie le fuseau horaire dans lequel la récurrence est étendue. Pour les événements uniques, ce champ est facultatif et indique un fuseau horaire personnalisé pour le début/la fin de l'événement. accessible en écriture
eventType string Type spécifique de l'événement. Une fois l'événement créé, vous ne pourrez plus modifier ce paramètre. Les valeurs possibles sont:
  • "birthday" : événement spécial qui dure toute la journée et se répète chaque année.
  • "default" : événement régulier ou non spécifié.
  • "focusTime" : événement "Moment de concentration".
  • "fromGmail" : un événement ajouté à Gmail. Il est impossible de créer ce type d'événement.
  • "outOfOffice" : événement d'absence du bureau.
  • "workingLocation" : événement de lieu de travail.
accessible en écriture
extendedProperties.private object Propriétés privées à la copie de l'événement qui s'affiche dans cet agenda. accessible en écriture
extendedProperties.shared object Propriétés partagées entre les copies de l'événement dans les agendas des autres participants. accessible en écriture
focusTimeProperties nested object Données d'événement "Moment de concentration". Utilisé si eventType est défini sur focusTime. accessible en écriture
gadget.display string Mode d'affichage du gadget. Obsolète. Les valeurs possibles sont:
  • "icon" : le gadget s'affiche à côté du titre de l'événement dans la vue Agenda.
  • "chip" : le gadget s'affiche lorsque l'utilisateur clique sur l'événement.
accessible en écriture
gadget.height integer Hauteur du gadget en pixels. La hauteur doit être un nombre entier supérieur à zéro. Facultatif. Obsolète. accessible en écriture
gadget.preferences object Préférences. accessible en écriture
gadget.title string Titre du gadget. Obsolète. accessible en écriture
gadget.type string Type du gadget. Obsolète. accessible en écriture
gadget.width integer Largeur du gadget en pixels. La largeur doit être un nombre entier supérieur à zéro. Facultatif. Obsolète. accessible en écriture
guestsCanInviteOthers boolean Indique si les participants autres que l'organisateur peuvent inviter d'autres personnes à l'événement. Facultatif. La valeur par défaut est "True". accessible en écriture
guestsCanModify boolean Indique si des participants autres que l'organisateur peuvent modifier l'événement. Facultatif. La valeur par défaut est "False" (faux). accessible en écriture
guestsCanSeeOtherGuests boolean Indique si les participants autres que l'organisateur peuvent voir les participants à l'événement. Facultatif. La valeur par défaut est "True". accessible en écriture
id string Identifiant opaque de l'événement. Lorsque vous créez un événement unique ou récurrent, vous pouvez spécifier son identifiant. Les ID fournis doivent respecter les règles suivantes:
  • Les caractères autorisés dans l'ID sont ceux utilisés dans l'encodage hexadécimal base32, c'est-à-dire les lettres minuscules (a-v) et les chiffres de 0 à 9 (voir la section 3.1.2 du document RFC2938).
  • La longueur de l'ID doit être comprise entre 5 et 1 024 caractères.
  • L'ID doit être unique pour chaque agenda
En raison de la nature distribuée à l'échelle mondiale du système, nous ne pouvons pas garantir que les collisions d'ID seront détectées au moment de la création de l'événement. Pour réduire le risque de collision, nous vous recommandons d'utiliser un algorithme UUID établi, tel que celui décrit dans la RFC4122.

Si vous ne spécifiez pas d'ID, il sera généré automatiquement par le serveur.

Notez que icalUID et id ne sont pas identiques et qu'un seul d'entre eux doit être fourni au moment de la création de l'événement. Une différence de sémantique est que, dans les événements récurrents, toutes les occurrences d'un événement ont des id différents, mais partagent tous les mêmes icalUID.

accessible en écriture
location string Emplacement géographique de l'événement sous forme de texte libre. Facultatif. accessible en écriture
originalStartTime.date date Date au format "aaaa-mm-jj", si l'événement dure toute la journée. accessible en écriture
originalStartTime.dateTime datetime L'heure, sous la forme d'une valeur date-heure combinée (mise en forme conformément à la norme RFC3339). Un décalage de fuseau horaire est requis, sauf si un fuseau horaire est explicitement spécifié dans timeZone. accessible en écriture
originalStartTime.timeZone string Fuseau horaire dans lequel l'heure est spécifiée. (au format de nom de la base de données des fuseaux horaires IANA, par exemple "Europe/Zurich") Pour les événements périodiques, ce champ est obligatoire. Il spécifie le fuseau horaire dans lequel la récurrence est étendue. Pour les événements uniques, ce champ est facultatif et indique un fuseau horaire personnalisé pour le début/la fin de l'événement. accessible en écriture
outOfOfficeProperties nested object Données d'absence du bureau. Utilisé si eventType est outOfOffice. accessible en écriture
recurrence[] list Liste des lignes RRULE, EXRULE, RDATE et EXDATE pour un événement récurrent, comme spécifié dans le document RFC5545. Notez que les lignes DTSTART et DTEND ne sont pas autorisées dans ce champ. Les heures de début et de fin de l'événement sont spécifiées dans les champs start et end. Ce champ est omis pour les événements uniques ou les occurrences d'événements récurrents. accessible en écriture
reminders.overrides[] list Si l'événement n'utilise pas les rappels par défaut, les rappels spécifiques à l'événement sont listés. Si aucun rappel n'est défini, cela indique qu'aucun rappel n'est défini pour cet événement. Le nombre maximal de rappels de forçage est de cinq. accessible en écriture
reminders.overrides[].method string Méthode utilisée par ce rappel. Les valeurs possibles sont les suivantes:
  • "email" : les rappels sont envoyés par e-mail.
  • "popup" : les rappels sont envoyés via une fenêtre pop-up de l'UI.

Obligatoire lors de l'ajout d'un rappel.

accessible en écriture
reminders.overrides[].minutes integer Nombre de minutes avant le début de l'événement pendant lesquelles le rappel doit se déclencher. Les valeurs valides sont comprises entre 0 et 40 320 (4 semaines en minutes).

Obligatoire lors de l'ajout d'un rappel.

accessible en écriture
reminders.useDefault boolean Indique si les rappels par défaut de l'agenda s'appliquent à l'événement. accessible en écriture
sequence integer Numéro de séquence conformément à iCalendar. accessible en écriture
source.title string Titre de la source (par exemple, titre d'une page Web ou objet d'un e-mail) accessible en écriture
source.url string URL de la source pointant vers une ressource. Le schéma d'URL doit être HTTP ou HTTPS. accessible en écriture
start.date date Date au format "aaaa-mm-jj", si l'événement dure toute la journée. accessible en écriture
start.dateTime datetime Heure, sous la forme d'une valeur combinée de date et heure (formatée conformément à la norme RFC3339). Un décalage horaire est obligatoire, sauf si un fuseau horaire est explicitement spécifié dans timeZone. accessible en écriture
start.timeZone string Fuseau horaire dans lequel l'heure est spécifiée. (au format de nom de la base de données des fuseaux horaires IANA, par exemple "Europe/Zurich") Pour les événements périodiques, ce champ est obligatoire. Il spécifie le fuseau horaire dans lequel la récurrence est étendue. Pour les événements uniques, ce champ est facultatif et indique un fuseau horaire personnalisé pour le début/la fin de l'événement. accessible en écriture
status string État de l'événement. Facultatif. Les valeurs possibles sont les suivantes:
  • "confirmed" : l'événement est confirmé. Il s'agit de l'état par défaut.
  • "tentative" : l'événement est provisoirement confirmé.
  • "cancelled" : l'événement est annulé (supprimé). La méthode list ne renvoie les événements annulés que lors de la synchronisation incrémentielle (lorsque les champs syncToken ou updatedMin sont spécifiés) ou si l'option showDeleted est définie sur true. La méthode get les renvoie toujours.

    Un état "Annulé" représente deux états différents en fonction du type d'événement:

    1. Les exceptions annulées d'un événement récurrent non annulé indiquent que cette instance ne doit plus être présentée à l'utilisateur. Les clients doivent stocker ces événements pendant toute la durée de vie de l'événement périodique parent.

      Pour les exceptions annulées, seules les valeurs des champs id, recurringEventId et originalStartTime sont renseignées. Les autres champs peuvent être vides.

    2. Tous les autres événements annulés représentent des événements supprimés. Les clients doivent supprimer leurs copies synchronisées localement. Ces événements annulés finiront par disparaître. Ne comptez donc pas sur leur disponibilité indéfinie.

      Seul le champ id est renseigné pour les événements supprimés.

    Dans l'agenda de l'organisateur, les détails des événements annulés (récapitulatif, lieu, etc.) restent visibles afin qu'ils puissent être restaurés ou supprimés. De même, les événements auxquels l'utilisateur a été invité et qu'il a supprimés manuellement continuent de fournir des informations. Toutefois, les requêtes de synchronisation incrémentielle avec showDeleted défini sur "false" ne renvoient pas ces informations.

    Si un événement change d'organisateur (par exemple, via l'opération move) et que l'organisateur d'origine ne figure pas dans la liste des participants, l'événement sera annulé, seul le champ id sera renseigné.

accessible en écriture
summary string Titre de l'événement. accessible en écriture
transparency string Indique si l'événement bloque du temps dans l'agenda. Facultatif. Les valeurs possibles sont les suivantes:
  • "opaque" : valeur par défaut. L'événement bloque une période dans l'agenda. Cela équivaut à définir l'option Ma disponibilité en tant que sur Occupé dans l'interface utilisateur d'Agenda.
  • "transparent" : l'événement ne bloque pas de créneau horaire dans l'agenda. Cela équivaut à définir Me montrer comme sur Disponible dans l'interface utilisateur d'Agenda.
accessible en écriture
visibility string Visibilité de l'événement. Facultatif. Les valeurs possibles sont les suivantes:
  • "default" : utilise la visibilité par défaut des événements de l'agenda. Il s'agit de la valeur par défaut.
  • "public" : l'événement est public, et tous les lecteurs de l'agenda peuvent voir les détails de l'événement.
  • "private" : l'événement est privé et seuls les participants peuvent en voir les détails.
  • "confidential" : l'événement est privé. Cette valeur est fournie pour des raisons de compatibilité.
accessible en écriture
workingLocationProperties nested object Données d'événement de lieu de travail accessible en écriture
workingLocationProperties.customLocation object Si présent, indique que l'utilisateur travaille depuis un emplacement personnalisé. accessible en écriture
workingLocationProperties.customLocation.label string Libellé supplémentaire facultatif pour des informations supplémentaires. accessible en écriture
workingLocationProperties.homeOffice any value Si elle est présente, indique que l'utilisateur travaille à domicile. accessible en écriture
workingLocationProperties.officeLocation object S'il est présent, indique que l'utilisateur travaille depuis un bureau. accessible en écriture
workingLocationProperties.officeLocation.buildingId string Identifiant de bâtiment facultatif. Celui-ci doit faire référence à un identifiant de bâtiment dans la base de données "Ressources" de l'organisation. accessible en écriture
workingLocationProperties.officeLocation.deskId string Identifiant de bureau facultatif. accessible en écriture
workingLocationProperties.officeLocation.floorId string Identifiant de l'étage (facultatif) accessible en écriture
workingLocationProperties.officeLocation.floorSectionId string Identifiant facultatif de section d'étage. accessible en écriture
workingLocationProperties.officeLocation.label string Nom de l'établissement qui s'affiche dans les clients Web et mobiles de l'agenda. Nous vous recommandons de faire référence au nom d'un bâtiment dans la base de données de ressources de l'organisation. accessible en écriture
workingLocationProperties.type string Type de lieu de travail. Les valeurs possibles sont:
  • "homeOffice" : l'utilisateur travaille à domicile.
  • "officeLocation" : l'utilisateur travaille depuis un bureau.
  • "customLocation" : l'utilisateur travaille depuis un emplacement personnalisé.
Les détails sont spécifiés dans un sous-champ du nom spécifié, mais ce champ peut être manquant s'il est vide. Tous les autres champs sont ignorés.

Obligatoire lors de l'ajout de propriétés de lieu de travail.

accessible en écriture

Réponse

Si la requête aboutit, cette méthode renvoie une ressource "Events" dans le corps de la réponse.

Exemples

Remarque : Les langages de programmation compatibles ne figurent pas tous dans les exemples de code présentés pour cette méthode (consultez la page Bibliothèques clientes pour obtenir la liste des langages compatibles).

Java

Utilise la bibliothèque cliente Java.

// Refer to the Java quickstart on how to setup the environment:
// https://developers.google.com/calendar/quickstart/java
// Change the scope to CalendarScopes.CALENDAR and delete any stored
// credentials.

Event event = new Event()
    .setSummary("Google I/O 2015")
    .setLocation("800 Howard St., San Francisco, CA 94103")
    .setDescription("A chance to hear more about Google's developer products.");

DateTime startDateTime = new DateTime("2015-05-28T09:00:00-07:00");
EventDateTime start = new EventDateTime()
    .setDateTime(startDateTime)
    .setTimeZone("America/Los_Angeles");
event.setStart(start);

DateTime endDateTime = new DateTime("2015-05-28T17:00:00-07:00");
EventDateTime end = new EventDateTime()
    .setDateTime(endDateTime)
    .setTimeZone("America/Los_Angeles");
event.setEnd(end);

String[] recurrence = new String[] {"RRULE:FREQ=DAILY;COUNT=2"};
event.setRecurrence(Arrays.asList(recurrence));

EventAttendee[] attendees = new EventAttendee[] {
    new EventAttendee().setEmail("lpage@example.com"),
    new EventAttendee().setEmail("sbrin@example.com"),
};
event.setAttendees(Arrays.asList(attendees));

EventReminder[] reminderOverrides = new EventReminder[] {
    new EventReminder().setMethod("email").setMinutes(24 * 60),
    new EventReminder().setMethod("popup").setMinutes(10),
};
Event.Reminders reminders = new Event.Reminders()
    .setUseDefault(false)
    .setOverrides(Arrays.asList(reminderOverrides));
event.setReminders(reminders);

String calendarId = "primary";
event = service.events().insert(calendarId, event).execute();
System.out.printf("Event created: %s\n", event.getHtmlLink());

Python

Utilise la bibliothèque cliente Python.

# Refer to the Python quickstart on how to setup the environment:
# https://developers.google.com/calendar/quickstart/python
# Change the scope to 'https://www.googleapis.com/auth/calendar' and delete any
# stored credentials.

event = {
  'summary': 'Google I/O 2015',
  'location': '800 Howard St., San Francisco, CA 94103',
  'description': 'A chance to hear more about Google\'s developer products.',
  'start': {
    'dateTime': '2015-05-28T09:00:00-07:00',
    'timeZone': 'America/Los_Angeles',
  },
  'end': {
    'dateTime': '2015-05-28T17:00:00-07:00',
    'timeZone': 'America/Los_Angeles',
  },
  'recurrence': [
    'RRULE:FREQ=DAILY;COUNT=2'
  ],
  'attendees': [
    {'email': 'lpage@example.com'},
    {'email': 'sbrin@example.com'},
  ],
  'reminders': {
    'useDefault': False,
    'overrides': [
      {'method': 'email', 'minutes': 24 * 60},
      {'method': 'popup', 'minutes': 10},
    ],
  },
}

event = service.events().insert(calendarId='primary', body=event).execute()
print 'Event created: %s' % (event.get('htmlLink'))

PHP

Elle utilise la bibliothèque cliente PHP.

// Refer to the PHP quickstart on how to setup the environment:
// https://developers.google.com/calendar/quickstart/php
// Change the scope to Google_Service_Calendar::CALENDAR and delete any stored
// credentials.

$event = new Google_Service_Calendar_Event(array(
  'summary' => 'Google I/O 2015',
  'location' => '800 Howard St., San Francisco, CA 94103',
  'description' => 'A chance to hear more about Google\'s developer products.',
  'start' => array(
    'dateTime' => '2015-05-28T09:00:00-07:00',
    'timeZone' => 'America/Los_Angeles',
  ),
  'end' => array(
    'dateTime' => '2015-05-28T17:00:00-07:00',
    'timeZone' => 'America/Los_Angeles',
  ),
  'recurrence' => array(
    'RRULE:FREQ=DAILY;COUNT=2'
  ),
  'attendees' => array(
    array('email' => 'lpage@example.com'),
    array('email' => 'sbrin@example.com'),
  ),
  'reminders' => array(
    'useDefault' => FALSE,
    'overrides' => array(
      array('method' => 'email', 'minutes' => 24 * 60),
      array('method' => 'popup', 'minutes' => 10),
    ),
  ),
));

$calendarId = 'primary';
$event = $service->events->insert($calendarId, $event);
printf('Event created: %s\n', $event->htmlLink);

Ruby

Utilise la bibliothèque cliente Ruby.

event = Google::Apis::CalendarV3::Event.new(
  summary: 'Google I/O 2015',
  location: '800 Howard St., San Francisco, CA 94103',
  description: 'A chance to hear more about Google\'s developer products.',
  start: Google::Apis::CalendarV3::EventDateTime.new(
    date_time: '2015-05-28T09:00:00-07:00',
    time_zone: 'America/Los_Angeles'
  ),
  end: Google::Apis::CalendarV3::EventDateTime.new(
    date_time: '2015-05-28T17:00:00-07:00',
    time_zone: 'America/Los_Angeles'
  ),
  recurrence: [
    'RRULE:FREQ=DAILY;COUNT=2'
  ],
  attendees: [
    Google::Apis::CalendarV3::EventAttendee.new(
      email: 'lpage@example.com'
    ),
    Google::Apis::CalendarV3::EventAttendee.new(
      email: 'sbrin@example.com'
    )
  ],
  reminders: Google::Apis::CalendarV3::Event::Reminders.new(
    use_default: false,
    overrides: [
      Google::Apis::CalendarV3::EventReminder.new(
        reminder_method: 'email',
        minutes: 24 * 60
      ),
      Google::Apis::CalendarV3::EventReminder.new(
        reminder_method: 'popup',
        minutes: 10
      )
    ]
  )
)

result = client.insert_event('primary', event)
puts "Event created: #{result.html_link}"

.NET

Utilise la bibliothèque cliente.NET.

// Refer to the .NET quickstart on how to setup the environment:
// https://developers.google.com/calendar/quickstart/dotnet
// Change the scope to CalendarService.Scope.Calendar and delete any stored
// credentials.

Event newEvent = new Event()
{
    Summary = "Google I/O 2015",
    Location = "800 Howard St., San Francisco, CA 94103",
    Description = "A chance to hear more about Google's developer products.",
    Start = new EventDateTime()
    {
        DateTime = DateTime.Parse("2015-05-28T09:00:00-07:00"),
        TimeZone = "America/Los_Angeles",
    },
    End = new EventDateTime()
    {
        DateTime = DateTime.Parse("2015-05-28T17:00:00-07:00"),
        TimeZone = "America/Los_Angeles",
    },
    Recurrence = new String[] { "RRULE:FREQ=DAILY;COUNT=2" },
    Attendees = new EventAttendee[] {
        new EventAttendee() { Email = "lpage@example.com" },
        new EventAttendee() { Email = "sbrin@example.com" },
    },
    Reminders = new Event.RemindersData()
    {
        UseDefault = false,
        Overrides = new EventReminder[] {
            new EventReminder() { Method = "email", Minutes = 24 * 60 },
            new EventReminder() { Method = "sms", Minutes = 10 },
        }
    }
};

String calendarId = "primary";
EventsResource.InsertRequest request = service.Events.Insert(newEvent, calendarId);
Event createdEvent = request.Execute();
Console.WriteLine("Event created: {0}", createdEvent.HtmlLink);

Go

Utilise la bibliothèque cliente Go.

// Refer to the Go quickstart on how to setup the environment:
// https://developers.google.com/calendar/quickstart/go
// Change the scope to calendar.CalendarScope and delete any stored credentials.

event := &calendar.Event{
  Summary: "Google I/O 2015",
  Location: "800 Howard St., San Francisco, CA 94103",
  Description: "A chance to hear more about Google's developer products.",
  Start: &calendar.EventDateTime{
    DateTime: "2015-05-28T09:00:00-07:00",
    TimeZone: "America/Los_Angeles",
  },
  End: &calendar.EventDateTime{
    DateTime: "2015-05-28T17:00:00-07:00",
    TimeZone: "America/Los_Angeles",
  },
  Recurrence: []string{"RRULE:FREQ=DAILY;COUNT=2"},
  Attendees: []*calendar.EventAttendee{
    &calendar.EventAttendee{Email:"lpage@example.com"},
    &calendar.EventAttendee{Email:"sbrin@example.com"},
  },
}

calendarId := "primary"
event, err = srv.Events.Insert(calendarId, event).Do()
if err != nil {
  log.Fatalf("Unable to create event. %v\n", err)
}
fmt.Printf("Event created: %s\n", event.HtmlLink)

JavaScript

Utilise la bibliothèque cliente JavaScript.

// Refer to the JavaScript quickstart on how to setup the environment:
// https://developers.google.com/calendar/quickstart/js
// Change the scope to 'https://www.googleapis.com/auth/calendar' and delete any
// stored credentials.

var event = {
  'summary': 'Google I/O 2015',
  'location': '800 Howard St., San Francisco, CA 94103',
  'description': 'A chance to hear more about Google\'s developer products.',
  'start': {
    'dateTime': '2015-05-28T09:00:00-07:00',
    'timeZone': 'America/Los_Angeles'
  },
  'end': {
    'dateTime': '2015-05-28T17:00:00-07:00',
    'timeZone': 'America/Los_Angeles'
  },
  'recurrence': [
    'RRULE:FREQ=DAILY;COUNT=2'
  ],
  'attendees': [
    {'email': 'lpage@example.com'},
    {'email': 'sbrin@example.com'}
  ],
  'reminders': {
    'useDefault': false,
    'overrides': [
      {'method': 'email', 'minutes': 24 * 60},
      {'method': 'popup', 'minutes': 10}
    ]
  }
};

var request = gapi.client.calendar.events.insert({
  'calendarId': 'primary',
  'resource': event
});

request.execute(function(event) {
  appendPre('Event created: ' + event.htmlLink);
});

Node.js

Utilise la bibliothèque cliente Node.js.

// Refer to the Node.js quickstart on how to setup the environment:
// https://developers.google.com/calendar/quickstart/node
// Change the scope to 'https://www.googleapis.com/auth/calendar' and delete any
// stored credentials.

var event = {
  'summary': 'Google I/O 2015',
  'location': '800 Howard St., San Francisco, CA 94103',
  'description': 'A chance to hear more about Google\'s developer products.',
  'start': {
    'dateTime': '2015-05-28T09:00:00-07:00',
    'timeZone': 'America/Los_Angeles',
  },
  'end': {
    'dateTime': '2015-05-28T17:00:00-07:00',
    'timeZone': 'America/Los_Angeles',
  },
  'recurrence': [
    'RRULE:FREQ=DAILY;COUNT=2'
  ],
  'attendees': [
    {'email': 'lpage@example.com'},
    {'email': 'sbrin@example.com'},
  ],
  'reminders': {
    'useDefault': false,
    'overrides': [
      {'method': 'email', 'minutes': 24 * 60},
      {'method': 'popup', 'minutes': 10},
    ],
  },
};

calendar.events.insert({
  auth: auth,
  calendarId: 'primary',
  resource: event,
}, function(err, event) {
  if (err) {
    console.log('There was an error contacting the Calendar service: ' + err);
    return;
  }
  console.log('Event created: %s', event.htmlLink);
});

Essayer

Utilisez l'explorateur d'API ci-dessous pour appeler cette méthode sur des données en direct, puis observez la réponse.