Events: import

Importa um evento. Essa operação é usada para adicionar uma cópia particular de um evento a uma agenda. Somente eventos com um eventType de default podem ser importados.

Comportamento descontinuado:se um evento que não é default for importado, o tipo dele será alterado para default, e todas as propriedades específicas do tipo de evento que ele tiver serão descartadas.

Faça um teste agora ou veja um exemplo.

Solicitação

Solicitação HTTP

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

Parâmetros

Nome do parâmetro Valor Descrição
Parâmetros de caminho
calendarId string Identificador da agenda. Para extrair os IDs de agenda, chame o método calendarList.list. Se você quiser acessar a agenda principal do usuário conectado, use a palavra-chave primary.
Parâmetros de consulta opcionais
conferenceDataVersion integer Número da versão dos dados da conferência aceitos pelo cliente da API. A versão 0 não oferece suporte a dados de conferência e ignora os dados de conferência no corpo do evento. A versão 1 oferece suporte à cópia de dados de conferência e à criação de novas conferências usando o campo createRequest de dados de conferência. O padrão é 0. Os valores aceitos vão de 0 a 1, inclusive.
supportsAttachments boolean Se o cliente da API que executa a operação oferece suporte a anexos de eventos. Opcional. O valor padrão é falso.

Autorização

Esta solicitação requer autorização com pelo menos um dos seguintes escopos:

Escopo
https://www.googleapis.com/auth/calendar
https://www.googleapis.com/auth/calendar.events
https://www.googleapis.com/auth/calendar.app.created
https://www.googleapis.com/auth/calendar.events.owned

Para mais informações, consulte a página de autenticação e autorização.

Corpo da solicitação

No corpo da solicitação, informe um recurso Events com as seguintes propriedades:

Nome da propriedade Valor Descrição Observações
Propriedades obrigatórias
end nested object O horário de término (exclusivo) do evento. Para um evento recorrente, é o horário de término da primeira instância.
iCalUID string Identificador exclusivo do evento, conforme definido na RFC5545. Ele é usado para identificar eventos de forma exclusiva em sistemas de agendamento e precisa ser fornecido ao importar eventos pelo método import.

iCalUID e id não são idênticos, e apenas um deles precisa ser fornecido no momento da criação do evento. Uma diferença na semântica é que, em eventos recorrentes, todas as ocorrências de um evento têm ids diferentes, mas todas compartilham os mesmos iCalUIDs. Para recuperar um evento usando o iCalUID, chame o método events.list usando o parâmetro iCalUID. Para recuperar um evento usando o id, chame o método events.get.

start nested object O horário de início do evento. Para um evento recorrente, é o horário de início da primeira instância.
Propriedades opcionais
anyoneCanAddSelf boolean Se qualquer pessoa pode se convidar para o evento (descontinuado). Opcional. O valor padrão é falso. gravável
attachments[].fileUrl string Link de URL para o anexo.

Para adicionar anexos de arquivos do Google Drive, use o mesmo formato da propriedade alternateLink do recurso Files na API Drive.

Obrigatório ao adicionar um anexo.

gravável
attendees[] list Os participantes do evento. Consulte o guia Eventos com convidados para mais informações sobre como programar eventos com outros usuários da agenda. As contas de serviço precisam usar a delegação de autoridade em todo o domínio para preencher a lista de participantes. gravável
attendees[].additionalGuests integer Número de convidados extras. Opcional. O padrão é 0. gravável
attendees[].comment string O comentário de resposta do participante. Opcional. gravável
attendees[].displayName string O nome do participante, se disponível. Opcional. gravável
attendees[].email string O endereço de e-mail do participante, se disponível. Esse campo precisa estar presente ao adicionar um participante. Ele precisa ser um endereço de e-mail válido de acordo com o RFC5322.

Obrigatório ao adicionar um participante.

gravável
attendees[].optional boolean Indica se o participante é opcional. Opcional. O valor padrão é falso. gravável
attendees[].resource boolean Se o participante é um recurso. Só pode ser definido quando o participante é adicionado ao evento pela primeira vez. As modificações subsequentes são ignoradas. Opcional. O valor padrão é falso. gravável
attendees[].responseStatus string O status da resposta do participante. Os valores possíveis são:
  • "needsAction": o participante não respondeu ao convite (recomendado para novos eventos).
  • "declined": o participante recusou o convite.
  • "tentative": o participante aceitou provisoriamente o convite.
  • "accepted": o participante aceitou o convite.
gravável
attendeesOmitted boolean Se os participantes foram omitidos da representação do evento. Ao extrair um evento, isso pode ser devido a uma restrição especificada pelo parâmetro de consulta maxAttendee. Ao atualizar um evento, esse campo pode ser usado apenas para atualizar a resposta do participante. Opcional. O valor padrão é falso. gravável
colorId string A cor do evento. É um ID que se refere a uma entrada na seção event da definição de cores. Consulte o endpoint de cores. Opcional. gravável
conferenceData nested object Informações relacionadas à videoconferência, como detalhes de uma videoconferência do Google Meet. Para criar novos detalhes de conferência, use o campo createRequest. Para manter as mudanças, defina o parâmetro de solicitação conferenceDataVersion como 1 para todas as solicitações de modificação de evento. gravável
description string É a descrição do evento. Pode conter HTML. Opcional. gravável
end.date date A data, no formato "aaaa-mm-dd", se for um evento de dia inteiro. gravável
end.dateTime datetime A hora, como um valor de data/hora combinado (formatado de acordo com o RFC3339). Um deslocamento de fuso horário é necessário, a menos que um fuso horário seja especificado explicitamente em timeZone. gravável
end.timeZone string O fuso horário em que a hora é especificada. (Formatado como um nome do banco de dados de fuso horário IANA, por exemplo, "Europe/Zurich"). Para eventos recorrentes, esse campo é obrigatório e especifica o fuso horário em que a recorrência é expandida. Para eventos únicos, esse campo é opcional e indica um fuso horário personalizado para o início/término do evento. gravável
extendedProperties.private object Propriedades particulares da cópia do evento que aparece nesta agenda. gravável
extendedProperties.shared object Propriedades compartilhadas entre cópias do evento nas agendas de outros participantes. gravável
focusTimeProperties nested object Dados do evento "Horário de concentração". Usado se eventType for focusTime. gravável
gadget.display string O modo de exibição do gadget. Obsoleto. Os valores possíveis são:
  • "icon": o gadget aparece ao lado do título do evento na visualização da agenda.
  • "chip": o gadget aparece quando o evento é clicado.
gravável
gadget.height integer A altura do gadget em pixels. A altura precisa ser um número inteiro maior que 0. Opcional. Obsoleto. gravável
gadget.preferences object Preferências. gravável
gadget.title string O título do gadget. Obsoleto. gravável
gadget.type string O tipo do gadget. Obsoleto. gravável
gadget.width integer A largura do gadget em pixels. A largura precisa ser um número inteiro maior que 0. Opcional. Obsoleto. gravável
guestsCanInviteOthers boolean Se os participantes, exceto o organizador, podem convidar outras pessoas para o evento. Opcional. O padrão é "true". gravável
guestsCanModify boolean Se os participantes, exceto o organizador, podem modificar o evento. Opcional. O valor padrão é falso. gravável
guestsCanSeeOtherGuests boolean Se os participantes, além do organizador, podem ver quem são os participantes do evento. Opcional. O padrão é "true". gravável
location string Localização geográfica do evento como texto de formato livre. Opcional. gravável
organizer object O organizador do evento. Se o organizador também for um participante, isso será indicado com uma entrada separada em attendees com o campo organizer definido como "True". Para mudar o organizador, use a operação move. Somente leitura, exceto ao importar um evento. gravável
organizer.displayName string O nome do organizador, se disponível. gravável
organizer.email string O endereço de e-mail do organizador, se disponível. Ele precisa ser um endereço de e-mail válido de acordo com o RFC5322. gravável
originalStartTime.date date A data, no formato "aaaa-mm-dd", se for um evento de dia inteiro. gravável
originalStartTime.dateTime datetime A hora, como um valor de data/hora combinado (formatado de acordo com o RFC3339). Um deslocamento de fuso horário é necessário, a menos que um fuso horário seja especificado explicitamente em timeZone. gravável
originalStartTime.timeZone string O fuso horário em que a hora é especificada. (Formatado como um nome do banco de dados de fuso horário IANA, por exemplo, "Europe/Zurich"). Para eventos recorrentes, esse campo é obrigatório e especifica o fuso horário em que a recorrência é expandida. Para eventos únicos, esse campo é opcional e indica um fuso horário personalizado para o início/término do evento. gravável
outOfOfficeProperties nested object Dados do evento fora do escritório. Usado se eventType for outOfOffice. gravável
recurrence[] list Lista de linhas RRULE, EXRULE, RDATE e EXDATE para um evento recorrente, conforme especificado na RFC5545. As linhas DTSTART e DTEND não são permitidas neste campo. Os horários de início e término do evento são especificados nos campos start e end. Esse campo é omitido para eventos únicos ou instâncias de eventos recorrentes. gravável
reminders.overrides[] list Se o evento não usar os lembretes padrão, a lista vai mostrar os lembretes específicos para o evento ou, se não houver nenhum, vai indicar que não há lembretes definidos para o evento. O número máximo de lembretes de substituição é 5. gravável
reminders.overrides[].method string O método usado por esse lembrete. Os valores possíveis são:
  • "email": os lembretes são enviados por e-mail.
  • "popup": os lembretes são enviados por um pop-up da interface.

Obrigatório ao adicionar um lembrete.

gravável
reminders.overrides[].minutes integer Número de minutos antes do início do evento em que o lembrete precisa ser acionado. Os valores válidos estão entre 0 e 40320 (quatro semanas em minutos).

Obrigatório ao adicionar um lembrete.

gravável
reminders.useDefault boolean Se os lembretes padrão da agenda se aplicam ao evento. gravável
sequence integer Número de sequência conforme o iCalendar. gravável
source.title string Título da fonte, por exemplo, o título de uma página da Web ou o assunto de um e-mail. gravável
source.url string URL da origem que aponta para um recurso. O esquema de URL precisa ser HTTP ou HTTPS. gravável
start.date date A data, no formato "aaaa-mm-dd", se for um evento de dia inteiro. gravável
start.dateTime datetime A hora, como um valor de data/hora combinado (formatado de acordo com o RFC3339). Um deslocamento de fuso horário é necessário, a menos que um fuso horário seja especificado explicitamente em timeZone. gravável
start.timeZone string O fuso horário em que a hora é especificada. (Formatado como um nome do banco de dados de fuso horário IANA, por exemplo, "Europe/Zurich"). Para eventos recorrentes, esse campo é obrigatório e especifica o fuso horário em que a recorrência é expandida. Para eventos únicos, esse campo é opcional e indica um fuso horário personalizado para o início/término do evento. gravável
status string Status do evento. Opcional. Os valores possíveis são:
  • "confirmed": o evento foi confirmado. Esse é o status padrão.
  • "tentative": o evento está provisoriamente confirmado.
  • "cancelled": o evento foi cancelado (excluído). O método list retorna eventos cancelados apenas na sincronização incremental (quando syncToken ou updatedMin são especificados) ou se a flag showDeleted estiver definida como true. O método get sempre os retorna.

    Um status cancelado representa dois estados diferentes, dependendo do tipo de evento:

    1. As exceções canceladas de um evento recorrente não cancelado indicam que essa instância não deve mais ser apresentada ao usuário. Os clientes precisam armazenar esses eventos durante a vida útil do evento recorrente pai.

      As exceções canceladas só têm valores preenchidos para os campos id, recurringEventId e originalStartTime. Os outros campos podem estar vazios.

    2. Todos os outros eventos cancelados representam eventos excluídos. Os clientes precisam remover as cópias sincronizadas localmente. Esses eventos cancelados vão desaparecer, então não conte com eles para sempre estarem disponíveis.

      Só é possível garantir que o campo id será preenchido para eventos excluídos.

    Na agenda do organizador, os eventos cancelados continuam a mostrar os detalhes do evento (resumo, local etc.) para que possam ser restaurados (não excluídos). Da mesma forma, os eventos para os quais o usuário foi convidado e removido manualmente continuam fornecendo detalhes. No entanto, as solicitações de sincronização incremental com showDeleted definido como falso não vão retornar esses detalhes.

    Se um evento mudar de organizador (por exemplo, pela operação move) e o organizador original não estiver na lista de participantes, ele vai deixar um evento cancelado em que apenas o campo id será preenchido.

gravável
summary string Título do evento. gravável
transparency string Se o evento bloqueia um período na agenda. Opcional. Os valores possíveis são:
  • "opaque": valor padrão. O evento bloqueia o tempo na agenda. Isso equivale a definir Mostrar como como Ocupado na interface da Agenda.
  • "transparent": o evento não bloqueia o horário na agenda. Isso equivale a definir Mostrar como como Disponível na interface da Agenda.
gravável
visibility string Visibilidade do evento. Opcional. Os valores possíveis são:
  • "default": usa a visibilidade padrão para eventos na agenda. Esse é o valor padrão.
  • "public": o evento é público e os detalhes dele ficam visíveis para todos os leitores da agenda.
  • "private": o evento é particular e apenas os participantes podem acessar os detalhes.
  • "confidential": o evento é particular. Esse valor é fornecido por motivos de compatibilidade.
gravável

Resposta

Se for bem-sucedido, esse método retornará um recurso Events no corpo da resposta.

Exemplos

Observação: os exemplos de código disponíveis para esse método não representam todas as linguagens de programação compatíveis. Consulte a página de bibliotecas cliente para ver uma lista de linguagens compatíveis.

Java

Usa a 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

Usa a biblioteca cliente de 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

Usa a 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();

Ruby

Usa a biblioteca de cliente 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

Confira!

Use o APIs Explorer abaixo para chamar esse método em dados ativos e ver a resposta.