Como corrigir o Event Calendar que não sincroniza no Essential Addons
O que é Event Calendar que não sincroniza no Essential Addons?
O Event Calendar do Essential Addons e um widget do Elementor que exibe uma agenda de eventos a partir de três fontes possiveis, segundo a documentação oficial: eventos manuais cadastrados no próprio widget, um calendário do Google via Google Calendar API, ou os eventos do plugin The Events Calendar instalado no WordPress. Cada fonte tem um caminho de dados diferente, e o widget so mostra o que a fonte selecionada entrega.
A falha de sincronizacao acontece quando esse caminho de dados se rompe. Na fonte Google Calendar, o widget busca os eventos pela API do Google e precisa de uma chave de API valida, do ID correto do calendário e do calendário marcado como público; se qualquer um desses falhar, nenhum evento carrega. Na fonte The Events Calendar, o widget le os eventos daquele plugin, entao se o plugin não estiver instalado e ativo, ou não houver eventos publicados, a agenda aparece vazia mesmo com o widget configurado.
Como identificar
- O widget EA Event Calendar renderiza a grade do mes, mas nenhum evento aparece nos dias, mesmo havendo eventos na fonte escolhida.
- Eventos novos criados no Google Calendar ou no The Events Calendar não aparecem no widget, ou demoram muito para refletir.
- Ao selecionar a fonte Google Calendar, o calendário fica completamente vazio depois de salvar a chave de API e o ID.
- Mensagem do tipo ‘No events found’ ou um calendário em branco aparece no frontend onde deveria haver eventos.
- Eventos antigos continuam aparecendo, mas alterações feitas na fonte original não se refletem no widget.
Como prevenir
- Restrinja a chave da Google Calendar API por API e por referenciador HTTP ao domínio do site, para evitar abuso e manter a chave valida ao longo do tempo.
- Padronize uma fonte de eventos por widget e documente qual e usada em cada página, evitando trocar a fonte sem reconfigurar chave, ID ou plugin.
- Mantenha o Essential Addons, o Elementor e o The Events Calendar sempre na versão estavel mais recente, validando em staging antes de subir.
- Exclua a página com o calendário das regras agressivas de cache ou defina um TTL curto, para que eventos novos da fonte apareçam rapidamente no frontend.
Causa
- A fonte selecionada no widget e Google Calendar, mas a chave de Google Calendar API esta incorreta, expirada ou foi gerada sem habilitar a Google Calendar API no Google Cloud Console, entao a requisicao retorna sem eventos.
- O Calendar ID informado no widget esta errado: foi colado o endereco de compartilhamento em vez do ID real do calendário obtido nas configurações do Google Calendar, e o widget consulta um calendário que não existe.
- O calendário do Google esta com visibilidade privada; como o widget acessa via chave de API pública, um calendário não marcado como público não devolve nenhum evento.
- A fonte selecionada e The Events Calendar, mas o plugin The Events Calendar não esta instalado e ativo, ou não ha eventos publicados nele, deixando a agenda do widget vazia.
- Um plugin de cache (de página ou de objeto) esta servindo uma versão antiga da página onde o widget esta, mascarando os eventos recem-adicionados na fonte original.
Como resolver
- Confirme qual fonte de eventos esta selecionada no widget: Abra a página no editor do Elementor, clique no widget EA Event Calendar e veja a opção de fonte. A documentação do Essential Addons descreve três fontes: Manual, Google Calendar e The Events Calendar. Cada uma tem requisitos diferentes, entao saber qual esta ativa define o resto do diagnostico.
Painel WP -> edite a página com Elementor Clique no widget EA Event Calendar -> aba Content -> Event Source Anote a fonte selecionada (Manual / Google Calendar / The Events Calendar) - Habilite a Google Calendar API e gere uma chave valida: Se a fonte for Google Calendar, va ao Google Cloud Console, habilite a Google Calendar API no projeto e crie uma chave de API em Credentials. Sem a API habilitada, a chave não retorna eventos. Copie a chave gerada para colar no widget no próximo passo.
Acesse o Google Cloud Console -> selecione ou crie um projeto APIs & Services -> Library -> habilite 'Google Calendar API' APIs & Services -> Credentials -> Create Credentials -> API key Copie a chave de API gerada - Pegue o Calendar ID e deixe o calendário público: Ainda na fonte Google Calendar, abra as configurações do calendário no Google Calendar, copie o Calendar ID (e não o link de compartilhamento) e marque o calendário como público. O widget acessa por chave de API pública, entao um calendário privado nunca devolve eventos.
Google Calendar -> Settings do calendário -> 'Integrate calendar' -> copie o Calendar ID Em 'Access permissions for events', marque 'Make available to public' Cole a chave de API e o Calendar ID nos campos do widget EA Event Calendar e salve - Para a fonte The Events Calendar, confirme o plugin e os eventos: Se a fonte for The Events Calendar, o widget le os eventos daquele plugin. Confirme que o plugin The Events Calendar esta instalado e ativo e que ha pelo menos um evento publicado com data futura; sem o plugin ou sem eventos, a agenda fica vazia.
Painel WP -> Plugins -> confirme 'The Events Calendar' instalado e ativo Painel WP -> Events -> verifique se ha eventos publicados com data valida No widget EA Event Calendar, confirme 'Event Source' = The Events Calendar e salve - Limpe os caches e recarregue a página: Depois de ajustar a fonte, limpe o cache do plugin de cache e o cache do CSS do Elementor e recarregue a página em uma janela anonima. Cache servindo HTML antigo e a causa comum de eventos novos não aparecerem mesmo com a fonte correta.
Painel WP -> seu plugin de cache -> limpar todo o cache Painel WP -> Elementor -> Tools -> Regenerate CSS & Data Abra a página em uma janela anonima e confirme os eventos
<?php
// Limpa o cache de transients do EA Event Calendar / chamadas externas
// para forcar a re-sincronizacao da fonte (ex.: Google Calendar API).
// Use uma vez via WP-CLI eval-file ou em um mu-plugin temporario.
add_action( 'init', function () {
if ( ! current_user_can( 'manage_options' ) || ! isset( $_GET['ea_calendar_resync'] ) ) {
return;
}
global $wpdb;
$wpdb->query(
"DELETE FROM {$wpdb->options}
WHERE option_name LIKE '_transient_eael_%'
OR option_name LIKE '_transient_timeout_eael_%'"
);
wp_safe_redirect( remove_query_arg( 'ea_calendar_resync' ) );
exit;
} );














