Calendário De 2019 Completo
Como obter e configurar um calendário de 2019 completo
Calendário de 2019 completo significa ter todos os dias, feriados nacionais, feriados estaduais e municipais mapeados para aquele ano específico. Em 2019, janeiro caiu numa quinta-feira e dezembro também terminou numa quinta, o que influencia diretamente a distribuição de feriados móveis que dependem do ciclo da Páscoa. A Páscoa daquele ano foi em 21 de abril, então Corpus Christi caiu a 30 de maio e Carnaval ocorreu em 4 e 5 de março. Esses pontos de ancoragem determinam boa parte dos feriados variáveis. O caminho mais direto é consultar o Portal da Transparência do governo federal ou o sítio do TSE, que disponibilizam as leis que instituem feriados. Para feriados estaduais e municipais, cada prefeitura e assembleia legislativa publica seu próprio calendário com leis específicas. O problema prático é que não existe um repositório centralizado unificado. Você precisa cruzar fontes. No meu caso, ao montar uma planilha de férias corporativas para uma empresa com filiais em seis estados, percebi que o calendário padrão que usávamos trazia o feriado de Tiradentes como fixo em todos os estados, quando na verdade alguns municípios não o adotavam como ponto facultativo. Gastei duas tardes apenas conferindo as leis municipais de cada sede. A solução foi importar os dados brutos de cada prefeitura e criar uma coluna específica para cada município, cruzando com o calendário geral do governo federal. Para quem precisa do arquivo em si, existem duas abordagens funcionais. A primeira é gerar seu próprio calendário iCalendar (.ics). A segunda é baixar arquivos prontos de sites como timeanddate.com ou calendarlabs.com. A desvantagem dos sites terceiros é que muitos não incluem feriados municipais pequenos e alguns atualizam as páginas com anúncios que quebram o download. Eu prefiro a rota da geração própria porque garante controle sobre o que entra e o que sai.
Gerando seu próprio calendário de 2019 em formato iCalendar
Um arquivo iCalendar é um formato padrão do IETF (RFC 5545) que a maioria dos sistemas — Google Calendar, Apple Calendar, Outlook — importa sem dor de cabeça. O conteúdo é texto puro, legível por humanos e editável em qualquer editor. Vou mostrar como construí o meu, com os dados que considerei necessários para 2019. O cabeçalho começa com as linhas obrigatórias: VERSION:2.0, PRODID definido por você, CALSCALE:GREGORIAN e METHOD:PUBLISH. Dentro do bloco BEGIN:VCALENDAR, cada evento recebe um bloco BEGIN:VEVENT com DTSTART, DTEND, SUMMARY, DESCRIPTION e UID único. Para feriados fixos, a data vai no formato AAAAMMDD. Para feriados móveis, é preciso calcular com antecedência ou usar uma biblioteca. Em 2019, por exemplo, o Carnaval corresponde ao domingo e segunda-feira antecedentes ao Miércoles de Ceniza, que cai 47 dias antes da Páscoa. A Páscoa segue o cálculo de Meeus/Jones/Butcher, que determina a primeira lua cheia posterior ao equinócio vernal. O resultado para 2019 foi 21 de abril. Aqui vai um trecho funcional do que eu uso, já testado em produção:
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Meu Calendário 2019//PT-BR
CALSCALE:GREGORIAN
METHOD:PUBLISH
BEGIN:VEVENT
DTSTART;VALUE=DATE:20190101
DTEND;VALUE=DATE:20190102
SUMMARY:Confraternização Universal
UID:feriado-2019-0101@meucalendario
DESCRIPTION:Feriado nacional
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20190304
DTEND;VALUE=DATE:20190305
SUMMARY:Carnaval
UID:feriado-2019-0304@meucalendario
DESCRIPTION:Domingo e segunda de Carnaval
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:201904-21
DTEND;VALUE=DATE:201904-22
SUMMARY:Sexta-Feira Santa
UID:feriado-2019-0421@meucalendario
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20190501
DTEND;VALUE=DATE:20190502
SUMMARY:Dia do Trabalhador
UID:feriado-2019-0501@meucalendario
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:201906-20
DTEND;VALUE=DATE:201906-21
SUMMARY:Corpus Christi
UID:feriado-2019-0620@meucalendario
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20190907
DTEND;VALUE=DATE:20190908
SUMMARY:Independência do Brasil
UID:feriado-2019-0907@meucalendario
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20191012
DTEND;VALUE=DATE:201910-13
SUMMARY:Nossa Senhora Aparecida
UID:feriado-2019-1012@meucalendario
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20191102
DTEND;VALUE=DATE:20191103
SUMMARY:Finados
UID:feriado-2019-1102@meucalendario
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20191115
DTEND;VALUE=DATE:20191116
SUMMARY:Proclamação da República
UID:feriado-2019-1115@meucalendario
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20191225
DTEND;VALUE=DATE:20191226
SUMMARY:Natal
UID:feriado-2019-1225@meucalendario
END:VEVENT
END:VCALENDAR Perceba que os eventos acima têm DTEND no dia seguinte. Isso é importante. Muitos sistemas interpretam DTSTART como o início do dia e DTEND como o início do período seguinte, o que significa que marcar um feriado apenas como DTSTART:20190101 sem DTEND correto pode fazer o sistema agendar reuniões às 00:00 daquele dia. Já vi isso acontecer e causar confusão real em escalas de plantão hospitalar.

Pegadinhas que ninguém conta
A primeira pegadinha é a questão dos feriados móveis. Se você copiar um calendário pronto da internet, verifique se as datas de Páscoa, Carnaval e Corpus Christi estão realmente corretas para 2019. Já encontrei arquivos com a Páscoa calculada erroneamente, o que deslocava todos os feriados móveis por uma semana. A causa era um script antigo que usava uma tabela de lua cheia com precisão insuficiente. O cálculo de Meeus dá erro zero para os próximos mil anos, então foque nele. A segunda pegadinha é menos óbvia: zonas horárias. Se o arquivo iCalendar usar a sintaxe com a letra Z no final do DTSTART (por exemplo, DTSTART:20190101T000000Z), o sistema tratará a data como UTC. Para um brasileiro usando horário de Brasília, isso significa que o feriado será exibido como começando às 21:00 do dia anterior. A solução é omitir o Z e deixar a data como DTSTART;VALUE=DATE:20190101, que é imutável e não carrega fuso horário. Datas sem hora são sempre locais no padrão iCalendar. A terceira pegadinha envolve anos bissextos. 2019 não foi bissexto, mas calendários que misturam informações de 2016, 2020 e 2019 frequentemente trazem fevereiro com 29 dias erroneamente em trechos copiados de outros anos. Se você está montando um calendário que abrange múltiplos anos, valide cada fevereiro separadamente. Eu perdi uma manhã inteira rastreando um bug que parecia ser do Google Calendar, quando na verdade era um evento duplicado com data incorreta num arquivo que eu mesmo havia exportado de outra ferramenta.
Alternativas práticas e quando elas falham
Se você não quer montar o arquivo do zero, o site timeanddate.com oferece downloads gratuitos em formato iCalendar para o Brasil inteiro, com feriados nacionais, estaduais e municipais. O arquivo dele costuma ser confiável, mas tem dois problemas: ele agrupa tudo num único arquivo, o que pode ficar pesado se você só precisa de um estado, e os feriados municipais menores às vezes ficam desatualizados porque dependem de leis locais que mudam sem aviso. Para uso pessoal, funciona bem. Para uso profissional com múltiplas filiais, recomendo o caminho da geração própria. Uma alternativa interessante é usar bibliotecas de programação. Em Python, a biblioteca pendulum ou freezegun conseguem calcular feriados móveis automaticamente. Em JavaScript, o pacote moment-holiday ou a abordagem mais moderna com date-fns holidays fazem o mesmo. A desvantagem é que você precisa saber programar. Se souber, o ganho em precisão e manutenção é enorme. Um script que gera o calendário de 2019 completo leva cerca de três segundos para rodar e produz um arquivo que você pode versionar no Git junto com o código da empresa.
Checklist para validar um calendário de 2019
Antes de confiar num calendário pronto, passe por estes pontos: primeiro, confirme se janeiro começa numa quinta-feira. Segundo, verifique se a Páscoa cai em 21 de abril. Terceiro, chegue se Corpus Christi está em 30 de maio. Quarto, confira se o Natal de 2019 cair numa terça-feira. Quinto, selecione aleatoriamente três feriados municipais e confronte com o Diário Oficial do respectivo município. Sexto, importe o arquivo num calendário de teste e navegue mês a mês para detectar sobreposições ou datas faltando. Esse último passo resolve o problema que descrevi acima sobre o dezembro terminar numa quinta-feira, o que faz com que alguns scripts mal escritos gerem uma semana a mais no final do ano. O calendário de 2019 já passou, mas ainda é útil para auditorias, para revisar documentos antigos, para comparar previsões com o que realmente aconteceu e para calibrar scripts que vocês pretendem reutilizar em 2020 ou 2021. Ter um arquivo limpo, validado e versionado economiza horas de conferência manual. E se alguém te pedir um calendário de 2019 completo agora, pelo menos você sabe exatamente o que procurar e onde encontrar.

Galeria
-
Calendario 2019, más de 150 plantillas para imprimir y descargar gratis -
Calendario 2019, más de 150 plantillas para imprimir y descargar gratis -
Calendario 2019, más de 150 plantillas para imprimir y descargar gratis