Events: insert

Cria um evento. Faça um teste agora ou veja um exemplo.

Solicitação

Solicitação HTTP

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

Parâmetros

Nome do parâmetro Valor Descrição
Parâmetros de caminho
calendarId string Identificador da agenda. Para recuperar IDs de agendas, chame o método calendarList.list. Se você quiser acessar a agenda principal do usuário conectado no momento, use a palavra-chave "primary".
Parâmetros de consulta opcionais
conferenceDataVersion integer Número da versão dos dados da conferência compatível com o cliente da API. A versão 0 não aceita dados de videoconferência e ignora os dados de videoconferência no corpo do evento. A versão 1 permite suporte para cópia de ConferenceData, bem como para criação de novas conferências usando o campo createRequest de conferênciasData. O padrão é 0. Os valores aceitáveis são de 0 a 1, inclusive.
maxAttendees integer O número máximo de participantes a serem incluídos na resposta. Se houver mais participantes do que o número especificado, apenas o participante será retornado. Opcional.
sendNotifications boolean Obsoleto. Use sendUpdates.

Se é necessário enviar notificações sobre a criação do novo evento. Alguns e-mails ainda poderão ser enviados mesmo que você defina o valor como false. O padrão é false.
sendUpdates string Indica se as notificações sobre a criação do novo evento serão enviadas. Talvez alguns e-mails ainda sejam enviados. O padrão é false.

Os valores aceitáveis são os seguintes:
  • "all": as notificações são enviadas para todos os convidados.
  • "externalOnly": as notificações são enviadas apenas para convidados que não são do Google Agenda.
  • "none": nenhuma notificação é enviada.
supportsAttachments boolean Se a operação de execução do cliente da API oferece suporte a anexos de evento. 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

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

Corpo da solicitação

No corpo da solicitação, forneça um recurso de eventos 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.
start nested object É o horário de início (inclusivo) do evento. Para um evento recorrente, é o horário de início da primeira instância.
Propriedades opcionais
anyoneCanAddSelf boolean Se alguém pode convidar a si mesmo para o evento (descontinuado). Opcional. O valor padrão é falso. gravável
attachments[].fileUrl string Link para o anexo.

Para adicionar arquivos Google anexos, 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 hóspedes adicionais. Opcional. O padrão é 0. gravável
attendees[].comment string O comentário da resposta do convidado. Opcional. gravável
attendees[].displayName string O nome do participante, se disponível. Opcional. gravável
attendees[].email string Mostra o endereço de e-mail do convidado, se disponível. Este campo precisa estar presente ao adicionar um convidado. Precisa ser um endereço de e-mail válido de acordo com a RFC5322.

Obrigatório ao adicionar um convidado.

gravável
attendees[].optional boolean Se este é um convidado opcional. Opcional. O valor padrão é falso. gravável
attendees[].resource boolean Se o convidado é um recurso. Só pode ser definido quando o convidado é adicionado ao evento pela primeira vez. As modificações subsequentes serão ignoradas. Opcional. O valor padrão é falso. gravável
attendees[].responseStatus string O status da resposta do convidado. Os valores possíveis são:
  • "needsAction": o participante não respondeu ao convite (recomendado para novos eventos).
  • "declined": o convidado recusou o convite.
  • "tentative": o participante aceitou o convite provisoriamente.
  • "accepted": o convidado aceitou o convite.
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 da videoconferência, use o campo createRequest. Para manter as mudanças, defina o parâmetro de solicitação conferenceDataVersion como 1 em todas as solicitações de modificação de eventos. 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 e hora combinado (formatado de acordo com RFC3339). O ajuste de fuso horário é obrigatório, a menos que 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 IANA de fuso horário, por exemplo, "Europa/Zurique". Para eventos recorrentes, este campo é obrigatório e especifica o fuso horário em que a recorrência é expandida. Este campo é opcional para eventos únicos e indica um fuso horário personalizado para o início/fim do evento. gravável
extendedProperties.private object As propriedades que são particulares para a cópia do evento que aparece nesta agenda. gravável
extendedProperties.shared object As propriedades compartilhadas entre as cópias do evento nas agendas dos outros participantes. gravável
gadget.display string Modo de exibição do gadget. Obsoleto. Os valores possíveis são:
  • "icon": o gadget é exibido ao lado do título do evento na visualização da agenda.
  • "chip": o gadget é exibido 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 outras pessoas além do organizador podem convidar outras pessoas para o evento. Opcional. O padrão é "True". gravável
guestsCanModify boolean Se os participantes que não são o organizador podem modificar o evento. Opcional. O valor padrão é falso. gravável
guestsCanSeeOtherGuests boolean Se outras pessoas além do organizador podem ver quem são os participantes do evento. Opcional. O padrão é "True". gravável
id string Identificador opaco do evento. Ao criar novos eventos únicos ou recorrentes, você pode especificar os IDs deles. Os IDs fornecidos devem seguir estas regras:
  • Os caracteres permitidos no ID são aqueles usados na codificação base32hex, isto é, letras a-v minúsculas e dígitos de 0-9, consulte a seção 3.1.2 em RFC2938
  • o ID precisa ter entre 5 e 1024 caracteres
  • o ID precisa ser exclusivo por agenda
Devido à natureza distribuída globalmente do sistema, não podemos garantir que os conflitos de ID serão detectados no momento da criação do evento. Para minimizar o risco de colisões, recomendamos o uso de um algoritmo UUID estabelecido, como o descrito na RFC4122.

Se você não especificar um ID, ele será gerado automaticamente pelo servidor.

Observe que icalUID e id não são idênticos e apenas um deles deve ser fornecido no momento da criação do evento. Uma diferença na semântica delas é que, em eventos recorrentes, todas as ocorrências de um evento têm ids diferentes, enquanto todas compartilham as mesmas icalUIDs.

gravável
location string Localização geográfica do evento como texto em formato livre. Opcional. 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 e hora combinado (formatado de acordo com RFC3339). O ajuste de fuso horário é obrigatório, a menos que 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 IANA de fuso horário, por exemplo, "Europa/Zurique". Para eventos recorrentes, este campo é obrigatório e especifica o fuso horário em que a recorrência é expandida. Este campo é opcional para eventos únicos e indica um fuso horário personalizado para o início/fim do evento. gravável
recurrence[] list Lista de linhas RRULE, EXRULE, RDATE e EXDATE para um evento recorrente, conforme especificado em 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, essa ação listará os lembretes específicos do evento ou, se não definidos, indica que não há lembretes definidos para o evento. O número máximo de lembretes de modificação é 5. gravável
reminders.overrides[].method string O método usado por este lembrete. Os valores possíveis são:
  • "email": os lembretes são enviados por e-mail.
  • "popup": os lembretes são enviados por meio de um pop-up da IU.

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 será acionado. Os valores válidos estão entre 0 e 40.320 (4 semanas em minutos).

Obrigatório ao adicionar um lembrete.

gravável
reminders.useDefault boolean Indica se os lembretes padrão da agenda se aplicam ao evento. gravável
sequence integer Número da sequência de acordo com o iCalendar. gravável
source.title string O 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 do 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 e hora combinado (formatado de acordo com RFC3339). O ajuste de fuso horário é obrigatório, a menos que 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 IANA de fuso horário, por exemplo, "Europa/Zurique". Para eventos recorrentes, este campo é obrigatório e especifica o fuso horário em que a recorrência é expandida. Este campo é opcional para eventos únicos e indica um fuso horário personalizado para o início/fim 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 é confirmado provisoriamente.
  • "cancelled": o evento é cancelado (excluído). O método list retorna eventos cancelados somente na sincronização incremental (quando syncToken ou updatedMin são especificados) ou quando a sinalização showDeleted está definida como true. O método get sempre as retorna.

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

    1. 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 devem armazenar esses eventos durante a vida útil do evento recorrente pai.

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

    2. Todos os outros eventos cancelados representam eventos excluídos. Os clientes devem remover as cópias sincronizadas localmente. Esses eventos cancelados desaparecerão, portanto, não confie na disponibilidade indefinidamente.

      Os eventos excluídos só podem ter o campo id preenchido.

    Na agenda do organizador, os eventos cancelados continuam expondo os detalhes dos eventos (resumo, local etc.) para que sejam restaurados (com a exclusão cancelada). Da mesma forma, os eventos para os quais o usuário foi convidado e que ele removeu manualmente continuam fornecendo detalhes. No entanto, as solicitações de sincronização incremental com showDeleted definido como falso não retornarão esses detalhes.

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

gravável
summary string Título do evento. gravável
transparency string Se o evento bloqueia o horário na agenda. Opcional. Os valores possíveis são:
  • "opaque": valor padrão. O evento bloqueia o horário na agenda. Isso equivale a definir Mostrar como como Ocupado na IU do Agenda.
  • "transparent": o evento não bloqueia o horário na agenda. Isso equivale a definir Mostrar como como Disponível na IU do 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 é privado, e apenas os participantes podem ver os detalhes.
  • "confidential": o evento é privado. Esse valor é fornecido por motivos de compatibilidade.
gravável

Resposta

Se for bem-sucedido, este 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.

// 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 a 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 a 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 a biblioteca de 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

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

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

Usa a 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 a biblioteca de 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);
});

Confira!

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