Introdução
- Primeira parte de uma série sobre possuir diretamente os próprios dados e a própria tecnologia, explicando como integrar uma solução de calendário self-hosted.
- Com viagens frequentes, o gerenciamento da agenda ficou mais complexo e, para resolver os inconvenientes dos sistemas de calendário existentes, foi criada uma solução própria.
Requisitos
- Os compromissos devem aparecer como bloqueios no calendário de trabalho.
- A esposa deve poder assinar o calendário.
- Os eventos devem ser inseridos apenas uma vez.
- Deve ser possível editar em vários dispositivos.
- É preciso ter controle total dos dados.
- Não é possível resolver o problema compartilhando o calendário de trabalho com a esposa.
Solução anterior
- As soluções existentes de compartilhamento de calendário exigiam uma plataforma em comum ou ofereciam funcionalidades limitadas.
- Começou com uma abordagem de escrever eventos de calendário em arquivos YAML e convertê-los em arquivos ICS para compartilhamento, mas a manutenção se tornou difícil.
Arquitetura
- Foi construída uma solução usando um servidor CalDAV para gerenciar o calendário em vários dispositivos.
- Ela se conecta a várias fontes de dados para atualizar eventos automaticamente e fornecê-los como arquivos ICS.
Configuração do Baïkal
- O Baïkal foi usado para configurar o servidor CalDAV, com implantação facilitada via Docker Compose.
- Também foi configurado para acesso pela web usando um proxy reverso nginx.
Configuração do sistema de classificação de eventos
- A propriedade
CATEGORIES do iCalendar foi usada para classificar os eventos, e o modelo de dados foi criado com enum do Python.
- Isso permite pesquisar eventos com facilidade ou diferenciá-los por cores.
Compilação e compartilhamento do calendário
- Os eventos são importados automaticamente via IMAP, API, arquivos ICS etc., adicionados ao Baïkal e depois convertidos em arquivos ICS para compartilhamento na web.
- Foi configurado para ser atualizado a cada 15 minutos por meio de um trabalho cron.
Compartilhamento com o calendário de trabalho
- O Google Script Engine foi usado para copiar os eventos para o calendário de trabalho e aplicar codificação por cores com base na propriedade
CATEGORIES.
Conclusão
- Após 6 meses de testes, o sistema tem funcionado bem e ajudado bastante no gerenciamento de agendas de viagem.
- Embora haja um custo mensal de servidor de US$ 100, concluiu-se que ele vale a pena pela praticidade no gerenciamento da agenda.
1 comentários
Comentários do Hacker News
O CalDAV é complexo e pouco intuitivo. Já tentei usar o Radicale, mas não fiquei satisfeito. Pessoalmente, tentei implementar um servidor CalDAV, mas desisti
O Radicale é um servidor CalDAV modular escrito em Python e vale a recomendação
Estou usando Mailcow (SoGO) e Fastmail em um servidor pessoal. Os dois calendários não sincronizam bem
No começo dos anos 2000, usei o Mozilla Sunbird para hospedar um calendário em um servidor Win2k. Acho que ainda não existia CardDAV
Uso o Baikal há alguns anos e ele é estável. Conecto com Thunderbird, DAVx5 e Fossify Calendar
Quero criar algo para fotos. Quero sair do Dropbox e do Google
Sincronizar Outlook e Google Calendar via HTTP não é confiável
O Baikal parece interessante. Já usei DAViCal no passado, mas ele deixou de ser confiável quando a versão do iOS mudou
Recentemente estou tentando sair da nuvem. A migração dos dados levou duas semanas e funcionou melhor do que eu esperava
Também existe a opção sem servidor usando DecSync. Thunderbird ou Evolution sincronizam com apps Android