Crea un evento. Pruébalo ahora y ve un ejemplo.
Solicitud
Solicitud HTTP
POST https://www.googleapis.com/calendar/v3/calendars/calendarId/events
Parámetros
Nombre del parámetro | Valor | Descripción |
---|---|---|
Parámetros de ruta de acceso | ||
calendarId |
string |
Es el identificador del calendario. Para recuperar los IDs de calendario, llama al método calendarList.list. Si deseas acceder al calendario principal del usuario que accedió actualmente, usa la palabra clave "primary ".
|
Parámetros de consulta opcionales | ||
conferenceDataVersion |
integer |
Es el número de versión de los datos de la conferencia que admite el cliente de la API. La versión 0 supone que no es compatible con los datos de la conferencia e ignora los datos de la conferencia en el cuerpo del evento. La versión 1 habilita la compatibilidad con la copia de ConferenceData y la creación de conferencias nuevas con el campo createRequest de conferenceData. El valor predeterminado es 0.
Los valores aceptables son 0 a 1 , ambos inclusive.
|
maxAttendees |
integer |
Es la cantidad máxima de asistentes que se deben incluir en la respuesta. Si el número de asistentes supera la cantidad especificada, solo se devuelve el participante. Opcional. |
sendNotifications |
boolean |
Obsoleta. En su lugar, usa sendUpdates. Determina si se deben enviar notificaciones sobre la creación del evento nuevo. Ten en cuenta que es posible que se envíen algunos correos electrónicos incluso si estableces el valor en false . El valor predeterminado es false .
|
sendUpdates |
string |
Indica si se deben enviar notificaciones sobre la creación del evento nuevo. Ten en cuenta que es posible que se sigan enviando algunos correos electrónicos. El valor predeterminado es false .
Los valores aceptables son los siguientes:
|
supportsAttachments |
boolean |
Indica si el cliente de API que realiza una operación admite adjuntos de eventos. Opcional. El valor predeterminado es False. |
Autorización
Esta solicitud requiere autorización con al menos uno de los siguientes permisos:
Alcance |
---|
https://www.googleapis.com/auth/calendar |
https://www.googleapis.com/auth/calendar.events |
Para obtener más información, consulta la página de autenticación y autorización.
Cuerpo de la solicitud
En el cuerpo de la solicitud, proporciona un recurso de eventos con las siguientes propiedades:
Nombre de la propiedad | Valor | Descripción | Notas |
---|---|---|---|
Propiedades obligatorias | |||
end |
nested object |
Hora de finalización (exclusiva) del evento. Para un evento recurrente, esta es la hora de finalización de la primera instancia. | |
start |
nested object |
Hora de inicio (inclusiva) del evento. En el caso de un evento recurrente, esta es la hora de inicio de la primera instancia. | |
Propiedades opcionales | |||
anyoneCanAddSelf |
boolean |
Indica si cualquier persona puede autoinvitarse al evento (obsoleto). Opcional. El valor predeterminado es False. | admite escritura |
attachments[].fileUrl |
string |
Es el vínculo de URL al archivo adjunto. Para agregar archivos adjuntos de Google Drive, usa el mismo formato que en la propiedad Obligatorio cuando se agrega un archivo adjunto. |
admite escritura |
attendees[] |
list |
Los asistentes al evento. Consulta la guía Eventos con asistentes para obtener más información sobre cómo programar eventos con otros usuarios del calendario. Las cuentas de servicio deben usar la delegación de autoridad en todo el dominio para propagar la lista de asistentes. | admite escritura |
attendees[].additionalGuests |
integer |
Cantidad de invitados adicionales. Opcional. El valor predeterminado es 0. | admite escritura |
attendees[].comment |
string |
Es el comentario de respuesta del asistente. Opcional. | admite escritura |
attendees[].displayName |
string |
El nombre del asistente, si está disponible Opcional. | admite escritura |
attendees[].email |
string |
La dirección de correo electrónico del asistente, si está disponible. Este campo debe estar presente cuando se agrega un asistente. Debe ser una dirección de correo electrónico válida según el RFC5322. Obligatorio cuando se agrega un asistente. |
admite escritura |
attendees[].optional |
boolean |
Indica si se trata de un asistente opcional. Opcional. El valor predeterminado es False. | admite escritura |
attendees[].resource |
boolean |
Indica si el asistente es un recurso. Solo se puede establecer cuando el asistente se agrega al evento por primera vez. Las modificaciones posteriores se ignorarán. Opcional. El valor predeterminado es False. | admite escritura |
attendees[].responseStatus |
string |
Estado de respuesta del asistente. Los valores posibles son los siguientes:
|
admite escritura |
birthdayProperties |
nested object |
Datos de cumpleaños o eventos especiales Se usa si eventType es "birthday" . Inmutable. |
admite escritura |
birthdayProperties.type |
string |
Tipo de cumpleaños o evento especial Los valores posibles son los siguientes:
"birthday" . No se puede cambiar el tipo después de crear el evento. |
admite escritura |
colorId |
string |
Indica el color del evento. Es un ID que hace referencia a una entrada en la sección event de la definición de colores (consulta el extremo de colores). Opcional. |
admite escritura |
conferenceData |
nested object |
La información relacionada con la conferencia, como los detalles de una conferencia de Google Meet Para crear nuevos detalles de la conferencia, usa el campo createRequest . Para conservar los cambios, recuerda establecer el parámetro de solicitud conferenceDataVersion en 1 para todas las solicitudes de modificación de eventos. |
admite escritura |
description |
string |
Descripción del evento. Puede contener HTML. Opcional. | admite escritura |
end.date |
date |
Es la fecha, en el formato “aaaa-mm-dd”, si el evento dura todo el día. | admite escritura |
end.dateTime |
datetime |
La hora, como un valor de fecha y hora combinado (con el formato de RFC3339) Se requiere una compensación de zona horaria, a menos que se especifique una zona horaria de forma explícita en timeZone . |
admite escritura |
end.timeZone |
string |
Es la zona horaria en la que se especifica la hora. (Tiene el formato de un nombre de la base de datos de zonas horarias de IANA, p.ej., "Europa/Zúrich"). Para los eventos recurrentes, este campo es obligatorio y especifica la zona horaria en la que se expande la recurrencia. Para eventos individuales, este campo es opcional y indica una zona horaria personalizada para el inicio o la finalización del evento. | admite escritura |
eventType |
string |
Es el tipo específico del evento. No se puede modificar después de crear el evento. Los valores posibles son los siguientes:
|
admite escritura |
extendedProperties.private |
object |
Propiedades que son privadas para la copia del evento que aparece en este calendario. | admite escritura |
extendedProperties.shared |
object |
Propiedades que se comparten entre copias del evento en los calendarios de otros asistentes. | admite escritura |
focusTimeProperties |
nested object |
Datos del evento de tiempo dedicado Se usa si eventType es focusTime . |
admite escritura |
gadget.display |
string |
Es el modo de visualización del gadget. Obsoleta. Los valores posibles son:
|
admite escritura |
gadget.height |
integer |
La altura del gadget en píxeles. La altura debe ser un número entero mayor que 0. Opcional. Obsoleta. | admite escritura |
gadget.iconLink |
string |
La URL del ícono del gadget. El esquema de la URL debe ser HTTPS. Obsoleta. | admite escritura |
gadget.link |
string |
URL del gadget. El esquema de la URL debe ser HTTPS. Obsoleta. | admite escritura |
gadget.preferences |
object |
Preferencias. | admite escritura |
gadget.title |
string |
Es el título del gadget. Obsoleta. | admite escritura |
gadget.type |
string |
El tipo de gadget. Obsoleta. | admite escritura |
gadget.width |
integer |
Es el ancho del gadget en píxeles. El ancho debe ser un número entero mayor que 0. Opcional. Obsoleta. | admite escritura |
guestsCanInviteOthers |
boolean |
Indica si los asistentes que no sean el organizador pueden invitar a otras personas al evento. Opcional. El valor predeterminado es True. | admite escritura |
guestsCanModify |
boolean |
Indica si los asistentes que no sean el organizador pueden modificar el evento. Opcional. El valor predeterminado es False. | admite escritura |
guestsCanSeeOtherGuests |
boolean |
Indica si los asistentes que no sean el organizador pueden ver quiénes son los asistentes del evento. Opcional. El valor predeterminado es True. | admite escritura |
id |
string |
Es el identificador opaco del evento. Cuando crees eventos únicos o recurrentes nuevos, puedes especificar sus IDs. Los IDs proporcionados deben seguir estas reglas:
Si no especificas un ID, el servidor lo generará automáticamente. Ten en cuenta que |
admite escritura |
location |
string |
Es la ubicación geográfica del evento como texto de formato libre. Opcional. | admite escritura |
originalStartTime.date |
date |
Es la fecha, en el formato “aaaa-mm-dd”, si el evento dura todo el día. | admite escritura |
originalStartTime.dateTime |
datetime |
La hora, como un valor de fecha y hora combinado (con un formato acorde a RFC3339). Se requiere una compensación de zona horaria, a menos que se especifique una zona horaria de forma explícita en timeZone . |
admite escritura |
originalStartTime.timeZone |
string |
Es la zona horaria en la que se especifica la hora. (Tiene el formato de un nombre de la base de datos de zonas horarias de IANA, p.ej., "Europa/Zúrich"). Para los eventos recurrentes, este campo es obligatorio y especifica la zona horaria en la que se expande la recurrencia. Para eventos individuales, este campo es opcional y indica una zona horaria personalizada para el inicio o la finalización del evento. | admite escritura |
outOfOfficeProperties |
nested object |
Datos del evento fuera de la oficina. Se usa si eventType es outOfOffice . |
admite escritura |
recurrence[] |
list |
Es la lista de líneas RRULE, EXRULE, RDATE y EXDATE para un evento recurrente, como se especifica en RFC5545. Ten en cuenta que no se permiten las líneas DTSTART y DTEND en este campo. Las horas de inicio y finalización del evento se especifican en los campos start y end . Este campo se omite para eventos individuales o instancias de eventos recurrentes. |
admite escritura |
reminders.overrides[] |
list |
Si el evento no usa los recordatorios predeterminados, se enumeran los recordatorios específicos del evento o, si no se establecen, se indica que no hay recordatorios establecidos para este evento. La cantidad máxima de recordatorios de anulación es 5. | admite escritura |
reminders.overrides[].method |
string |
Es el método que usa este recordatorio. Los valores posibles son los siguientes:
Obligatorio cuando se agrega un recordatorio. |
admite escritura |
reminders.overrides[].minutes |
integer |
Es la cantidad de minutos antes del inicio del evento en los que se debe activar el recordatorio. Los valores válidos están entre 0 y 40320 (4 semanas en minutos). Obligatorio cuando se agrega un recordatorio. |
admite escritura |
reminders.useDefault |
boolean |
Indica si los recordatorios predeterminados del calendario se aplican al evento. | admite escritura |
sequence |
integer |
Número de secuencia según iCalendar. | admite escritura |
source.title |
string |
Es el título de la fuente, por ejemplo, el título de una página web o el asunto de un correo electrónico. | admite escritura |
source.url |
string |
Es la URL de la fuente que apunta a un recurso. El esquema de URL debe ser HTTP o HTTPS. | admite escritura |
start.date |
date |
Es la fecha, en el formato “aaaa-mm-dd”, si el evento dura todo el día. | admite escritura |
start.dateTime |
datetime |
La hora, como un valor de fecha y hora combinado (con un formato acorde a RFC3339). Se requiere una compensación de zona horaria, a menos que se especifique una zona horaria de forma explícita en timeZone . |
admite escritura |
start.timeZone |
string |
Es la zona horaria en la que se especifica la hora. (Tiene el formato de un nombre de la base de datos de zonas horarias de IANA, p.ej., "Europa/Zúrich"). Para los eventos recurrentes, este campo es obligatorio y especifica la zona horaria en la que se expande la recurrencia. Para eventos individuales, este campo es opcional y indica una zona horaria personalizada para el inicio o la finalización del evento. | admite escritura |
status |
string |
Estado del evento. Opcional. Los valores posibles son los siguientes:
|
admite escritura |
summary |
string |
Corresponde al título del evento. | admite escritura |
transparency |
string |
Indica si el evento bloquea el tiempo en el calendario. Opcional. Los valores posibles son los siguientes:
|
admite escritura |
visibility |
string |
Visibilidad del evento. Opcional. Los valores posibles son los siguientes:
|
admite escritura |
workingLocationProperties |
nested object |
Datos de eventos de ubicación de trabajo | admite escritura |
workingLocationProperties.customLocation |
object |
Si está presente, especifica que el usuario está trabajando desde una ubicación personalizada. | admite escritura |
workingLocationProperties.customLocation.label |
string |
Es una etiqueta adicional opcional para obtener información adicional. | admite escritura |
workingLocationProperties.homeOffice |
any value |
Si está presente, especifica que el usuario trabaja desde casa. | admite escritura |
workingLocationProperties.officeLocation |
object |
Si está presente, especifica que el usuario está trabajando desde una oficina. | admite escritura |
workingLocationProperties.officeLocation.buildingId |
string |
Es un identificador de edificio opcional. Debe hacer referencia a un ID de edificio en la base de datos de recursos de la organización. | admite escritura |
workingLocationProperties.officeLocation.deskId |
string |
Es un identificador de escritorio opcional. | admite escritura |
workingLocationProperties.officeLocation.floorId |
string |
Un identificador de piso opcional. | admite escritura |
workingLocationProperties.officeLocation.floorSectionId |
string |
Es un identificador opcional de sección de piso. | admite escritura |
workingLocationProperties.officeLocation.label |
string |
Es el nombre de la oficina que se muestra en los clientes del Calendario web y para dispositivos móviles. Te recomendamos que hagas referencia a un nombre de edificio en la base de datos de recursos de la organización. | admite escritura |
workingLocationProperties.type |
string |
Es el tipo de ubicación de trabajo. Los valores posibles son los siguientes:
Obligatorio cuando se agregan propiedades de ubicación de trabajo. |
admite escritura |
Respuesta
Si se ejecuta de forma correcta, este método muestra un recurso de eventos en el cuerpo de la respuesta.
Ejemplos
Nota: Los ejemplos de código disponibles para este método no representan todos los lenguajes de programación admitidos (consulta la página de bibliotecas cliente para consultar una lista de lenguajes admitidos).
Java
Usa la biblioteca cliente de 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
Usa la biblioteca cliente de 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
Usa la biblioteca cliente de 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
Usa la biblioteca cliente de 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
Usa la biblioteca cliente de.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
Usa la biblioteca cliente de 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
Usa la biblioteca cliente de 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
Usa la biblioteca cliente de 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); });
Pruébalo
Usa el Explorador de APIs que aparece a continuación para llamar a este método en datos en vivo y ver la respuesta.