Importa un evento. Esta operación se usa para agregar una copia privada de un evento existente a un calendario. Solo se pueden importar eventos con una eventType
de default
.
Comportamiento obsoleto: Si se importa un evento que no es default
, su tipo se cambiará a default
y se descartarán todas las propiedades específicas de un tipo de evento que pueda tener.
Solicitud
Solicitud HTTP
POST https://www.googleapis.com/calendar/v3/calendars/calendarId/events/import
Parámetros
Nombre del parámetro | Valor | Descripción |
---|---|---|
Parámetros de ruta de acceso | ||
calendarId |
string |
Es el identificador de calendario. Para recuperar los ID del calendario, llama al método calendarList.list. Si quieres acceder al calendario principal del usuario que accedió, usa "primary " palabra clave.
|
Parámetros de consulta opcionales | ||
conferenceDataVersion |
integer |
Número de versión de los datos de conferencias admitidos por 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 admite la copia de ConferenceData y la creación de nuevas conferencias con el campo createRequest de conferenciaData. El valor predeterminado es 0.
Los valores aceptables son 0 a 1 , ambos inclusive.
|
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 alcances:
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. En el caso de un evento recurrente, esta es la hora de finalización de la primera instancia. | |
iCalUID |
string |
Es el identificador único del evento, como se define en RFC5545. Se utiliza para identificar de forma única los eventos en los sistemas de calendario y debe proporcionarse cuando se importan eventos a través del método import. Ten en cuenta que |
|
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 |
Si alguien puede invitarse a sí mismo al evento (no disponible) Opcional. El valor predeterminado es False. | admite escritura |
attachments[].fileUrl |
string |
Es el vínculo URL al archivo adjunto. Para agregar archivos adjuntos de Google Drive, usa el mismo formato que en la propiedad Es 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 de todo el dominio para propagar la lista de asistentes. | admite escritura |
attendees[].additionalGuests |
integer |
Cantidad de huéspedes adicionales. Opcional. El valor predeterminado es 0. | admite escritura |
attendees[].comment |
string |
Comentario de la respuesta del asistente. Opcional. | admite escritura |
attendees[].displayName |
string |
El nombre del asistente, si está disponible. Opcional. | admite escritura |
attendees[].email |
string |
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 RFC5322. Es obligatorio para agregar un asistente. |
admite escritura |
attendees[].optional |
boolean |
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 configurar cuando se agrega al asistente 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:
|
admite escritura |
attendeesOmitted |
boolean |
Si es posible que los asistentes se hayan omitido en la representación del evento Cuando se recupera un evento, puede deberse a una restricción especificada por el parámetro de consulta maxAttendee . Cuando se actualiza un evento, se puede usar únicamente para actualizar la respuesta del participante. Opcional. El valor predeterminado es False. |
admite escritura |
colorId |
string |
Indica el color del evento. Este 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 |
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 tus 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 un formato acorde a RFC3339). Se requiere un desplazamiento de zona horaria, a menos que se especifique explícitamente una zona horaria 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 los eventos individuales, este campo es opcional e indica una zona horaria personalizada para el inicio y la finalización del evento. | 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 las de otros asistentes calendarios. | admite escritura |
focusTimeProperties |
nested object |
Datos de eventos de Tiempo dedicado. Se usa si eventType es focusTime . |
admite escritura |
gadget.display |
string |
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 |
URL del ícono del gadget. El esquema de URL debe ser HTTPS. Obsoleta. | admite escritura |
gadget.link |
string |
URL del gadget. El esquema de URL debe ser HTTPS. Obsoleta. | admite escritura |
gadget.preferences |
object |
Preferencias. | admite escritura |
gadget.title |
string |
Título del gadget. Obsoleta. | admite escritura |
gadget.type |
string |
El tipo de gadget. Obsoleta. | admite escritura |
gadget.width |
integer |
Ancho en píxeles del gadget. 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 |
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 |
location |
string |
Ubicación geográfica del evento como texto de formato libre. Opcional. | admite escritura |
organizer |
object |
Es el organizador del evento. Si el organizador también es un asistente, esto se indica con una entrada separada en attendees con el campo organizer establecido en Verdadero. Para cambiar el organizador, usa la operación de mover. Solo lectura, excepto cuando se importa un evento |
admite escritura |
organizer.displayName |
string |
Nombre del organizador, si está disponible. | admite escritura |
organizer.email |
string |
Dirección de correo electrónico del organizador, si está disponible. Debe ser una dirección de correo electrónico válida, según RFC5322. | 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 un desplazamiento de zona horaria, a menos que se especifique explícitamente una zona horaria 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 los eventos individuales, este campo es opcional e indica una zona horaria personalizada para el inicio y la finalización del evento. | admite escritura |
outOfOfficeProperties |
nested object |
Datos de eventos fuera de la oficina. Se usa si eventType es outOfOffice . |
admite escritura |
recurrence[] |
list |
Lista de líneas RRULE, EXRULE, RDATE y EXDATE para un evento recurrente, como se especifica en RFC5545. Ten en cuenta que las líneas DTSTART y DTEND no están permitidas 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 utiliza los recordatorios predeterminados, se muestran los recordatorios específicos del evento o, si no se establece, se indica que no se estableció ningún recordatorio para este evento. La cantidad máxima de recordatorios de anulación es 5. | admite escritura |
reminders.overrides[].method |
string |
Indica el método que usa este recordatorio. Los valores posibles son:
Obligatorio cuando se agrega un recordatorio. |
admite escritura |
reminders.overrides[].minutes |
integer |
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 40,320 (4 semanas en minutos). Obligatorio cuando se agrega un recordatorio. |
admite escritura |
reminders.useDefault |
boolean |
Establece 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 |
Título de la fuente como el título de una página web o el asunto de un correo electrónico. | admite escritura |
source.url |
string |
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 un desplazamiento de zona horaria, a menos que se especifique explícitamente una zona horaria 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 los eventos individuales, este campo es opcional e indica una zona horaria personalizada para el inicio y la finalización del evento. | admite escritura |
status |
string |
Estado del evento. Opcional. Los valores posibles son:
|
admite escritura |
summary |
string |
Corresponde al título del evento. | admite escritura |
transparency |
string |
Indica si el evento bloquea tiempo en el calendario. Opcional. Los valores posibles son:
|
admite escritura |
visibility |
string |
Visibilidad del evento Opcional. Los valores posibles son:
|
admite escritura |
Respuesta
Si se aplica correctamente, 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.
import com.google.api.services.calendar.Calendar; import com.google.api.services.calendar.model.Event; import com.google.api.services.calendar.model.EventAttendee; import com.google.api.services.calendar.model.EventDateTime; import com.google.api.client.util.DateTime; import java.util.Date; // ... // Initialize Calendar service with valid OAuth credentials Calendar service = new Calendar.Builder(httpTransport, jsonFactory, credentials) .setApplicationName("applicationName").build(); // Create and initialize a new event (could also retrieve an existing event) Event event = new Event(); event.setICalUID("originalUID"); Event.Organizer organizer = new Event.Organizer(); organizer.setEmail("organizerEmail"); organizer.setDisplayName("organizerDisplayName"); event.setOrganizer(organizer); ArrayList<EventAttendee> attendees = new ArrayList<EventAttendee>(); attendees.add(new EventAttendee().setEmail("attendeeEmail")); // ... event.setAttendees(attendees); Date startDate = new Date(); Date endDate = new Date(startDate.getTime() + 3600000); DateTime start = new DateTime(startDate, TimeZone.getTimeZone("UTC")); event.setStart(new EventDateTime().setDateTime(start)); DateTime end = new DateTime(endDate, TimeZone.getTimeZone("UTC")); event.setEnd(new EventDateTime().setDateTime(end)); // Import the event into a calendar Event importedEvent = service.events().calendarImport('primary', event).execute(); System.out.println(importedEvent.getId());
Python
Utiliza la biblioteca cliente Python.
event = { 'summary': 'Appointment', 'location': 'Somewhere', 'organizer': { 'email': 'organizerEmail', 'displayName': 'organizerDisplayName' }, 'start': { 'dateTime': '2011-06-03T10:00:00.000-07:00' }, 'end': { 'dateTime': '2011-06-03T10:25:00.000-07:00' }, 'attendees': [ { 'email': 'attendeeEmail', 'displayName': 'attendeeDisplayName', }, # ... ], 'iCalUID': 'originalUID' } imported_event = service.events().import_(calendarId='primary', body=event).execute() print imported_event['id']
PHP
Utiliza la biblioteca cliente de PHP.
$event = new Google_Service_Calendar_Event(); $event->setSummary('Appointment'); $event->setLocation('Somewhere'); $start = new Google_Service_Calendar_EventDateTime(); $start->setDateTime('2011-06-03T10:00:00.000-07:00'); $event->setStart($start); $end = new Google_Service_Calendar_EventDateTime(); $end->setDateTime('2011-06-03T10:25:00.000-07:00'); $event->setEnd($end); $attendee1 = new Google_Service_Calendar_EventAttendee(); $attendee1->setEmail('attendeeEmail'); // ... $attendees = array($attendee1, // ..., ); $event->attendees = $attendees; $organizer = new Google_Service_Calendar_EventOrganizer(); $organizer->setEmail('organizerEmail'); $organizer->setDisplayName('organizerDisplayName'); $event->setOrganizer($organizer); $event->setICalUID('originalUID'); $importedEvent = $service->events->import('primary', $event); echo $importedEvent->getId();
Rita
Utiliza la biblioteca cliente de Ruby.
event = Google::Apis::CalendarV3::Event.new( summary: 'Appointment', location: 'Somewhere', organizer: { email: 'organizerEmail', display_name: 'organizerDisplayName' }, start: { date_time: '2011-06-03T10:00:00.000-07:00' }, end: { date_time: '2011-06-03T10:25:00.000-07:00' }, attendees: [ { email: 'attendeeEmail', display_name: 'attendeeDisplayName', }, # ... ], i_cal_uid: 'originalUID' ) result = client.import_event('primary', event) print result.id
Pruébalo
Usa el Explorador de APIs que se muestra a continuación para llamar a este método en datos en vivo y ver la respuesta.