Os campos dos recursos de eventos abrangem os dados mais comuns associados a um evento, como local, horário de início etc., mas os aplicativos podem querer armazenar outros metadados específicos do caso de uso. A API Calendar oferece a possibilidade de definir pares de chave-valor ocultos com um evento, chamados propriedades estendidas. As propriedades estendidas facilitam o armazenamento de dados específicos do aplicativo para um evento sem precisar usar um banco de dados externo.
Visibilidade
Há dois tipos de propriedades estendidas disponíveis: privadas e compartilhadas.
As propriedades compartilhadas são visíveis e editáveis por todos os participantes de um evento, enquanto
as propriedades privadas são definidas na "cópia" local de um participante do evento. Mais
especificamente, as propriedades privadas são específicas para o calendarId
e o eventId
usados na solicitação, enquanto as propriedades compartilhadas são mostradas independentemente do
calendarId
usado na solicitação.
Adicionar e atualizar propriedades
As propriedades estendidas são definidas no recurso Eventos e, como outros campos, podem ser definidas em solicitações de inserção, atualização e patch. O uso de solicitações de correção é o método preferencial, porque permite manipular algumas propriedades e deixar outras intocadas. Adicionar uma nova propriedade com a mesma chave vai substituir todas as propriedades existentes com a mesma chave. O exemplo a seguir mostra como definir uma propriedade privada:
PATCH https://www.googleapis.com/calendar/v3/calendars/calendarId/events/eventId
{
"extendedProperties": {
"private": {
"petsAllowed": "yes"
}
}
}
Excluir propriedades
Todas as propriedades que não forem incluídas em uma solicitação de atualização serão excluídas, mas uma abordagem melhor é fazer uma solicitação de patch para definir o valor como nulo. O exemplo a seguir mostra a exclusão de uma propriedade particular:
PATCH https://www.googleapis.com/calendar/v3/calendars/calendarId/events/eventId
{
"extendedProperties": {
"private": {
"petsAllowed": null
}
}
}
Pesquisar propriedades
É possível pesquisar eventos com base nos valores das propriedades estendidas usando uma
solicitação Events.list.
Defina o campo
privateExtendedProperty
ou
sharedExtendedProperty
para uma restrição no formato propertyName=value
,
que pesquisa propriedades privadas e compartilhadas, respectivamente. O exemplo
a seguir retorna eventos com a propriedade privada petsAllowed=yes
:
GET https://www.googleapis.com/calendar/v3/calendars/calendarId/events ?privateExtendedProperty=petsAllowed%3Dyes
Você pode repetir esses campos várias vezes, e as restrições são agrupadas por OR.
Portanto, os eventos só precisam corresponder a uma das restrições para serem retornados.
O exemplo a seguir encontra eventos com a propriedade particular
petsAllowed=yes
ou isOutside=yes
:
GET https://www.googleapis.com/calendar/v3/calendars/calendarId/events ?privateExtendedProperty=petsAllowed%3Dyes &privateExtendedProperty=isOutside%3Dyes
No entanto, as restrições em propriedades privadas e compartilhadas são AND'ed juntas.
Portanto, os eventos precisam corresponder aos dois conjuntos de restrições para serem retornados.
O exemplo a seguir encontra eventos com a propriedade particular petsAllowed=yes
e a propriedade pública createdBy=myApp
:
GET https://www.googleapis.com/calendar/v3/calendars/calendarId/events ?privateExtendedProperty=petsAllowed%3Dyes &sharedExtendedProperty=createdBy%3DmyApp
Limites
- O tamanho máximo da chave de uma propriedade é de 44 caracteres, e as propriedades com chaves mais longas serão descartadas silenciosamente.
- O tamanho máximo do valor de uma propriedade é de 1.024 caracteres, e as propriedades com valores mais longos serão truncadas silenciosamente.
- Um evento pode ter até 300 propriedades, totalizando até 32 KB (tamanho das chaves + tamanho dos valores). Essas 300 propriedades incluem propriedades compartilhadas e privadas em todas as "cópias" do evento.