Zovo Calendar MCP Server

Calendário compartilhado e agendamento da equipe: eventos, disponibilidade, lembretes. Local-first, plano gratuito, Pro por US$ 19 pagamento único.

Documentação

All servers · Buy Pro $19 · All 46 for $39 · Source

Duas formas de executá-lo, ambas gratuitas para começar. Abra mcp.zovo.one/mcp/connect, copie a URL do calendário e cole-a em qualquer cliente que aceite uma URL. Ela já contém um token gratuito, então não há nada para instalar, nenhuma conta e nenhum cabeçalho para configurar. A URL é https://mcp.zovo.one/mcp/calendar/t/<token>. O token não é opcional: o https://mcp.zovo.one/mcp/calendar puro conecta e lista suas ferramentas, mas responde a toda chamada de ferramenta com HTTP 401, então use o link de /mcp/connect ou envie Authorization: Bearer <token>. Ou baixe calendar.mcpb e clique duas vezes nele no Claude Desktop.

mcp-calendar

Seu aplicativo de calendário pode mostrar a próxima terça-feira. Ele não pode dizer para onde sua semana realmente foi, quais duas coisas você confirmou ao mesmo tempo, ou quantas horas faturáveis as reuniões do mês passado valeram. Este servidor lê o arquivo .ics que seu calendário já exporta e responde a essas perguntas: eventos em qualquer janela com séries recorrentes expandidas corretamente, blocos de ocupado mesclados e as lacunas livres reais dentro do seu horário de trabalho, todas as sobreposições duplas entre calendários de trabalho e pessoais de uma vez, uma .ics limpa apenas dos eventos que você selecionou, e o lançamento de tempo exato para uma reunião que você deveria ter faturado. Nenhuma conta é conectada, nada é sincronizado, e o arquivo de calendário permanece na sua máquina como texto simples.

Construído por theluckystrike.

No Registro Oficial de MCP (io.github.theluckystrike/calendar-ics-reader-events-freebusy-conflicts).

Listado no AI Product Index — endpoint remoto ao vivo em mcp.zovo.one/s/calendar, plano gratuito, sem cadastro.

calendar demo

Importe o .ics que seu calendário exporta e pergunte o que está acontecendo, quando você está livre e o que conflita, zero configuração, tudo local.

Instalação em 60 segundos

A publicação no npm para @theluckystrike/mcp-calendar está pendente. Até lá, o pacote .mcpb de um clique ou um clone + build é o caminho funcional, ambos verificados abaixo.

Um clique (.mcpb): baixe calendar.mcpb do lançamento mais recente e clique duas vezes no Claude Desktop: https://github.com/theluckystrike/mcp-servers/releases/latest

(claude_desktop_config.json):

{
  "mcpServers": {
    "calendar": {
      "command": "npx",
      "args": ["-y", "@theluckystrike/mcp-calendar"]
    }
  }
}

Claude Code:

claude mcp add calendar -- npx -y @theluckystrike/mcp-calendar

(.cursor/mcp.json):

{
  "mcpServers": {
    "calendar": {
      "command": "npx",
      "args": ["-y", "@theluckystrike/mcp-calendar"]
    }
  }
}

O formulário npx acima começa a funcionar no momento em que o pacote é publicado. Até lá, use o pacote .mcpb acima, ou compile a partir do código-fonte com exatamente estes quatro comandos:

git clone https://github.com/theluckystrike/mcp-servers.git && cd mcp-servers
npm install
npm run build -w packages/mcp-license -w servers/timezone -w servers/calendar

Em seguida, aponte o command do seu cliente para node com um argumento: o caminho absoluto para servers/calendar/dist/index.js.

Para executar no modo Pro, defina MCP_LICENSE_KEY no mesmo bloco de configuração, ou chame license_activate uma vez com sua chave.

Obtendo o .ics do seu calendário

AplicativoOnde
Google CalendarConfigurações -> Importar e exportar -> Exportar. Você recebe um zip; importe o .ics dentro dele.
Apple CalendarArquivo -> Exportar -> Exportar...
Outlook (desktop)Arquivo -> Salvar calendário, formato iCalendar (.ics)
Outlook / Microsoft 365 (web)Configurações -> Calendário -> Calendários compartilhados -> Publicar, depois use o link ICS (Pro)
Qualquer outroQualquer URL de feed publicado terminando em .ics, ou webcal:// (Pro)

Então: ics_import {path: "~/Downloads/mike@example.com.ics", name: "work"}

Ferramentas

FerramentaO que faz
ics_importLê um arquivo .ics (path), conteúdo colado (text) ou um feed público (url, Pro) e o mantém localmente sob um nome. Importar o mesmo nome novamente o substitui.
calendars_listCada calendário importado: nome, fonte, contagem de eventos, tamanho, quando foi importado.
events_listCada evento entre duas datas com séries recorrentes expandidas para ocorrências reais, ordenado, no seu próprio fuso horário. Cada linha carrega um id.
events_searchEventos cujo título, descrição, local, organizador ou participantes contêm uma frase.
free_busyBlocos de ocupado mesclados e as lacunas livres dentro do seu horário de trabalho, dia a dia. Eventos marcados como livre/transparente não contam como ocupado.
conflictsCada par de eventos que se sobrepõe, com a sobreposição em minutos — em todos os calendários, então uma chamada de cliente conflitando com uma corrida escolar é detectada. Uma janela maior é encurtada para os 31 dias livres e respondida, nunca recusada.
next_eventA próxima coisa que ainda não começou, e quanto tempo falta para ela.
event_exportEscreve eventos selecionados (por id, ou uma janela inteira) em um novo .ics que você pode enviar. Horários em UTC, então chega corretamente em qualquer cliente.
event_to_time_entryTransforma uma reunião nos argumentos exatos para o entry_add do rastreador de tempo, então uma chamada se torna tempo faturável sem redigitá-la.
ics_forgetRemove um calendário e sua cópia local.
license_status / license_activateMostra o nível; ativa uma chave Pro offline.

O recurso calendar://today dá a agenda de hoje em uma única leitura. O prompt plan_my_day percorre todo o ciclo: o que está acontecendo, o que conflita, onde estão as lacunas livres, e quais reuniões concluídas devem ser faturadas.

O que o analisador trata

Escrito contra exportações reais, não apenas a especificação: quebra de linha (CRLF, LF puro e CR puro, e quebras que o Exchange coloca dentro de um caractere multibyte, que são reunidas nos bytes antes da decodificação), escape \n \, \; \\, eventos de dia inteiro com um DTEND exclusivo, DURATION em vez de DTEND, horários TZID e UTC, horários flutuantes, RRULE para HOURLY, DAILY, WEEKLY, MONTHLY e YEARLY com COUNT, UNTIL (inclusivo), INTERVAL, BYDAY incluindo ordinais (2MO, -1FR), BYMONTHDAY, BYMONTH e BYSETPOS, EXDATE, RDATE, substituições RECURRENCE-ID (a instância movida substitui a original em vez de aparecer duas vezes), STATUS:CANCELLED, TRANSP:TRANSPARENT, e blocos VALARM dentro de um evento. Um evento que não pode ser lido é ignorado e contado em vez de custar o resto do arquivo.

FREQ=MINUTELY e FREQ=SECONDLY são deliberadamente não expandidos: uma dessas regras preenche qualquer janela com milhares de ocorrências e enterra o resto da semana. Esses eventos são listados em sua primeira ocorrência e o motivo é dito claramente. Uma regra sem COUNT e sem UNTIL é expandida apenas até a janela que você pediu.

Exportações escritas por este servidor mantêm eventos de dia inteiro como valores DATE, então um feriado sai como o mesmo dia em que chegou, em vez de um bloco com horário no dia anterior no fuso da sua máquina.

VTIMEZONE é deliberadamente ignorado. As regras de DST inline de um arquivo são tão atuais quanto o aplicativo que o escreveu; o TZID é mantido e cada deslocamento é calculado a partir dos dados ICU dentro da sua compilação Node, que é o que mantém uma reunião semanal de Varsóvia às 10:00 às 10:00 local através da mudança de relógio de março.

Gratuito vs Pro

GratuitoPro ($19 pagamento único)
Calendários mantidos2ilimitado
Janela por perguntaaté 31 diasqualquer janela
conflicts sobre uma janela maiorrespondido para os primeiros 31 dias, limite nomeadoqualquer janela
Eventos por exportação50ilimitado
Importar de uma URL ou feed webcal--sim
Todo o restocompletocompleto

Obter Pro, ou $39 para todos os servidores do conjunto, vitalício. Ou o pacote de 46 servidores por $39.

Privacidade

Tudo é local. O arquivo de calendário que você importa é copiado para ${XDG_DATA_HOME:-~/.local/share}/mcp-servers/calendar/ e lido de lá; excluir esse diretório redefine o servidor. Há exatamente uma chamada de rede em todo o servidor, e apenas quando você mesmo passa um url: ele busca esse endereço uma vez, com um timeout de 12 segundos, um limite de 5 MB, e uma recusa em endereços loopback, privados e de metadados de nuvem. Nada é enviado, nenhuma conta é vinculada, e chaves de licença verificam offline.

Combina com

  • mcp-timezone, este servidor lê seu fuso horário e o mecanismo .ics dele: converta um horário de reunião, encontre horários entre países, escreva um convite.
  • mcp-time-tracker, event_to_time_entry entrega a ele uma reunião concluída; ele rastreia e relata as horas.
  • mcp-invoice, transforme essas horas rastreadas em uma fatura numerada.
  • office-suite, vários servidores em uma única instalação, uma entrada de configuração.

FAQ

Não. Não há OAuth, nenhum token e nenhuma sincronização. Você exporta um arquivo (ou cola uma URL de feed público no Pro) e ele é lido localmente. Isso também significa que uma importação é um instantâneo: reimporte quando o calendário tiver avançado.

Sim, e isso é a maior parte do código. Uma série semanal é expandida no relógio de parede, então uma reunião de Varsóvia às 10:00 permanece às 10:00 através da mudança de DST em vez de derivar para 11:00. Mensal no dia 31 pula fevereiro em vez de rolar para março, UNTIL inclui a ocorrência que cai exatamente nele, e uma única instância movida substitui a original.

Não é: RFC 5545 torna DTEND exclusivo para um evento de dia inteiro, então 1–3 de junho significa os dias 1 e 2. Este servidor segue a especificação, que é o que seu aplicativo de calendário também faz.

Ele escreve arquivos .ics com event_export, que você pode importar em qualquer lugar. Ele nunca modifica o calendário que leu.

5 MB, que são alguns milhares de eventos. Exporte um intervalo de datas mais estreito se um histórico completo for maior que isso.

Primeiros cinco minutos

Três prompts que pontuaram 3 de 3, medidos na rodada 18, 2026-09-05. Cole um como está escrito.

Here is my work calendar. Import it as Work. [1,594-byte .ics pasted as text, 8 events, week of 2026-09-07, Europe/Warsaw]

Cole isso no Claude com o servidor conectado.

O que fez, medido na rodada 18, 2026-09-05: Um ics_import {name: Work, text: <8 events>}.

What is on my calendar next week?

Cole isso no Claude com o servidor conectado.

O que fez, medido na rodada 18, 2026-09-05: Um events_list {calendar: Work, from: 2026-09-07, to: 2026-09-14}; o próprio modelo estreitou a janela bruta de 9 linhas (que derramava uma linha na ocorrência da reunião de segunda-feira seguinte) de volta para Seg 9/7-Dom 9/13 para 'próxima semana'.

Where do I have a free two-hour block next week between 9 and 17 Warsaw time?

Cole isso no Claude com o servidor conectado.

O que fez, medido na rodada 18, 2026-09-05: Um free_busy {calendars: [Work], zone: Europe/Warsaw, work_start: 09:00, work_end: 17:00}.

No plano gratuito para este caminho: 2 calendários, janelas de até 31 dias, exportações de até 50 eventos, verificações de conflito respondidas sobre os primeiros 31 dias de qualquer janela.

Configure no seu cliente

Caminho de configuração exato, entrada e avisos: Claude Desktop · Claude Code · Cursor · VS Code · Windsurf · Cline · conectores Claude.ai e Claude Desktop · todos os clientes

Comparado com as alternativas

MCP Calendar vs mcp-ical e google-calendar-mcp - qual servidor MCP escolher · todas as comparações

Guias

Como rastrear horas faturáveis dentro do Claude Code e do Cursor · Criar um PDF de fatura a partir de uma mensagem de chat com um servidor MCP · Fazer perguntas sobre um arquivo Excel ou CSV a partir do Cursor ou do Claude · Acompanhar o preço de um produto com o Claude e ser avisado quando ele cair · O que o plano gratuito inclui e o que o Pro adiciona · Registrar despesas e quilometragem no Claude, dividir o IVA, repassar para uma fatura · Converter moedas no Claude com taxas reais do BCE, sem chave de API · Gerar propostas e contratos em Word a partir de uma mensagem de chat · Encontrar um horário de reunião entre fusos horários sem fazer a aritmética · Escrever um currículo e uma carta de apresentação a partir do chat, sem inventar nada · Cobrar um retentor em um cronograma sem um SaaS de faturamento · Montar um contrato a partir da sua própria biblioteca de cláusulas, no chat · Conectar servidores MCP ao Claude.ai, Claude Desktop, Cursor e VS Code sem instalar nada · Mesclar, dividir e carimbar PDFs a partir do chat, e por que alguns voltam como números de glifos · Ler um calendário .ics no Claude: livre e ocupado, conflitos e reuniões faturáveis · Executar um quadro kanban no Claude, com rastreamento de tempo na mesma tarefa · Redimensionar, compactar e adicionar marca d'água em imagens a partir de uma mensagem de chat · Categorizar e conciliar uma exportação CSV do banco a partir do chat · Enviar um orçamento a partir do chat e transformar o "sim" em fatura · Colocar um QR code de pagamento SEPA em uma fatura a partir do chat · Compactar e descompactar arquivos com segurança a partir do Claude ou do Cursor · Depósitos de clientes e retentores a partir do chat, aplicados às suas faturas reais · Ativos fixos e depreciação a partir do chat, com as taxas publicadas pelas autoridades fiscais · Diárias e ajudas de viagem a partir do chat, com as tabelas de taxas publicadas pelas autoridades fiscais · Um razão contábil de partidas dobradas a partir de todos os servidores que você já executa · Cronogramas de empréstimos e arrendamentos a partir do chat, fechando exatamente em zero · Ordens de serviço e cartões de trabalho a partir do chat, e por que o markup vai no custo unitário · Listas de preços e tabelas de tarifas a partir do chat, e a lacuna de escala de 100x entre a fatura e o orçamento · Ordens de alteração e o valor do contrato em andamento a partir do chat, e por que uma linha alterada são dois itens · Um fundo de caixa pequeno a partir do chat, e por que o cheque não é a soma dos comprovantes · Extratos de clientes e cobranças a partir do chat, com vencimento em qualquer data que você indicar · Notas de crédito e ordens de compra a partir do chat, contra suas faturas reais · Uma instalação, todos os servidores: o pacote de suíte de escritório · Fechar um mês no chat: fatura, nota de crédito, retentor, conciliação bancária, extrato · Servidor MCP não aparecendo no Claude Desktop: as seis verificações que o encontram · Onde está o claude_desktop_config.json e o que vai nele · claude mcp add: todas as flags e o escopo que silenciosamente perde seu servidor · Servidores MCP no Windows: spawn npx ENOENT, barras invertidas e o PATH · Instalando esses servidores MCP quando o npx ainda não funciona · Configuração do MCP no Cursor: mcp.json, o campo de tipo obrigatório e onde os servidores aparecem · Quais servidores MCP funcionam sem nenhuma rede · Faturando um cliente da UE com reverse charge, a partir de uma mensagem de chat · Orçamento, depósito, fatura, extrato: todo o ciclo em uma única conversa · Este projeto está dando lucro? Horas contra custos, sem planilha · Montando um pacote de ano fiscal para seu contador a partir do chat · Mantendo um registro de quilometragem no chat, com a taxa que você realmente reivindica · Conciliando um CSV do banco contra o que você faturou e gastou · Repassando despesas de clientes, com markup e o IVA tratado honestamente · Cobrando uma fatura não paga: envelhecimento e depois a carta · Uma nota de venda a partir do chat, com os identificadores verificados e as linhas de assinatura impressas · Precificando um trabalho a partir de uma tabela de tarifas, e o que fazer quando o escopo muda · Calculando sua taxa horária a partir do que você realmente faturou · Convertendo CSV para xlsx e vice-versa sem abrir o Excel · Fazendo perguntas a uma planilha em linguagem simples · Mesclando uma pasta de recibos em um único PDF a partir do chat · Dividindo um único scan grande em documentos separados · Enviando um mês de papelada como um único arquivo, com segurança · Servidores MCP no VS Code: o erro de uma palavra que quebra toda configuração · Servidores MCP no Windsurf e no Cline: dois padrões que desperdiçam uma tarde · Servidor MCP local ou URL hospedada: qual escolher e o que você abre mão · O que esses servidores MCP realmente fazem no plano gratuito · Escolhendo um servidor MCP para faturamento: as sete perguntas que valem a pena fazer · Quando você precisa de um servidor MCP e quando um prompt é suficiente · Locais do arquivo de configuração MCP e chaves JSON, para cada cliente · Por que um servidor MCP não aparece, em ordem de probabilidade · Como a pesquisa do registro MCP realmente funciona, medida · O que realmente está no registro MCP: 6.000 linhas contadas · stdio ou streamable HTTP: qual transporte MCP e o que quebra · Versões do protocolo MCP: o que cada uma mudou · Cada campo em uma entrada de configuração de servidor MCP, por cliente · Escopos de configuração MCP: qual definição vence quando um servidor é definido duas vezes · Onde cada cliente MCP grava seus logs · Enviando um servidor MCP: um pacote para baixar ou uma URL para colar · O que há dentro de um pacote MCP .mcpb · Cobrando por um servidor MCP: como o licenciamento realmente funciona · Quanto texto um servidor MCP pode retornar e quanto ele pode descrever · O que verificar antes de deixar um servidor MCP rodar · Por que um diretório diz que seu servidor MCP hospedado não está respondendo · O registro MCP vincula uma URL remota a um nome de servidor · Letras maiúsculas no seu nome de usuário do GitHub mudam sua classificação no registro MCP · Quantos servidores MCP já têm sua palavra no nome · Referência de campos do server.json para o registro MCP · Quando uma ferramenta MCP falha, não retorne um erro JSON-RPC · structuredContent e outputSchema no MCP, e o que DEVE ser mantido · Regras para nomear uma ferramenta MCP e a colisão que ninguém planeja · MCP não tem sessão, então como duas chamadas de ferramenta compartilham estado · x-mcp-header: espelhando parâmetros de ferramenta em cabeçalhos HTTP · Como um diretório pontua um servidor MCP e por que sua pior ferramenta decide isso · O que os rastreadores de IA buscam que o Googlebot não busca, medido em 141 URLs · A API de Inspeção de URL do Search Console muda sua resposta entre chamadas · Quais servidores MCP funcionam colando uma URL, sem nada instalado · Onde encontrar servidores MCP que custam dinheiro e como você realmente paga · Fazendo um assistente preencher um orçamento ou estimativa para um cliente · Existe um servidor MCP para um livro de caixa pequeno ou um razão de caixa · Conversão de moedas em um assistente e qual servidor MCP usar · Compactando e descompactando arquivos de um assistente, e o que as proteções fazem · Produzindo um cronograma de entrega ou um documento de ordem de serviço a partir de um chat · Um servidor MCP enviará a fatura por e-mail para meu cliente · Um assistente pode ler uma foto de um recibo e registrar a despesa · Qual servidor MCP pode gerar PDFs de fatura a partir de uma mensagem de chat? · Um servidor MCP pode ler um PDF de extrato bancário e categorizar as transações? · Melhores servidores MCP para contabilidade e papelada de pequenas empresas em 2026 · Diretório de Fornecedores MCP: evite que listas de fornecedores apodreçam em uma planilha · Contrato de Serviço MCP: pare de copiar um modelo de contrato apodrecido da internet · Registro de Manutenção MCP: saiba qual serviço está vencido sem que ninguém precise lembrar · Registro de Quilometragem MCP: mantenha o registro dedutível no momento da viagem, não em abril · Melhores práticas de condições de pagamento de faturas: Net 30, data de vencimento e multas por atraso · Como categorizar transações bancárias · Modelo de registro de caixa pequeno · Todos os guias

Mais servidores

MCP Barcode · MCP Zip · MCP Billing Docs · MCP Deposits · Calculadora de Diárias MCP — Ajudas de Viagem para Funcionários a partir do Claude · Servidor MCP para Registro de Ativos Fixos — Depreciação a partir do Claude · Servidor MCP para Extratos de Conta — Saldos de Clientes a partir do Claude · Servidor MCP para Livro de Caixa — Recebimentos, Pagamentos e Saldos a partir do Claude