2nd Jul 2025 12 minutos de leitura O SQL encontra o Google Agenda: Analisar um ano em reuniões Jakub Romanowski Projeto SQL análise de dados Índice Por que analisar seu calendário? Etapa 1: Exportar seu Google Agenda Etapa 2: converter o arquivo .ics em um formato compatível com SQL Etapa 3: Importar o CSV para o banco de dados SQL Etapa 1: configurar sua tabela PostgreSQL Etapa 2: Carregar os dados do arquivo CSV Etapa 4: Analisar suas reuniões com SQL Número total de reuniões Tempo total em reuniões (horas) Duração média da reunião (minutos) Reuniões por mês Os 5 dias mais movimentados Etapa 5: Visualizar os dados Casos de uso para diferentes funções Opcional: Automatize tudo Próximas etapas Você já teve a sensação de que sua agenda está comandando sua vida? Reuniões consecutivas, quase nenhum tempo para trabalhar de fato e nenhuma ideia de onde foi parar seu tempo? Você não está sozinho. E se você pudesse executar uma rápida consulta SQL e saber exatamente quanto tempo passou em reuniões no ano passado, quais meses foram os mais movimentados e se suas sincronizações semanais estão consumindo suas manhãs? É disso que trata este guia. Mostrarei como exportar seu Google Agenda, transformá-lo em um formato compatível com SQL e usar consultas SQL simples para analisar seus hábitos de reunião no ano passado. Deseja aprimorar seu SQL antes de começar? Confira o curso SQL para Iniciantes. Ele é perfeito para iniciantes ou para qualquer pessoa que queira melhorar seu nível de consulta. Por que analisar seu calendário? Por que se preocupar em analisar seu calendário? Aqui estão alguns motivos reais: Você quer ver quanto tempo está gastando em reuniões. É fácil perder o controle quando todo dia tem dois ou três blocos reservados. Ver o número total de horas pode ser revelador. Você suspeita que alguns dias ou semanas estão sobrecarregados. Talvez as quartas-feiras estejam sempre lotadas, ou toda segunda-feira pareça uma maratona de chamadas. Você quer encontrar esses padrões com dados reais. Você está curioso para saber se as reuniões recorrentes são realmente úteis. As sincronizações semanais e os check-ins quinzenais geralmente se tornam rotina. Analisá-las pode ajudá-lo a descobrir se elas estão ajudando ou apenas preenchendo sua agenda. Você quer motivos baseados em dados para dizer "não" a outro convite. Ter números para embasar sua decisão pode ajudá-lo a defender menos reuniões e mais tempo para se concentrar. Esse tipo de insight pode ajudá-lo a recuperar seu tempo, tomar decisões de agendamento mais inteligentes e reduzir a fadiga das reuniões. Agora, vamos obter esses dados. Etapa 1: Exportar seu Google Agenda O Google Agenda não fornece uma planilha do Excel com todas as suas reuniões, mas você pode exportar seus dados no formato .ics. Como exportar: Vá para o Google Agenda. Clique no ícone de engrenagem ⚙️ → Configurações. Role até Import & Export. Em "Exportar", clique em Exportar. Você receberá um arquivo ZIP. Descompacte-o para encontrar os arquivos .ics de cada calendário. Certifique-se de incluir todos os calendários relevantes (trabalho, pessoal, compartilhado, etc.). Etapa 2: converter o arquivo .ics em um formato compatível com SQL Antes de fazer qualquer outra coisa, precisamos transformar esse arquivo .ics em algo mais útil, como um arquivo .csv, que funciona como uma planilha e é fácil de importar para qualquer banco de dados SQL. Para fazer isso, usaremos um script Python simples. Se você nunca usou Python antes, não se preocupe - esta é uma abordagem passo a passo. O script lerá o arquivo .ics, extrairá cada evento (como uma reunião ou compromisso) e salvará esses detalhes em um arquivo .csv. Aqui está o que você precisa para começar: Python instalado em seu computador (a versão 3.x é suficiente). Duas bibliotecas Python: icalendarPython: ajuda o Python a entender os arquivos de calendário. pandasAjuda a gerenciar e salvar dados em formato de tabela. Você pode instalar essas bibliotecas abrindo o terminal ou o prompt de comando e executando: pip install icalendar pandas Script Python explicado Não se sinta sobrecarregado pelo tamanho do script abaixo - ele pode parecer complexo, mas você não precisa escrever nada dele. Basta copiá-lo e colá-lo em um arquivo e executá-lo. Tudo já está configurado para fazer o trabalho para você. from icalendar import Calendar import pandas as pd # Read the .ics calendar file with open("calendar.ics", encoding="utf-8") as f: cal = Calendar.from_ical(f.read()) # Create a list to store extracted events events = [] # Walk through each event in the calendar for component in cal.walk(): if component.name == "VEVENT": event = { 'summary': str(component.get('summary')), 'start': component.get('dtstart').dt, 'end': component.get('dtend').dt, 'organizer': str(component.get('organizer')), 'attendees': str(component.get('attendee')), } events.append(event) # Convert list to DataFrame and export to CSV df = pd.DataFrame(events) df.to_csv('calendar_events.csv', index=False) Esse script lê seu calendário, percorre cada evento e extrai campos como o nome da reunião, os horários de início e término, quem a organizou e quem participou. Em seguida, ele salva tudo em um arquivo CSV, pronto para ser importado para o SQL. O que fazer com este código: Copie o script inteiro em um novo arquivo Python. Você pode fazer isso em qualquer editor de texto - basta salvá-lo com uma extensão .py, por exemplo, convert_calendar.py. Certifique-se de que o arquivo .ics esteja na mesma pasta que o script e tenha o nome calendar.ics. Se ele tiver um nome diferente, atualize o nome do arquivo na função open(). Para executar o script, abra o terminal (no Mac ou Linux) ou o prompt de comando (no Windows). Navegue até a pasta em que você salvou o arquivo Python. Em seguida, digite python convert_calendar.py e pressione Enter. Isso informa ao computador para executar o script. Se tudo estiver configurado corretamente, ele processará o arquivo .ics e criará um novo arquivo chamado calendar_events.csv na mesma pasta. Esse arquivo CSV conterá todos os seus eventos do Google Agenda em um formato fácil de usar no SQL. Após a execução do script, você deverá ver um novo arquivo chamado calendar_events.csv na mesma pasta. Esse arquivo conterá todos os eventos do seu calendário em um formato de tabela simples, pronto para ser usado no SQL. Veja a seguir a aparência de seu CSV: summarystartendorganizer Weekly Sync2024-01-04 10:002024-01-04 10:30alice@company.com 1:1 with Tom2024-01-05 14:002024-01-05 14:45tom@company.com Etapa 3: Importar o CSV para o banco de dados SQL Você pode usar qualquer banco de dados SQL - MySQL, PostgreSQL ou SQLite. Nesta seção, mostraremos como fazer isso usando o PostgreSQL, que é amplamente usado em ambientes comerciais e perfeito para aprender habilidades SQL do mundo real. Se você estiver usando o Windows e ainda não tiver o PostgreSQL instalado, não se preocupe - é fácil começar. Basta acessar o site oficial do PostgreSQL e fazer o download do instalador. Execute o instalador, siga as etapas e escolha as configurações padrão, a menos que você tenha um motivo para alterá-las. Certifique-se de instalar também o pgAdmin - é uma ferramenta visual que ajuda a gerenciar seu banco de dados PostgreSQL sem usar a linha de comando. Depois de instalado, você poderá abrir o pgAdmin, conectar-se ao servidor local e criar seu primeiro banco de dados com apenas alguns cliques. Etapa 1: configurar sua tabela PostgreSQL Abra o terminal ou o pgAdmin e conecte-se ao seu banco de dados PostgreSQL. Em seguida, crie uma tabela para armazenar os dados de sua reunião: CREATE TABLE meetings ( id SERIAL PRIMARY KEY, summary TEXT, start TIMESTAMP, "end" TIMESTAMP, organizer TEXT, attendees TEXT ); Isso criará uma tabela em que cada reunião será armazenada como uma linha. A palavra-chave SERIAL cria um ID de incremento automático e TIMESTAMP armazena a data e a hora de início e término. Etapa 2: Carregar os dados do arquivo CSV Agora que sua tabela está pronta, você precisa importar o arquivo CSV que criou anteriormente (calendar_events.csv). O PostgreSQL usa o comando COPY para carregar os dados do CSV em uma tabela. Se estiver usando o pgAdmin, você também pode fazer isso por meio da GUI: Clique com o botão direito do mouse na tabela meetings no painel esquerdo do seu banco de dados. Escolha Import/Export no menu de contexto. Na janela de diálogo, selecione Import como a opção. Escolha o arquivo calendar_events.csv em seu computador. No menu suspenso Format, selecione csv. Certifique-se de que a ordem das colunas em seu arquivo CSV corresponda à estrutura da tabela. Deixe as outras configurações como padrão ou ajuste o delimitador, se necessário. Clique em OK para importar. Como alternativa, se preferir usar um comando SQL na Ferramenta de Consulta do pgAdmin, você pode fazer isso desta forma: COPY meetings(summary, start, "end", organizer) FROM 'C:/full/path/to/calendar_events.csv' DELIMITER ',' CSV HEADER; Certifique-se de substituir C:/full/path/to/calendar_events.csv pelo caminho real do seu arquivo CSV. Além disso, certifique-se de que o PostgreSQL tenha permissão para acessar essa pasta. Esse método pode ser mais rápido se você se sentir à vontade para digitar um pouco de SQL. Depois de concluir essa etapa, os dados do calendário estarão disponíveis no PostgreSQL. Etapa 4: Analisar suas reuniões com SQL Agora vamos para a parte divertida. Vamos executar algumas consultas SQL para explorar seus padrões de reunião e responder a perguntas comuns como: De quantas reuniões eu participei? Quais dias foram os mais movimentados? Quanto tempo passei em reuniões? Número total de reuniões SELECT COUNT(*) AS total_meetings FROM meetings; Essa consulta simplesmente conta quantas linhas existem na tabela meetings. Como cada linha representa uma reunião, o resultado mostra quantas reuniões você teve no total. Tempo total em reuniões (horas) SELECT ROUND(SUM(EXTRACT(EPOCH FROM ("end" - start)) / 3600.0)::numeric, 2) AS total_hours FROM meetings; Essa consulta calcula o tempo total que você passou em reuniões subtraindo a hora de início da reunião da hora de término. No PostgreSQL, a subtração de dois registros de data e hora retorna a duração em segundos, portanto, usamos EXTRACT(EPOCH FROM (...)) para obter o número de segundos. Em seguida, dividimos por 3600 para convertê-lo em horas. Por fim, ROUND(..., 2) é usado para facilitar a leitura do resultado, limitando-o a duas casas decimais. Duração média da reunião (minutos) SELECT ROUND(AVG(EXTRACT(EPOCH FROM ("end" - start)) / 60.0)::numeric, 1) AS avg_minutes FROM meetings; Essa consulta calcula a duração média de todas as suas reuniões. Ela subtrai a hora de início da hora de término de cada reunião para obter a duração e, em seguida, usa EXTRACT(EPOCH FROM ...) para converter esse tempo em segundos. A divisão por 60 transforma os segundos em minutos. Por fim, o site AVG fornece a duração média da reunião e o site ROUND(..., 1) facilita a leitura, mantendo apenas uma casa decimal. Reuniões por mês SELECT TO_CHAR(start, 'YYYY-MM') AS month, COUNT(*) AS meeting_count FROM meetings GROUP BY month ORDER BY month; Essa consulta o ajuda a entender como suas reuniões foram distribuídas em cada mês. Ela usa TO_CHAR(start, 'YYYY-MM') para transformar a data de cada reunião em um formato ano-mês simplificado, como 2024-03, o que facilita o agrupamento de eventos por mês. A função COUNT(*) conta quantas reuniões ocorreram em cada um desses meses. Por fim, ORDER BY month organiza os resultados em ordem cronológica para que você possa ver rapidamente os meses mais movimentados. Os 5 dias mais movimentados SELECT date(start) AS day, COUNT(*) AS meetings FROM meetings GROUP BY day ORDER BY meetings DESC LIMIT 5; Isso mostra os cinco dias em que você teve o maior número de reuniões. date(start) extrai apenas o dia do carimbo de data/hora completo. GROUP BY agrupa os eventos por dia e ORDER BY meetings DESC coloca os dias mais movimentados no topo. LIMIT 5 mostra apenas os cinco primeiros. Etapa 5: Visualizar os dados Você pode usar: Power BI ou Tableau para painéis de controle. Google Sheets para gráficos rápidos. Python (Matplotlib/Seaborn) para mapas de calor. Tente criar um mapa de calor semanal para identificar dias de sobrecarga. Dinamize seus dados por dia da semana e hora e, em seguida, aplique a formatação condicional. Casos de uso para diferentes funções Os gerentes podem usar essa análise para entender como o tempo de sua equipe está sendo realmente gasto. Se as reuniões tomarem mais tempo do que o esperado, eles podem começar a identificar quais são essenciais e quais podem ser cortadas ou totalmente removidas. Os desenvolvedores geralmente lutam para encontrar grandes blocos de tempo para codificação focada. Ao executar essas consultas, eles podem identificar padrões na sobrecarga de reuniões e defender menos interrupções durante as horas de trabalho intenso. Os profissionais de marketing podem analisar quanto do seu tempo é gasto em sessões de planejamento em comparação com o trabalho de execução. Isso pode levar a uma melhor programação do trabalho da campanha e a reuniões mais eficientes, focadas e orientadas por objetivos. Professores e educadores podem se beneficiar examinando como seu tempo é dividido entre sessões de aulas recorrentes, reuniões individuais com alunos e tarefas administrativas. Com esse insight, eles podem buscar um melhor equilíbrio e reduzir potencialmente o esgotamento. Opcional: Automatize tudo Quer fazer isso regularmente? Pense em uma dessas opções: API do Google Agenda - Essa é uma ferramenta oficial fornecida pelo Google que permite acessar programaticamente os dados da sua agenda em tempo real. Você pode escrever um script Python que se conecte à API e busque seus eventos toda semana ou todo mês. Dessa forma, você não precisa exportar arquivos .ics manualmente. Automatização com Python - Depois de configurar o script para buscar e processar os dados do calendário, você pode programá-lo para ser executado automaticamente (por exemplo, todo mês) usando ferramentas como o Windows Task Scheduler ou o cron no Mac/Linux. Isso economiza tempo e mantém seus dados atualizados. Zapier - Essa é uma ferramenta sem código que conecta diferentes aplicativos. Você pode usar o Zapier para copiar automaticamente eventos do Google Agenda para uma planilha do Google. A partir daí, você pode importar essa planilha para o seu banco de dados SQL. Essa opção é excelente se você não estiver pronto para escrever código Python. O objetivo desta seção é ajudá-lo a dimensionar seu processo para que ele seja executado por conta própria, com pouco esforço após a configuração. Próximas etapas Deseja criar consultas mais avançadas? Aprenda SQL passo a passo com SQL para Iniciantes em LearnSQL.com.br. Neste curso prático, você aprenderá a escrever consultas SQL reais que extraem dados significativos de um banco de dados. Você abordará tópicos essenciais como seleção de colunas, filtragem de linhas, classificação de resultados e união de várias tabelas - tudo o que você precisa para começar a analisar dados como um profissional. O curso é estruturado em lições curtas, cada uma com exercícios interativos para ajudá-lo a praticar enquanto aprende. Você não precisa ter experiência prévia: tudo é explicado de forma clara e gradual. Ao final, você se sentirá à vontade para usar o SQL para responder a perguntas, resolver problemas e descobrir insights de qualquer fonte de dados. É a base perfeita para qualquer pessoa que trabalhe com dados. E a melhor parte? Você pode experimentá-lo com uma avaliação gratuita para ver como funciona antes de se comprometer. Use seus dados. Melhore sua agenda. Economize seu tempo! Tags: Projeto SQL análise de dados