Sincronização com o Google Calendar
Pode integrar o Bookly com o Google Calendar de forma simples, para sincronizar automaticamente novas reservas entre o Calendário do Bookly e o Google Calendar nos dois sentidos.
O Bookly PRO oferece três modos de sincronização com o Google Calendar:
- Sincronização unidirecional
- Duas vias exclusiva apenas do front-end
- Sincronização bidirecional (Bookly Advanced Google Calendar (Add-on) necessário)
Antes de escolher o modo de sincronização, leia atentamente as instruções a seguir para configurar a ligação entre os dois calendários.
Para configurar a ligação, terá de introduzir o ID do cliente e o Cliente segredo em Bookly > Definições > Calendário Google.
Para encontrar o ID do cliente e o Cliente segredo, siga estes passos:
1. Aceda ao Google Cloud Platform.
2. Crie um novo projeto.

3. Ative a API do Google Calendar:
- No menu lateral esquerdo, selecione Library.
- Pesquise Google Calendar API ou clique nesta ligação para aceder diretamente à página da API.
- Confirme se a API está ativada.

4. Configure as credenciais da aplicação:
- Selecione o seu projeto, clique em OAuth consent screen no menu à esquerda e clique em Get Started para configurar as credenciais.
- Adicione as informações obrigatórias da aplicação e de contacto e clique em Create.


5. Crie as credenciais do cliente OAuth:
- No ecrã seguinte, clique em Create OAuth Client.
- Em Application type, selecione Web application e introduza um nome.
- No campo Authorized redirect URIs, introduza o URI de redirecionamento encontrado em menu do Bookly > Definições > Calendário Google.
- Clique em Create.


6. Introduza as credenciais no Bookly:
- Em OAuth 2.0 Client IDs, selecione o seu projeto para visualizar o Client ID e criar o Client Secret.
- Copie e cole esses valores em menu do Bookly > Definições > Calendário Google.


Importante: para a sincronização bidirecional, o seu site tem de usar HTTPS. A API do Google Calendar só conseguirá enviar notificações para um endereço HTTPS se houver um certificado SSL válido instalado no seu servidor web.
Depois de terminar de configurar as definições, aceda à secção Funcionários, selecione o funcionário, mude para o separador Avançado e ative a ligação para sincronizar as marcações do funcionário com o Google Calendar.

Por fim, inicie sessão na sua conta Google e conceda permissão para que o plugin aceda ao seu Google Calendar.

Se encontrar o Error 403: access_denied durante o processo de ligação, abra a sua aplicação na Google Console, aceda a Google Auth Platform Audience e altere o Publishing status para In production.

Atualmente, existe um limite de 50 tokens de atualização por conta de utilizador por cliente. Se o limite for atingido, a criação de um novo token de atualização invalida automaticamente o token mais antigo, sem aviso. Esse limite não se aplica a contas de serviço.
Ao ligar os funcionários às respetivas contas do Google Calendar, poderá ver um aviso a informar que a Google não verificou a aplicação.
Este ecrã significa que a sua aplicação Google ainda não passou pelo processo de verificação da Google. Pode continuar o processo de ligação da sua equipa: clique em Advanced e prossiga.
Para evitar este aviso no futuro, deve concluir a verificação da sua aplicação no ecrã de consentimento da sua aplicação.
Para os utilizadores atuais que tenham problemas de sincronização depois de adicionar novos funcionários:
Aceda a Definições do Bookly > Calendário Google > URI de redirecionamento. Copie a ligação atualizada e cole-a na Google API Console > Credentials > Web Application > Authorized Redirect URIs.
Já fez isto antes e, como o URI pode mudar com as atualizações regulares do plugin, ocasionalmente será necessário indicar à API da Google qual é o novo URI a autorizar.
Isto provavelmente resolverá o problema de sincronização. Se persistir, avise-nos em support@bookly.net.
O Bookly permite configurar como as informações de reserva serão exibidas no Google Calendar.
Template para o nome do evento
Escolha os detalhes da descrição do evento do Google Calendar criado pelo Bookly. Os códigos disponíveis são {service_name}, {category_name}, {staff_name}, {client_names} e {client_phones}.
Template para a descrição do evento
Use os códigos disponíveis para as informações da marcação que serão exibidas no Google Calendar.
Use {participant.client_email} em vez de {client_email}, e assim por diante, dentro da estrutura {#each participants as participant}{/each} ao configurar a descrição do evento do GC. Isto garante que os detalhes da marcação sejam exibidos corretamente no Google Calendar para reservas em grupo.
Sincronização unidirecional
Se ativar este modo de sincronização, todas as novas marcações criadas no Calendário do Bookly, incluindo os campos personalizados, e as modificações posteriores serão refletidas no Google Calendar.
Duas vias exclusiva apenas do front-end
Se escolher este modo de sincronização, todas as atualizações feitas no Bookly serão refletidas automaticamente no seu Google Calendar. No entanto, os eventos criados originalmente no Google Calendar não serão copiados nem exibidos no Calendário do Bookly. Os eventos do Google Calendar serão considerados ao apresentar os horários disponíveis aos clientes no formulário de reserva. Assim, se houver um evento no Google Calendar, o horário correspondente não ficará disponível para reserva, porque o Bookly considerará esse horário como ocupado.
Tenha em conta que a sincronização de marcações entre os dois calendários pode demorar algum tempo, o que pode causar lentidão ao carregar o passo Hora no formulário de reserva. Para garantir o melhor desempenho, recomendamos limitar o número de eventos obtidos relacionados a esse recurso. Um número excessivo de eventos no Google Calendar pode causar problemas de memória no PHP quando o Bookly tenta recuperar todos os eventos.
Sincronização bidirecional
Se ativar a opção Sincronização bidirecional (requer a instalação do Advanced Google Calendar (Add-on) para o Bookly), terá uma sincronização bidirecional completa. Isto garante que todos os dados do seu calendário do Bookly, além de qualquer modificação posterior na agenda, permaneçam sincronizados com o Google Calendar. Todas as novas reservas criadas ou atualizadas no Calendário do Bookly serão refletidas automaticamente no Google Calendar, e vice-versa.
Importante
Seção intitulada “Importante”Antes de ativar e guardar esta opção de sincronização, é fundamental configurar primeiro as definições no Google Calendar. Além disso, verifique se o seu site usa HTTPS para garantir um processo de sincronização sem problemas.
Leia atentamente as instruções a seguir e visite esta página para mais detalhes sobre a implementação da “sincronização incremental” dos dados do calendário.
A sincronização bidirecional envolve dois passos:
1. A sincronização completa inicial ocorre uma única vez, no início, para alinhar o estado do cliente com o estado do servidor. O cliente obtém um token de sincronização que precisa ser mantido.
Ao ativar a sincronização bidirecional e clicar em Guardar, uma sincronização completa é iniciada. Todas as marcações do Bookly serão copiadas para o Google Calendar, e vice-versa.
No campo Histórico de sincronização de marcações, especifique o número de dias anteriores do calendário que pretende sincronizar. Por exemplo, se introduzir 1, os dois calendários sincronizarão o histórico de marcações desde ontem.
A duração da sincronização inicial pode variar de acordo com o volume de eventos a serem sincronizados.
2. A sincronização incremental é um processo recorrente que atualiza continuamente o cliente com as mudanças desde a última sincronização. Em cada iteração, o cliente fornece o token de sincronização anterior obtido do servidor e armazena o novo token de sincronização recebido na resposta.
A sincronização incremental entra em operação depois de a sincronização completa inicial ser concluída. O Bookly inicia a sincronização incremental quando o Google Calendar notifica o Calendário do Bookly sobre mudanças por meio de notificações push.
Registar o seu domínio
É necessário registar o domínio de qualquer URL que pretenda usar para receber mensagens de notificações push. Além disso, antes de registar o domínio, é preciso verificar a propriedade do mesmo. Este passo é uma medida de prevenção contra abusos, para impedir que alguém use o push para enviar mensagens para o domínio de outra pessoa.
Passo 1: verifique se é o proprietário do domínio
Antes de registar o seu domínio, tem de verificar se é o proprietário do mesmo. Conclua o processo de verificação do site usando o Search Console. Para mais detalhes, consulte a documentação de ajuda sobre verificação do site.
Passo 2: registe o seu domínio
Para registar um domínio verificado como um dos domínios permitidos do seu projeto, siga estes passos:
1. Aceda à página de verificação de domínio na API Console.
2. Clique em Add domain.
3. Preencha o formulário e clique novamente em Add domain.
Neste momento, a Google API Console verifica todos os domínios da lista em comparação com os que verificou no Search Console. Supondo que tenha verificado corretamente todos os domínios, a página é atualizada para mostrar a nova lista de domínios permitidos. Agora pode usar qualquer um desses domínios para receber notificações push.
Se precisar de mais informações técnicas, consulte estas ligações:
https://developers.google.com/calendar/v3/sync
https://developers.google.com/calendar/v3/push
Sincronização manual
Pode iniciar uma nova sincronização incremental ao clicar no botão Calendário Google, localizado no canto superior direito do Calendário do Bookly.
Ao criar um evento All day no Google Calendar, o seu estado é definido como Free por predefinição. Deve alterar o estado para Busy para que esse evento seja exibido no Calendário do Bookly.

Consulte estes artigos para resolver os problemas mais comuns de sincronização com o Google Calendar:
Não consigo ligar um funcionário ao Google Calendar
Há divergências entre o meu site e o Google Calendar. O que posso fazer?