Nesta página, explicamos a propriedade eventType e as especificações dos tipos de eventos disponíveis na API Google Calendar.
O Google Agenda permite que os usuários criem eventos genéricos, bem como eventos projetados para casos de uso específicos e com propriedades personalizadas.
O tipo de evento pode ser descoberto nos seguintes lugares da API:
- Todos os eventos são retornados com um
eventType. eventTypeprecisa ser definido ao criar ou atualizar um recurso de evento. Se não for definido,'default'tipo será usado.eventTypespodem ser especificados em uma chamadaEvents:listpara listar eventos de tipos específicos. Se nenhum tipo for especificado, todos os tipos de eventos serão retornados.eventTypespodem ser especificados em uma chamadaEvents:watchpara se inscrever em atualizações de eventos de tipos específicos. Se nenhum tipo for especificado, a solicitação resultará na inscrição em todos os tipos de eventos.
Evento padrão
Os eventos com o tipo default são criados e usados como um dos principais recursos da API Google Calendar. Eles oferecem suporte a uma ampla variedade de
propriedades
que podem ser usadas para personalizar ainda mais o evento.
Consulte Criar eventos para começar a trabalhar com eventos do Google Agenda.
Aniversário
Os aniversários são eventos especiais de dia inteiro com recorrência anual.
Os usuários podem criar eventos de aniversário manualmente no Google Agenda. Além disso, as informações de aniversário são sincronizadas com o Google Agenda quando os usuários adicionam uma pessoa e incluem o aniversário dela e outras datas importantes nos Contatos do Google. O próprio aniversário dos usuários também é sincronizado com o Google Agenda no perfil da Conta do Google.
A API Google Calendar oferece suporte aos métodos get,
instances e
list para ler eventos de aniversário. eventTypes podem ser
definidos como 'birthday' para listar apenas eventos de aniversário. Se nenhum tipo for especificado, os aniversários serão listados junto com todos os outros tipos de eventos.
Nos objetos Event retornados, inspecione o
birthdayProperties
campo para mais detalhes sobre esse evento especial. birthdayProperties tem os seguintes campos:
type: tipo desse evento especial, seja um aniversário, um aniversário de casamento ou outra data importante.customTypeName: rótulo especificado pelo usuário para esse evento especial. Ele é preenchido setypeestiver definido como'custom'.contact: nome do recurso do contato ao qual esse evento especial está vinculado, se houver. Ele tem o formato'people/c12345'e pode ser usado para buscar detalhes de contato na API People.
A API permite criar eventos de aniversário usando o
insert método com as seguintes
especificações:
eventTypeestá definido como'birthday'.starteendcampos precisam definir um evento de dia inteiro que abrange exatamente um dia.visibilityO valor do campo precisa ser'private'.transparencyvalor do campo precisa ser'transparent'.- É necessário ter uma recorrência anual, o que significa que o
recurrencecampo precisa ser'RRULE:FREQ=YEARLY'. Os eventos de aniversário que caem em 29 de fevereiro precisam ter a seguinte regra de recorrência:'RRULE:FREQ=YEARLY;BYMONTH=2;BYMONTHDAY=-1'. - Pode ter um
colorId,summaryereminders. - Pode ter
birthdayProperties. Se especificado,typeprecisa ser'birthday', ecustomTypeNameecontactprecisam estar vazios. - Não é possível ter outras propriedades de evento.
A API permite atualizar o
colorId,
summary e
reminders de eventos de aniversário
usando os métodos update
e patch.
start e
end campos também podem ser atualizados
para mudar a data do evento. Nesse caso, os novos valores precisam definir um evento de dia inteiro que abrange exatamente um dia. Os detalhes de tempo de um evento de aniversário não podem ser
atualizados se o evento estiver vinculado a um
contact, ou
se o type for
'self'.
A API Google Calendar não permite criar eventos de aniversário com
birthdayProperties personalizados nem
atualizar essas propriedades. As datas importantes podem ser editadas com a
API People, e as mudanças são sincronizadas com
o Google Agenda. Da mesma forma, os usuários podem editar o próprio aniversário no
perfil da Conta do Google, e ele é sincronizado
com o Google Agenda.
As solicitações que tentam criar ou atualizar um aniversário de uma maneira não compatível falharão. Nesse caso, inspecione a mensagem de erro para identificar o problema.
A API oferece suporte à operação import para eventos de aniversário. No entanto, o evento será importado como um evento padrão. Em
outras palavras, o eventType será
'default'.
A API oferece suporte ao watch método
para se inscrever em mudanças em eventos de aniversário no Google Agenda.
eventTypes podem ser definidos como
'birthday' para se inscrever em atualizações de eventos de aniversário. Se nenhum tipo for especificado, todos os tipos de eventos, incluindo aniversários, serão inscritos.
Os eventos de aniversário podem ser excluídos usando o
delete método da
API Google Calendar. A exclusão de um evento de aniversário do Google Agenda não
afeta os dados nos Contatos do Google ou
perfil da Conta do Google.
Não é possível mudar o organizador de um evento de aniversário usando
move ou
update métodos.
Eventos do Gmail
Os eventos gerados automaticamente no Gmail
têm o tipo de evento 'fromGmail'.
A API Google Calendar não permite criar esse tipo de evento usando o
insert método.
A API permite atualizar as propriedades estendidas
colorId,
reminders,
visibility,
transparency,
status,
attendees,
private
e shared
usando os métodos update
e patch.
A API oferece suporte aos métodos get e
list para ler eventos do
Gmail. eventTypes podem ser
definidos como 'fromGmail' para listar apenas eventos gerados no Gmail. Se nenhum tipo for especificado, os eventos do Gmail serão listados junto com todos os outros tipos de eventos.
A API oferece suporte ao watch método
para se inscrever em mudanças em eventos do Gmail no Google Agenda. Se nenhum tipo for
especificado, todos os tipos de eventos, incluindo 'fromGmail', serão inscritos.
Os eventos do Gmail podem ser excluídos usando o
delete método da
API Google Calendar.
Não é possível mudar o organizador de um evento do Gmail usando
move ou
update métodos.
Horário de concentração, fora do escritório e local de trabalho
A API Google Calendar pode ser usada para criar e gerenciar eventos que mostram o status dos usuários do Google Agenda.
Esses recursos estão disponíveis apenas nas agendas principais e para alguns usuários do Google Agenda. Consulte Gerenciar eventos de horário de concentração, fora do escritório e local de trabalho para saber mais.
Conhecer os tipos de eventos no Google Apps Script
O Google Apps Script é uma linguagem de script na nuvem baseada em JavaScript que permite criar aplicativos empresariais que se integram ao Google Workspace. Os scripts são desenvolvidos em um editor de código baseado no navegador e são armazenados e executados nos servidores do Google. Consulte também o Guia de início rápido do Google Apps Script para começar a usar o Apps Script para enviar solicitações à API Google Calendar.
As instruções a seguir descrevem como ler e gerenciar eventos usando a API Google Calendar como um serviço avançado no Google Apps Script. Para uma lista completa de recursos e métodos da API Google Calendar, consulte a documentação de referência.
Criar e configurar o script
- Crie um script acessando script.google.com/create.
- No painel à esquerda, ao lado de Serviços, clique em Adicionar um serviço .
- Selecione API Google Calendar e clique em Adicionar.
- Depois de ativada, a API aparece no painel à esquerda. Os métodos e classes disponíveis na API podem ser listados usando a palavra-chave Calendar no editor.
(Opcional) Atualizar o projeto na nuvem do Google
Cada projeto do Google Apps Script tem um projeto na nuvem associado. O script pode usar o projeto padrão que o Google Apps Script cria automaticamente. Se você quiser usar um projeto personalizado do Google Cloud, consulte Mudar para um projeto padrão diferente na nuvem. Depois de definir o projeto na nuvem do Google Cloud, selecione Editor no lado esquerdo para voltar ao editor de código.
Adicionar código ao script
O exemplo de código a seguir mostra como listar, ler e criar eventos com diferentes valores de eventType.
Cole o seguinte no editor de código.
const CALENDAR_ID = 'CALENDAR_ID' || 'primary'; /** Lists default events. */ function listDefaultEvents() { listEvents('default'); } /** Lists birthday events. */ function listBirthdays() { listEvents('birthday'); } /** Lists events from Gmail. */ function listEventsFromGmail() { listEvents('fromGmail'); } /** * Lists events with the given event type. If no type is specified, lists all events. * See https://developers.google.com/workspace/calendar/api/v3/reference/events/list */ function listEvents(eventType = undefined) { // Query parameters for the list request. const optionalArgs = { eventTypes: eventType ? [eventType] : undefined, singleEvents: true, timeMax: '2024-07-30T00:00:00+01:00', timeMin: '2024-07-29T00:00:00+01:00', } try { var response = Calendar.Events.list(CALENDAR_ID, optionalArgs); response.items.forEach(event => console.log(event)); } catch (exception) { console.log(exception.message); } } /** * Reads the event with the given eventId. * See https://developers.google.com/workspace/calendar/api/v3/reference/events/get */ function readEvent() { try { var response = Calendar.Events.get(CALENDAR_ID, 'EVENT_ID'); console.log(response); } catch (exception) { console.log(exception.message); } } /** Creates a default event. */ function createDefaultEvent() { const event = { start: { dateTime: '2024-07-30T10:30:00+01:00'}, end: { dateTime: '2024-07-30T12:30:00+01:00'}, description: 'Created from Apps Script.', eventType: 'default', summary: 'Sample event', } createEvent(event); } /** Creates a birthday event. */ function createBirthday() { const event = { start: { date: '2024-01-29' }, end: { date: '2024-01-30' }, eventType: 'birthday', recurrence: ["RRULE:FREQ=YEARLY"], summary: "My friend's birthday", transparency: "transparent", visibility: "private", } createEvent(event); } /** * Creates a Calendar event. * See https://developers.google.com/workspace/calendar/api/v3/reference/events/insert */ function createEvent(event) { try { var response = Calendar.Events.insert(event, CALENDAR_ID); console.log(response); } catch (exception) { console.log(exception.message); } }Substitua:
CALENDAR_ID: endereço de e-mail da agenda para recuperar e criar eventos. Essa constante é inicialmente definida como'primary', que é uma palavra-chave para acessar a agenda principal do usuário conectado. A mudança desse valor permite ler eventos nas agendas de outros usuários a que você tem acesso.EVENT_ID: ID do evento. Você pode chamar o Events:list para recuperar IDs de eventos.
Executar o exemplo de código
- Acima do editor de código, selecione a função a ser executada no menu suspenso e clique em Executar.
- Na primeira execução, você será solicitado a autorizar o acesso. Revise e permita que o Apps Script acesse sua agenda.
- Você pode inspecionar os resultados da execução do script no Registro de execução que aparece na parte de baixo da janela.