Crée un événement. Essayez dès maintenant ou consultez 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 bouton "primary " mot clé.
|
Paramètres de requête facultatifs | ||
conferenceDataVersion |
integer |
Numéro de version des données de conférence compatible avec le client API. La version 0 suppose qu'aucune donnée de conférence n'est prise en charge et ignore les données de conférence 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. S'il y a plus de participants que le 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 |
Permet d'envoyer ou non des notifications concernant la création de l'événement. Notez que certains e-mails peuvent encore être envoyés. La valeur par défaut est false .
Les valeurs possibles sont les suivantes:
|
supportsAttachments |
boolean |
Indique si l'opération du client API est compatible avec 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:
Champ d'application |
---|
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 obligatoires | |||
end |
nested object |
Heure de fin (exclue) de l'événement. Pour un événement périodique, il s'agit de l'heure de fin de la première occurrence. | |
start |
nested object |
Heure de début (incluse) 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 |
l'URL de la pièce jointe. Pour ajouter des pièces jointes Google Drive, utilisez le même format que dans la propriété 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 remplir 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 réponse du participant. Facultatif. | accessible en écriture |
attendees[].displayName |
string |
Nom du participant, si disponible. Facultatif. | accessible en écriture |
attendees[].email |
string |
Adresse e-mail du participant, si disponible. Ce champ doit être présent lors de l'ajout d'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 du participant. Les valeurs possibles sont:
|
accessible en écriture |
colorId |
string |
Couleur de l'événement. Cet ID fait 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 conserver vos modifications, n'oubliez pas de définir le paramètre de requête conferenceDataVersion sur 1 pour toutes les demandes 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", s'il s'agit d'un événement d'une journée entière. | accessible en écriture |
end.dateTime |
datetime |
Heure, sous forme de valeur combinée date/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. (présenté sous la forme d'un nom de base de données des fuseaux horaires de l'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 individuels, ce champ est facultatif et indique un fuseau horaire personnalisé pour le début et 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:
|
accessible en écriture |
extendedProperties.private |
object |
Propriétés réservées à la copie de l'événement qui apparaît dans cet agenda. | accessible en écriture |
extendedProperties.shared |
object |
Propriétés partagées entre les copies de l'événement sur celles des autres participants agendas. | 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:
|
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.iconLink |
string |
URL de l'icône du gadget. Le schéma d'URL doit être HTTPS. Obsolète. | accessible en écriture |
gadget.link |
string |
URL du gadget. Le schéma d'URL doit être HTTPS. 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 de 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 des 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 qui sont 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 des événements uniques ou récurrents, vous pouvez spécifier leur ID. Les ID fournis doivent respecter les règles suivantes:
Si vous ne spécifiez pas d'ID, il sera automatiquement généré par le serveur. Notez que |
accessible en écriture |
location |
string |
Emplacement géographique de l'événement (texte au format libre) Facultatif. | accessible en écriture |
originalStartTime.date |
date |
Date au format "aaaa-mm-jj", s'il s'agit d'un événement d'une journée entière. | accessible en écriture |
originalStartTime.dateTime |
datetime |
Heure, sous forme de valeur combinée date/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 |
originalStartTime.timeZone |
string |
Fuseau horaire dans lequel l'heure est spécifiée. (présenté sous la forme d'un nom de base de données des fuseaux horaires de l'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 individuels, ce champ est facultatif et indique un fuseau horaire personnalisé pour le début et la fin de l'événement. | accessible en écriture |
outOfOfficeProperties |
nested object |
Données d'absence du bureau. Utilisé si eventType est défini sur outOfOffice . |
accessible en écriture |
recurrence[] |
list |
Liste des lignes RRULE, EXRULE, RDATE et EXDATE pour un événement périodique, comme spécifié dans le 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 ponctuels ou périodiques. |
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 s'affichent. Si aucun rappel n'est défini, cela indique qu'aucun rappel n'est défini pour cet événement. Vous ne pouvez pas définir plus de cinq rappels. | accessible en écriture |
reminders.overrides[].method |
string |
Méthode utilisée pour ce rappel. Les valeurs possibles sont:
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 le titre d'une page Web ou l'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", s'il s'agit d'un événement d'une journée entière. | accessible en écriture |
start.dateTime |
datetime |
Heure, sous forme de valeur combinée date/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 |
start.timeZone |
string |
Fuseau horaire dans lequel l'heure est spécifiée. (présenté sous la forme d'un nom de base de données des fuseaux horaires de l'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 individuels, ce champ est facultatif et indique un fuseau horaire personnalisé pour le début et la fin de l'événement. | accessible en écriture |
status |
string |
État de l'événement. Facultatif. Les valeurs possibles sont:
|
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:
|
accessible en écriture |
visibility |
string |
Visibilité de l'événement. Facultatif. Les valeurs possibles sont:
|
accessible en écriture |
workingLocationProperties |
nested object |
Données d'événement sur le lieu de travail. | accessible en écriture |
workingLocationProperties.customLocation |
object |
S'il est présent, indique que l'utilisateur travaille dans un lieu personnalisé. | accessible en écriture |
workingLocationProperties.customLocation.label |
string |
Libellé supplémentaire facultatif pour fournir des informations supplémentaires. | accessible en écriture |
workingLocationProperties.homeOffice |
any value |
S'il est présent, indique que l'utilisateur travaille à domicile. | accessible en écriture |
workingLocationProperties.officeLocation |
object |
S'il est présent, indique que l'utilisateur travaille dans un bureau. | accessible en écriture |
workingLocationProperties.officeLocation.buildingId |
string |
Identifiant facultatif du bâtiment. Celui-ci doit référencer 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 d'étage facultatif. | accessible en écriture |
workingLocationProperties.officeLocation.floorSectionId |
string |
Identifiant facultatif de section d'étage. | accessible en écriture |
workingLocationProperties.officeLocation.label |
string |
Nom du bureau affiché dans les clients Agenda pour le Web et les mobiles. Nous vous recommandons de référencer un nom de bâtiment dans la base de données "Ressources" de l'organisation. | accessible en écriture |
workingLocationProperties.type |
string |
Type de lieu de travail. Les valeurs possibles sont:
Obligatoire lors de l'ajout de propriétés de lieu de travail. |
accessible en écriture |
Réponse
Lorsque cette méthode fonctionne, elle renvoie une ressource "Events" dans le corps de 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
Elle 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
Elle 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
Elle 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
Elle 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
Elle 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
Elle 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
Elle 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.