<!DOCTYPE html><html lang="pt-BR"> <head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>API de feriados em JSON e calendário .ics | feriados.net.br</title><meta name="description" content="Feriados do Brasil em JSON estático e em .ics, por ano, estado e capital, com a lei e a fonte de cada data. Grátis, sem chave, com CORS aberto."><link rel="canonical" href="https://feriados.net.br/api/"><meta name="theme-color" content="#27432f"><link rel="icon" href="/favicon.svg" type="image/svg+xml"><link rel="icon" href="/favicon.ico" sizes="32x32"><link rel="apple-touch-icon" href="/apple-touch-icon.png"><link rel="manifest" href="/site.webmanifest"><link rel="sitemap" href="/sitemap-index.xml"><meta property="og:type" content="website"><meta property="og:locale" content="pt_BR"><meta property="og:site_name" content="feriados.net.br"><meta property="og:title" content="API de feriados em JSON e calendário .ics"><meta property="og:description" content="Feriados do Brasil em JSON estático e em .ics, por ano, estado e capital, com a lei e a fonte de cada data. Grátis, sem chave, com CORS aberto."><meta property="og:url" content="https://feriados.net.br/api/"><meta property="og:image" content="https://feriados.net.br/og.png"><meta property="og:image:width" content="1200"><meta property="og:image:height" content="630"><meta name="twitter:card" content="summary_large_image"><script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebPage","name":"API e .ics","url":"https://feriados.net.br/api/","description":"Feriados do Brasil em JSON estático e em .ics, por ano, estado e capital, com a lei e a fonte de cada data. Grátis, sem chave, com CORS aberto.","inLanguage":"pt-BR","dateModified":"2026-09-27"},{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Início","item":"https://feriados.net.br/"},{"@type":"ListItem","position":2,"name":"API e .ics","item":"https://feriados.net.br/api/"}]},{"@type":"Dataset","name":"Feriados do Brasil (nacionais, estaduais e das capitais)","description":"Feriados nacionais, estaduais e municipais das 27 capitais e pontos facultativos federais de 2026 a 2028, com a lei e a URL da fonte de cada data.","url":"https://feriados.net.br/api/","inLanguage":"pt-BR","isAccessibleForFree":true,"creator":{"@type":"Organization","name":"feriados.net.br","url":"https://feriados.net.br/"},"dateModified":"2026-09-27","temporalCoverage":"2026/2028","spatialCoverage":"Brasil","distribution":[{"@type":"DataDownload","encodingFormat":"application/json","contentUrl":"https://feriados.net.br/api/feriados/2027.json"},{"@type":"DataDownload","encodingFormat":"text/calendar","contentUrl":"https://feriados.net.br/ics/feriados-2027.ics"}]},{"@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Preciso de chave ou cadastro para usar a API?","acceptedAnswer":{"@type":"Answer","text":"Não. Os arquivos são estáticos, públicos e sem limite de requisições. Basta fazer um GET na URL do ano, do estado ou da cidade."}},{"@type":"Question","name":"Posso usar os dados num produto comercial?","acceptedAnswer":{"@type":"Answer","text":"Pode. O uso é livre, inclusive comercial, desde que você cite o feriados.net.br com link para a página correspondente. Para uso em produção, guarde uma cópia e atualize de tempos em tempos em vez de consultar a cada acesso."}},{"@type":"Question","name":"Os dados funcionam no navegador, direto do front-end?","acceptedAnswer":{"@type":"Answer","text":"Funcionam. O CORS está aberto (Access-Control-Allow-Origin: *) em /api/ e em /ics/, então um fetch de qualquer domínio lê o JSON sem proxy."}},{"@type":"Question","name":"Com que frequência os arquivos mudam?","acceptedAnswer":{"@type":"Answer","text":"Quando muda uma lei, quando sai a portaria de pontos facultativos do ano seguinte (em geral no fim de dezembro) e quando entra um ano novo na lista. O campo atualizado_em diz a data da última revisão; hoje é 27/09/2026."}},{"@type":"Question","name":"Tem feriados de outras cidades além das capitais?","acceptedAnswer":{"@type":"Answer","text":"Tem, para as cidades da página feriados por cidade. A URL segue o mesmo padrão da capital, trocando o nome da cidade pelo slug dela, como /api/feriados/2027/sp/campinas.json."}},{"@type":"Question","name":"Encontrei um erro. Como aviso?","acceptedAnswer":{"@type":"Answer","text":"Pela página de contato. Diga a data, o lugar e, se tiver, o link da lei. Conferimos na fonte oficial antes de mudar o arquivo."}}]}]}</script><script>window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments);}gtag('js',new Date());gtag('config','G-SQ44EY6RYJ');(function(){var ok=false,ev=['pointerdown','keydown','scroll','touchstart','mousemove'];function carrega(){if(ok)return;ok=true;ev.forEach(function(t){removeEventListener(t,carrega,{passive:true});});var s=document.createElement('script');s.async=true;s.src='https://www.googletagmanager.com/gtag/js?id=G-SQ44EY6RYJ';document.head.appendChild(s);}ev.forEach(function(t){addEventListener(t,carrega,{once:true,passive:true});});if(document.readyState==='complete'){setTimeout(carrega,3000);}else{addEventListener('load',function(){setTimeout(carrega,3000);});}})();</script><style>@font-face{font-family:Hanken Grotesk;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/hanken-grotesk-latin-400-normal.BG6hkEXj.woff2) format("woff2"),url(/_astro/hanken-grotesk-latin-400-normal.CjyVwvJV.woff) format("woff")}@font-face{font-family:Hanken Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/hanken-grotesk-latin-500-normal.DrDcrrxK.woff2) format("woff2"),url(/_astro/hanken-grotesk-latin-500-normal.Bo-NxEKf.woff) format("woff")}@font-face{font-family:Hanken Grotesk;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/hanken-grotesk-latin-600-normal.CIXX6EOa.woff2) format("woff2"),url(/_astro/hanken-grotesk-latin-600-normal.NEn2C4Q3.woff) format("woff")}@font-face{font-family:Hanken Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/hanken-grotesk-latin-700-normal.CeQ8H3UY.woff2) format("woff2"),url(/_astro/hanken-grotesk-latin-700-normal.6IGCzoPh.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/jetbrains-mono-latin-400-normal.V6pRDFza.woff2) format("woff2"),url(/_astro/jetbrains-mono-latin-400-normal.6-qcROiO.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/jetbrains-mono-latin-500-normal.BWZEU5yA.woff2) format("woff2"),url(/_astro/jetbrains-mono-latin-500-normal.CJOVTJB7.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/jetbrains-mono-latin-700-normal.BYuf6tUa.woff2) format("woff2"),url(/_astro/jetbrains-mono-latin-700-normal.D3wTyLJW.woff) format("woff")}:root{--bg: #f4f6f5;--surface: #fff;--ink: #243a2c;--ink-2: #3e5446;--muted: #566b5b;--muted-2: #6f8173;--faint: #8c9a8e;--line: #e1e6e3;--line-2: #cfd6d2;--line-3: #e6ece8;--line-4: #e9edeb;--forest: #27432f;--forest-2: #2c4838;--forest-dk: #1b3022;--night: #13201a;--green: #009e5c;--green-btn: #008550;--green-btn-hover: #00753f;--green-ink: #007a47;--green-text: #007a47;--green-soft: #e0f4ea;--green-light: #4ec48f;--holiday: #c0496e;--holiday-ink: #a83a5c;--holiday-soft: #f8e4eb;--holiday-light: #e88fb0;--optional: #1e8aa8;--optional-ink: #176a82;--optional-soft: #e0f0f5;--religious: #b5652e;--religious-ink: #9a5222;--religious-soft: #f4e6dc;--weekend: #566b5b;--weekend-bg: #e6ece8;--sans: "Hanken Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;--mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--shadow-sm: 0 1px 2px rgba(36, 58, 44, .04);--shadow-card: 0 1px 2px rgba(36, 58, 44, .04), 0 12px 32px -16px rgba(36, 58, 44, .16);--shadow-hover: 0 14px 32px -18px rgba(36, 58, 44, .28);--wrap: 1200px;--gutter: 48px;--r: 16px}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:88px}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}img,svg{max-width:100%}a{color:var(--ink);text-underline-offset:3px;text-decoration-color:var(--line-2)}a:hover{color:var(--green-text);text-decoration-color:currentColor}input,select,button,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--green);outline-offset:3px}h1,h2,h3,h4{font-family:var(--sans);font-weight:600;letter-spacing:-.015em;color:var(--ink);margin:0}p{margin:0}p,li{text-wrap:pretty}[hidden]{display:none!important}.mono{font-family:var(--mono)}.num{font-variant-numeric:tabular-nums}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skip-link{position:absolute;left:-999px;top:8px;background:var(--ink);color:#fff;padding:8px 14px;border-radius:8px;z-index:50}.skip-link:focus{left:8px}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes rise{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.wrap{max-width:var(--wrap);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}.wrap-narrow{max-width:calc(820px + 2 * var(--gutter));margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}@media(max-width:900px){:root{--gutter: 28px}}@media(max-width:600px){:root{--gutter: 16px}}.site-header{position:sticky;top:0;z-index:20;background:#f4f6f5e6;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px 28px;padding-top:16px;padding-bottom:16px}.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);flex-shrink:0}.logo:hover{color:var(--ink)}.logo-mark{width:28px;height:28px;border-radius:8px;background:var(--forest);display:grid;grid-template-columns:repeat(3,1fr);gap:2px;padding:6px;flex-shrink:0}.logo-mark i{background:var(--bg);border-radius:1px}.logo-mark i:nth-child(3){background:var(--holiday)}.logo-text{font-weight:600;font-size:19px;letter-spacing:-.01em}.logo-text span{color:var(--muted);font-weight:500}.site-nav{display:flex;gap:26px;font-size:14px}.site-nav a{text-decoration:none;color:var(--ink-2)}.site-nav a:hover,.site-nav a[aria-current=page]{color:var(--ink)}.site-nav a[aria-current=page]{font-weight:600}.header-cta{display:inline-flex;align-items:center;gap:8px;background:#fff;color:var(--ink);border:1px solid var(--line-2);border-radius:10px;padding:10px 14px;font-size:14px;font-weight:500;text-decoration:none;line-height:1;white-space:nowrap}.header-cta:hover{border-color:var(--ink-2);color:var(--ink)}.tool-tabs{display:flex;gap:4px;font-family:var(--mono);font-size:12px}.tool-tabs a{text-decoration:none;color:var(--ink-2);padding:7px 11px;border-radius:8px}.tool-tabs a:hover{background:var(--line-3);color:var(--ink)}.tool-tabs a[aria-current=page]{background:var(--forest);color:var(--bg)}.menu{display:none;position:relative}.menu summary{list-style:none;width:40px;height:40px;display:grid;place-items:center;border-radius:10px;cursor:pointer;color:var(--ink)}.menu summary::-webkit-details-marker{display:none}.menu[open] summary{background:var(--line-3)}.menu-panel{position:absolute;right:0;top:calc(100% + 8px);width:min(300px,calc(100vw - 32px));background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-card);padding:8px;display:flex;flex-direction:column;animation:rise .15s ease-out}.menu-panel a{padding:12px 14px;border-radius:10px;text-decoration:none;color:var(--ink);font-size:16px}.menu-panel a:hover{background:var(--line-3)}.menu-panel hr{border:0;border-top:1px solid var(--line);margin:6px 4px}@media(max-width:1060px){.tool-tabs{display:none}}@media(max-width:900px){.site-nav,.header-cta{display:none}.menu{display:block}.site-header .wrap{padding-top:12px;padding-bottom:12px}}.site-footer{border-top:1px solid var(--line);margin-top:auto}.site-footer .wrap{padding-top:28px;padding-bottom:32px;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;font-size:13px;color:var(--muted)}.site-footer nav{display:flex;flex-wrap:wrap;gap:8px 20px}.site-footer a{text-decoration:none;color:var(--muted)}.site-footer a:hover{color:var(--green-text)}@media(max-width:600px){.footer-brand{display:none}.site-footer nav{justify-content:space-between;width:100%;gap:8px 14px}}.page{min-height:100vh;display:flex;flex-direction:column}main{flex:1;width:100%}.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-family:var(--mono);font-size:12px;color:var(--muted);margin:0;padding:0;list-style:none}.crumbs a{text-decoration:none;color:var(--muted)}.crumbs a:hover{color:var(--green-text)}.crumbs li+li:before{content:"/";color:var(--faint);margin-right:8px}.crumbs [aria-current]{color:var(--ink)}.eyebrow{display:inline-flex;align-items:center;gap:10px;font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.eyebrow:before{content:"";width:8px;height:8px;border-radius:2px;background:var(--holiday);flex-shrink:0}.eyebrow.sem-marca:before{display:none}.label{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.h1{font-size:clamp(30px,4.6vw,44px);line-height:1.08;letter-spacing:-.025em}.h1 .soft{color:var(--muted);font-weight:500}.h2{font-size:22px;letter-spacing:-.015em}.lead{font-size:17px;line-height:1.55;color:var(--ink-2)}.lead strong{color:var(--ink)}@media(max-width:600px){.lead{font-size:15.5px}.h1{font-size:30px}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-sm);min-width:0}.card-pad{padding:20px}.card-lg{box-shadow:var(--shadow-card)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:12px 18px;border-radius:10px;font-size:15px;font-weight:600;line-height:1;text-decoration:none;border:1px solid transparent;white-space:nowrap;transition:background .15s,border-color .15s,color .15s}.btn-primary{background:var(--green-btn);color:#fff}.btn-primary:hover{background:var(--green-btn-hover);color:#fff}.btn-ghost{background:#fff;color:var(--ink);border-color:var(--line-2)}.btn-ghost:hover{border-color:var(--ink-2);color:var(--ink)}.btn-dark{background:var(--forest);color:var(--bg)}.btn-dark:hover{background:var(--forest-dk);color:#fff}.btn-sm{min-height:44px;padding:9px 14px;font-size:14px}.btn-lg{min-height:52px;padding:16px 22px;font-size:16px}.btns{display:flex;flex-wrap:wrap;gap:10px}.chip{display:inline-block;font-family:var(--mono);font-size:11px;letter-spacing:.04em;padding:4px 8px;border-radius:6px;line-height:1.3;white-space:nowrap;background:var(--line-3);color:var(--ink-2)}.chip-nacional{background:var(--holiday-soft);color:var(--holiday-ink)}.chip-facultativo{background:var(--optional-soft);color:var(--optional-ink)}.chip-estadual{background:var(--green-soft);color:var(--green-ink)}.chip-religioso{background:var(--religious-soft);color:var(--religious-ink)}.chip-municipal{background:var(--line-3);color:var(--ink-2)}.chip-borda{background:#fff;border:1px solid var(--line-2);color:var(--muted)}.chip-forte{background:var(--holiday);color:#fff}.chips{display:flex;flex-wrap:wrap;gap:8px}.sec-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}.sec-head a,.sec-head .aside{font-size:14px;color:var(--ink-2);text-decoration:none}.sec-head .aside.mono{font-family:var(--mono);font-size:12px;color:var(--muted)}.block{display:flex;flex-direction:column;gap:18px}.folhinha{background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-card);position:relative}.folhinha-top{background:var(--forest);color:var(--bg);border-radius:calc(var(--r) - 1px) calc(var(--r) - 1px) 0 0;padding:20px 24px 16px;display:flex;align-items:baseline;justify-content:space-between;gap:12px;position:relative}.folhinha-top:before,.folhinha-top:after{content:"";position:absolute;top:-10px;width:14px;height:22px;border-radius:7px;border:3px solid var(--forest);background:var(--bg)}.folhinha-top:before{left:40px}.folhinha-top:after{right:40px}.folhinha-top .mes{font-size:20px;font-weight:600;letter-spacing:-.01em}.folhinha-top .mes span{color:#f4f6f5b8;font-weight:500}.folhinha-top .info{font-family:var(--mono);font-size:12px;color:#f4f6f5bf;white-space:nowrap}.folhinha-body{padding:18px 24px 22px}@media(max-width:600px){.folhinha-top{padding:16px 16px 12px}.folhinha-top:before{left:28px}.folhinha-top:after{right:28px}.folhinha-body{padding:14px 12px 16px}}.cal{width:100%;border-collapse:separate;border-spacing:6px;table-layout:fixed;margin:-6px;width:calc(100% + 12px)}.cal caption{text-align:left}.cal th{font-family:var(--mono);font-size:11px;font-weight:400;color:var(--muted);padding:0 0 4px;text-align:center}.cal td{padding:0}.cal .d{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:1;width:100%;border-radius:10px;border:1px solid var(--line);background:#fff;font-family:var(--mono);font-size:14px;color:var(--ink);font-variant-numeric:tabular-nums}.cal .d.fds{background:var(--weekend-bg);border-color:var(--weekend-bg);color:var(--weekend)}.cal .d.fer{background:var(--holiday-soft);border-color:var(--holiday);color:var(--holiday-ink);font-weight:700}.cal .d.fac{background:var(--optional-soft);border-color:var(--optional);color:var(--optional-ink);font-weight:700}.cal .d.hoje{box-shadow:0 0 0 2px var(--green) inset}.cal button.d{cursor:pointer;padding:0}.cal button.d:hover{filter:brightness(.97)}.cal-g .d{justify-content:flex-start;align-items:flex-start;padding:10px 12px;font-size:14px;border-radius:12px}.cal-g .d:after{content:"";position:absolute;left:12px;bottom:11px;width:6px;height:6px;border-radius:2px}.cal-g .d.fer:after{background:var(--holiday)}.cal-g .d.fac:after{background:var(--optional)}.cal-g th{font-size:12px}.cal-g .dom{color:var(--holiday-ink)}@media(max-width:600px){.cal{border-spacing:5px;margin:-5px;width:calc(100% + 10px)}.cal .d{font-size:13px;border-radius:8px}.cal-g .d{justify-content:center;align-items:center;padding:0}.cal-g .d:after{display:none}}.legenda{display:flex;flex-wrap:wrap;gap:8px 18px;font-family:var(--mono);font-size:11px;color:var(--muted)}.legenda span{display:inline-flex;align-items:center;gap:6px}.legenda i{width:10px;height:10px;border-radius:3px;display:inline-block}.legenda .lf{background:var(--holiday-soft);border:1px solid var(--holiday)}.legenda .lp{background:var(--optional-soft);border:1px solid var(--optional)}.legenda .lw{background:var(--weekend-bg)}.legenda .lh{border:2px solid var(--green)}.balao{position:absolute;z-index:15;width:max-content;max-width:min(300px,calc(100vw - 32px));background:var(--forest);color:var(--bg);border-radius:12px;padding:12px 14px;box-shadow:0 12px 32px -12px #243a2c66;animation:fade .15s ease-out;pointer-events:none}.balao .b-top{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11px;color:#f4f6f599;margin-bottom:6px}.balao .b-nome{font-size:15px;font-weight:600;line-height:1.3}.balao .b-lei{font-size:12px;color:#f4f6f5bf;margin-top:3px}.balao .b-item+.b-item{margin-top:10px;padding-top:10px;border-top:1px solid rgba(244,246,245,.15)}.mini{display:flex;flex-direction:column;gap:8px;padding:12px}.mini-head{display:flex;justify-content:space-between;font-family:var(--mono);font-size:11px;color:var(--ink-2)}.mini-head b{color:var(--holiday);font-weight:500}.mini-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.mini-grid i{aspect-ratio:1;border-radius:2px;background:var(--line-3)}.mini-grid i.v{background:transparent}.mini-grid i.w{background:#d6ddd9}.mini-grid i.f{background:var(--holiday)}.mini-grid i.p{background:var(--optional)}.mini-grid i.h{background:var(--green)}.ano-strip{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:12px;padding:16px 18px}.ano-strip .mini{padding:0;gap:6px}.ano-strip .mini-grid{gap:2px}@media(max-width:760px){.ano-strip{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px 12px}}.ftab{width:100%;border-collapse:collapse;font-size:14px}.ftab th{font-family:var(--mono);font-size:11px;font-weight:400;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);text-align:left;padding:14px 12px 10px;border-bottom:1px solid var(--line)}.ftab td{padding:11px 12px;border-bottom:1px solid var(--line-4);vertical-align:middle}.ftab tr:last-child td{border-bottom:0}.ftab th:first-child,.ftab td:first-child{padding-left:20px}.ftab th:last-child,.ftab td:last-child{padding-right:20px}.ftab .f-data{font-family:var(--mono);font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.ftab .f-dia-m{display:none}.ftab .f-dia{font-family:var(--mono);font-size:12px;color:var(--muted)}.ftab .f-nome{font-weight:500}.ftab .f-nome small{display:block;font-weight:400;font-size:12px;color:var(--muted);margin-top:2px}.ftab .f-lei a{font-size:13px;color:var(--ink-2)}.ftab .f-lei span{font-size:13px;color:var(--muted)}.ftab .f-lei .f-nc{display:block;font-size:11px;font-weight:600;color:var(--warn, #8a5a00);margin-top:2px}.nota-nc{font-size:14px;color:var(--ink-2);border-left:3px solid var(--warn, #b7791f);padding-left:10px}.ftab .f-nome a{color:var(--ink);text-decoration:none;background-image:linear-gradient(var(--line-2),var(--line-2));background-size:100% 1px;background-position:0 100%;background-repeat:no-repeat}.ftab .f-nome a:hover{color:var(--green-text);background-image:linear-gradient(currentColor,currentColor)}.ftab tr.passou .f-data:after,.ftab tr.proximo .f-data:after{display:block;margin-top:3px;font-size:9.5px;font-weight:500;letter-spacing:.08em;text-transform:uppercase}.ftab tr.passou .f-data:after{content:"já passou";color:var(--muted)}.ftab tr.passou .f-data time{color:var(--muted)}.ftab tr.proximo .f-data:after{content:"próximo";color:var(--green-text)}.ftab tr.proximo td{background:#f3faf6}.ftab tr.proximo td:first-child{box-shadow:inset 3px 0 0 var(--green)}.ftab-nota{padding:12px 20px;border-top:1px solid var(--line-4);font-family:var(--mono);font-size:11px;color:var(--muted);line-height:1.6}@media(max-width:700px){.ftab thead{display:none}.ftab,.ftab tbody{display:block}.ftab tr{display:grid;grid-template-columns:52px minmax(0,1fr);column-gap:14px;row-gap:5px;padding:14px 16px;border-bottom:1px solid var(--line-4)}.ftab tr:last-child{border-bottom:0}.ftab td{padding:0!important;border:0}.ftab .f-data{grid-column:1;grid-row:1 / span 3;font-size:13px;display:flex;flex-direction:column;gap:3px}.ftab .f-dia-m{display:block;font-weight:400;font-size:11px;color:var(--muted)}.ftab .f-dia{display:none}.ftab .f-nome{grid-column:2;grid-row:1;font-size:15px}.ftab .f-tipo{grid-column:2;grid-row:2;display:inline}.ftab .f-lei{grid-column:2;grid-row:3}.ftab .f-lei a,.ftab .f-lei span{font-family:var(--mono);font-size:11px}}.prose{display:flex;flex-direction:column;gap:14px;font-size:16px;line-height:1.65;color:var(--ink-2)}.prose h2{margin:18px 0 0;font-size:24px;line-height:1.2;color:var(--ink)}.prose h3{margin:10px 0 -4px;font-size:18px;line-height:1.3;color:var(--ink)}.prose ul,.prose ol{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:6px}.prose strong{color:var(--ink)}.prose a{color:var(--ink);text-decoration-color:var(--faint)}.prose a:hover{color:var(--green-text)}@media(max-width:600px){.prose{font-size:15.5px}.prose h2{font-size:21px}}.resumo{display:flex;flex-direction:column;gap:10px;padding:20px 22px;background:var(--green-soft);border-radius:var(--r)}.resumo h2{font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--green-ink)}.resumo ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px;font-size:15px;line-height:1.55;color:var(--ink-2)}.aviso{display:flex;gap:12px;align-items:flex-start;padding:14px 18px;background:var(--optional-soft);border-radius:12px;font-size:14px;line-height:1.5;color:var(--optional-ink)}.aviso svg{flex-shrink:0;margin-top:2px}.faq{display:flex;flex-direction:column}.faq>h2{margin-bottom:8px;font-size:22px}.faq details{border-bottom:1px solid var(--line-2)}.faq summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 0;cursor:pointer;min-height:48px}.faq summary::-webkit-details-marker{display:none}.faq summary h3{font-size:15px;font-weight:500;letter-spacing:0;line-height:1.4}.faq summary:hover h3{color:var(--green-text)}.faq summary svg{flex-shrink:0;color:var(--muted);transition:transform .18s}.faq details[open] summary svg{transform:rotate(45deg)}.faq-a{padding:0 28px 16px 0;font-size:15px;line-height:1.6;color:var(--ink-2)}.faq-a p+p{margin-top:8px}@media(max-width:600px){.faq-a{padding-right:0}}.fontes{display:flex;flex-wrap:wrap;gap:6px 14px;padding-top:20px;border-top:1px solid var(--line);font-family:var(--mono);font-size:12px;color:var(--muted);line-height:1.6}.fontes a{color:var(--muted)}.fontes a:hover{color:var(--green-text)}.rel-links{display:flex;flex-direction:column}.rel-links a{padding:7px 0;font-size:15px;text-decoration:none;color:var(--ink)}.rel-links a:hover{color:var(--green-text)}.ad-unit{display:block;min-height:280px;margin:0}.ad-unit>span{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.ad-unit ins{min-height:250px}@media(min-width:761px){.ad-unit{min-height:120px}.ad-unit ins{min-height:90px}}.ufs{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:8px}.ufs a{display:flex;align-items:center;justify-content:center;height:38px;border-radius:8px;background:#fff;border:1px solid var(--line-2);font-family:var(--mono);font-size:13px;font-weight:600;color:var(--ink);text-decoration:none}.ufs a:hover{border-color:var(--ink-2)}.ufs a.sel{background:var(--forest);border-color:var(--forest);color:var(--bg)}@media(max-width:600px){.ufs{grid-template-columns:repeat(6,minmax(0,1fr))}.ufs a{height:42px}}.tools{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.tool-card{display:flex;flex-direction:column;gap:6px;padding:22px;background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-sm);text-decoration:none;color:var(--ink);transition:transform .15s,box-shadow .15s}.tool-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-hover);color:var(--ink)}.tool-card .ic{width:44px;height:44px;margin-bottom:14px}.tool-card strong{font-size:17px;font-weight:600}.tool-card span.d{font-size:14px;color:var(--ink-2);line-height:1.45}.tool-card span.k{font-family:var(--mono);font-size:11px;color:var(--muted);margin-top:auto;padding-top:14px}@media(max-width:900px){.tools{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}}@media(max-width:600px){.tool-card{padding:16px}.tool-card .ic{width:30px;height:30px;margin-bottom:10px}.tool-card span.d,.tool-card span.k{display:none}.tool-card strong{font-size:15px}}.selo{background:var(--forest);color:var(--bg);border-radius:var(--r);padding:28px 32px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;align-items:center}.selo .label{color:#f4f6f5b8}.selo h2{color:var(--bg);font-size:22px;margin:10px 0 12px}.selo p{color:#f4f6f5cc;font-size:15px;line-height:1.55}.selo a{color:var(--bg);display:inline-block;margin-top:14px;font-weight:500;text-decoration-color:#f4f6f580}.selo-grid{display:grid;grid-template-columns:repeat(5,20px);gap:5px}.selo-grid i{width:20px;height:20px;border-radius:4px;background:var(--forest-2)}.selo-grid i.f{background:var(--holiday)}.selo-grid i.h{background:var(--bg)}@media(max-width:600px){.selo{padding:22px;grid-template-columns:1fr}.selo-grid{display:none}}.pg{padding-top:32px;padding-bottom:88px;display:flex;flex-direction:column;gap:28px}.pg-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px 24px;align-items:start}.pg-head .crumbs{grid-column:1 / -1}.pg-head .h1,.pg-head .lead{grid-column:1}.pg-head .btns{grid-column:2;grid-row:2;justify-content:flex-end}@media(max-width:700px){.pg{padding-top:20px;gap:22px}.pg-head{grid-template-columns:1fr}.pg-head .btns{grid-column:1;grid-row:auto;justify-content:stretch;display:grid;grid-template-columns:1fr auto auto}}.prox{display:flex;align-items:center;gap:22px;padding:18px 22px}.prox-dia{display:flex;align-items:baseline;gap:6px;padding-right:22px;border-right:1px solid var(--line)}.prox-dia b{font-size:52px;font-weight:600;letter-spacing:-.04em;line-height:.9;font-variant-numeric:tabular-nums}.prox-dia span{font-size:16px;color:var(--muted)}.prox-txt{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}.prox-txt .label{font-size:10.5px}.prox-txt strong{font-size:17px;font-weight:600;line-height:1.3}.prox-txt .quando{font-family:var(--mono);font-size:12px;color:var(--muted)}.quando time,time.em{color:var(--green-text);font-weight:600}@media(max-width:600px){.prox{gap:14px;padding:16px}.prox-dia{padding-right:0;border:0}.prox-dia b{font-size:44px}.prox .chip{display:none}}.fdoes{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,170px),1fr));gap:12px}.fdao{padding:16px 16px 18px;display:flex;flex-direction:column;gap:4px}.fdao .per{font-family:var(--mono);font-size:11px;color:var(--muted)}.fdao .n{font-size:34px;font-weight:600;color:var(--green-text);letter-spacing:-.02em;line-height:1.1;margin-top:8px}.fdao .n small{font-size:14px;color:var(--ink-2);font-weight:400;margin-left:4px;letter-spacing:0}.fdao strong{font-size:15px;font-weight:600}.fdao .obs{font-size:12.5px;color:var(--muted);line-height:1.4}.fdao.fac .n{color:var(--optional-ink)}@media(max-width:600px){.fdoes{grid-template-columns:1fr 1fr;gap:10px}.fdao .obs{display:none}}.barras{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:8px;padding:18px 20px 16px;align-items:end}.barra{display:flex;flex-direction:column;align-items:center;gap:6px;text-decoration:none;color:var(--ink)}.barra i{display:block;width:100%;background:var(--forest);border-radius:4px 4px 2px 2px}.barra.max i{background:var(--green)}.barra b{font-family:var(--mono);font-size:13px;font-variant-numeric:tabular-nums}.barra span{font-family:var(--mono);font-size:10.5px;color:var(--muted)}.barra:hover i{opacity:.85}@media(max-width:600px){.barras{gap:4px;padding:14px 10px}.barra b{font-size:11px}}.duas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px}@media(max-width:760px){.duas{grid-template-columns:1fr;gap:28px}}.cal-add{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:10px}.cal-add a{display:flex;flex-direction:column;gap:2px;padding:14px 16px;border:1px solid var(--line-2);border-radius:12px;background:#fff;text-decoration:none;color:var(--ink)}.cal-add a:hover{border-color:var(--ink-2)}.cal-add a strong{font-size:15px}.cal-add a span{font-size:12.5px;color:var(--muted)}.lista-links{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:0 32px;margin:0;padding:0;list-style:none;border-top:1px solid var(--line-2)}.lista-links a{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:13px 2px;border-bottom:1px solid var(--line-2);text-decoration:none;color:var(--ink);min-height:50px}.lista-links a:hover{color:var(--green-text)}.lista-links small{font-family:var(--mono);font-size:11px;color:var(--muted)}.mes-pg{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:20px 48px;align-items:start}.mes-main{display:flex;flex-direction:column;gap:18px}.mes-side{display:flex;flex-direction:column;gap:16px;padding-top:30px}.mes-tit{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.mes-tit h1{font-size:clamp(36px,6vw,60px);letter-spacing:-.04em;line-height:1}.mes-tit h1 span{color:var(--muted);font-weight:500}.setas{display:flex;gap:8px;flex-shrink:0}.setas a{width:46px;height:46px;display:grid;place-items:center;border-radius:10px;background:#fff;border:1px solid var(--line-2);text-decoration:none;color:var(--ink);font-size:18px}.setas a:hover{border-color:var(--ink-2)}.stats2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.stat{padding:16px}.stat b{display:block;font-size:34px;font-weight:600;letter-spacing:-.02em;line-height:1.1}.stat b.r{color:var(--holiday-ink)}.stat span{font-size:13px;color:var(--ink-2)}.fmes li{display:grid;grid-template-columns:44px minmax(0,1fr);gap:2px 12px;padding:14px 18px;border-top:1px solid var(--line-4)}.fmes li:first-child{border-top:0}.fmes{list-style:none;margin:0;padding:0}.fmes .n{font-family:var(--mono);font-size:20px;font-weight:600;color:var(--holiday-ink);grid-row:span 2}.fmes .n.fac{color:var(--optional-ink)}.fmes strong{font-size:15px;font-weight:600}.fmes small{font-family:var(--mono);font-size:11px;color:var(--muted)}.fmes-vazio{padding:16px 18px;font-size:14px;color:var(--muted)}@media(max-width:860px){.mes-pg{grid-template-columns:1fr}.mes-side{padding-top:0}}.tool-pg{padding-top:32px;padding-bottom:88px;display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px 40px;align-items:start}.tool-pg>.tool-extra{grid-column:1}.tool-side{display:flex;flex-direction:column;gap:16px;grid-column:2;grid-row:1 / span 3}@media(max-width:960px){.tool-pg{grid-template-columns:1fr;padding-top:12px}.tool-side{grid-column:1;grid-row:auto}}.tool{position:relative;background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow-card);padding:40px 32px 32px;display:flex;flex-direction:column;align-items:center;gap:22px;min-height:min(560px,72vh);justify-content:center}.tool-status{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.tool-status:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--faint)}.tool[data-estado=rodando] .tool-status:before{background:var(--green)}.tool[data-estado=fim] .tool-status:before{background:var(--holiday)}.digitos{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:clamp(56px,13vw,150px);font-weight:500;line-height:1;letter-spacing:-.04em;color:var(--ink);white-space:nowrap;display:flex;align-items:baseline}.digitos .dec{font-size:.36em;color:var(--muted);letter-spacing:0;margin-left:4px}.regua{width:100%;max-width:640px}.regua-ticks{display:flex;justify-content:space-between;height:22px;align-items:stretch}.regua-ticks i{width:2px;border-radius:1px;background:var(--line-2)}.regua-ticks i.on{background:var(--green)}.regua-ticks i.ag{background:var(--ink);width:2px}.regua-num{display:flex;justify-content:space-between;font-family:var(--mono);font-size:10px;color:var(--muted);margin-top:6px}.tool-btns{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.tool-btns .btn{min-width:120px;min-height:56px;font-size:16px}.tool-btns .btn-primary{min-width:160px}.atalhos{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 16px;font-family:var(--mono);font-size:11px;color:var(--muted)}.atalhos kbd{font-family:var(--mono);font-size:11px;background:var(--line-4);border:1px solid var(--line-2);border-radius:4px;padding:1px 6px;margin-right:6px;color:var(--ink-2)}.tool-fs{position:absolute;top:18px;right:18px;width:44px;height:44px;display:grid;place-items:center;border-radius:10px;border:1px solid var(--line-2);background:#fff;color:var(--ink)}.tool-fs:hover{border-color:var(--ink-2)}.tool-som{position:absolute;top:18px;left:18px;height:44px;display:inline-flex;align-items:center;gap:6px;padding:0 12px;border-radius:10px;border:1px solid var(--line-2);background:#fff;font-size:13px;color:var(--ink-2)}.presets{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.presets button{min-height:44px;padding:0 16px;border-radius:10px;border:1px solid var(--line-2);background:#fff;font-family:var(--mono);font-size:14px;color:var(--ink)}.presets button:hover{border-color:var(--ink-2)}.presets button[aria-pressed=true]{background:var(--forest);border-color:var(--forest);color:var(--bg)}.presets input{width:110px;min-height:44px;border-radius:10px;border:1px solid var(--line-2);background:var(--bg);padding:0 12px;font-family:var(--mono);font-size:16px;text-align:center}.anel{position:relative;width:min(340px,70vw);aspect-ratio:1;display:grid;place-items:center}.anel svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}.anel .trilha{stroke:var(--line-3)}.anel .prog{stroke:var(--green);transition:stroke-dashoffset .25s linear}.anel .digitos{font-size:clamp(40px,11vw,76px)}.voltas{list-style:none;margin:0;padding:0;max-height:360px;overflow-y:auto}.voltas li{display:grid;grid-template-columns:36px 1fr auto;align-items:center;gap:10px;padding:12px 18px;border-top:1px solid var(--line-4);font-family:var(--mono);font-size:12px;color:var(--muted)}.voltas li b{font-size:15px;color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}.voltas li.melhor b{color:var(--green-text)}.voltas li.pior b{color:var(--holiday-ink)}.voltas-vazio{padding:14px 18px;font-size:13px;color:var(--muted);border-top:1px solid var(--line-4)}.side-head{display:flex;justify-content:space-between;padding:14px 18px}.tool.cheia,.tool:fullscreen{position:fixed;inset:0;z-index:100;border-radius:0;border:0;min-height:100%;background:var(--night);color:var(--bg);padding:24px}.tool:fullscreen{position:static}.tool.cheia .digitos,.tool:fullscreen .digitos{color:var(--bg);font-size:clamp(64px,17vw,260px)}.tool.cheia .anel .digitos,.tool:fullscreen .anel .digitos{font-size:clamp(44px,12vw,120px)}.tool.cheia .tool-status,.tool:fullscreen .tool-status{color:#f4f6f599}.tool.cheia .regua-ticks i,.tool:fullscreen .regua-ticks i{background:#2e3d34}.tool.cheia .regua-ticks i.on,.tool:fullscreen .regua-ticks i.on{background:var(--green)}.tool.cheia .regua-ticks i.ag,.tool:fullscreen .regua-ticks i.ag{background:var(--bg)}.tool.cheia .btn-ghost,.tool:fullscreen .btn-ghost,.tool.cheia .tool-fs,.tool:fullscreen .tool-fs,.tool.cheia .tool-som,.tool:fullscreen .tool-som,.tool.cheia .presets button,.tool:fullscreen .presets button{background:transparent;color:var(--bg);border-color:#34443a}.tool.cheia .atalhos,.tool:fullscreen .atalhos,.tool.cheia .presets input,.tool:fullscreen .presets input{display:none}.tool.cheia .anel .trilha,.tool:fullscreen .anel .trilha{stroke:#23322a}.tool.cheia .digitos .dec,.tool:fullscreen .digitos .dec{color:#f4f6f580}.tool.cheia .tool-sub,.tool:fullscreen .tool-sub{color:#f4f6f599}body.tem-cheia{overflow:hidden}.tool-sub{font-family:var(--mono);font-size:12px;color:var(--muted)}@media(max-width:600px){.tool{border-radius:20px;padding:64px 16px 20px;min-height:calc(100svh - 110px);gap:18px}.tool-btns{width:100%;display:grid;grid-template-columns:1fr 1fr}.tool-btns .btn-primary{grid-column:1 / -1}.tool-btns .btn{min-width:0}.digitos{font-size:clamp(56px,18vw,90px)}.atalhos{display:none}}.relogio-data{font-size:18px;color:var(--ink-2);text-align:center}.tool.cheia .relogio-data,.tool:fullscreen .relogio-data{color:#f4f6f5b3}.fuso-sel{min-height:44px;border-radius:10px;border:1px solid var(--line-2);background:#fff;padding:0 12px;font-size:16px;max-width:100%}.cont-pg{padding-top:40px;padding-bottom:88px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px 48px;align-items:start}.cont-hero{display:flex;flex-direction:column;gap:14px}.cont-faltam{font-size:28px;font-weight:500;color:var(--muted)}.cont-num{display:flex;align-items:baseline;gap:18px;flex-wrap:wrap}.cont-num b{font-size:clamp(120px,20vw,200px);font-weight:600;letter-spacing:-.07em;line-height:.82;color:var(--ink);font-variant-numeric:tabular-nums}.cont-num span{font-size:clamp(32px,4vw,44px);font-weight:500;color:var(--muted);letter-spacing:-.02em}.cont-hms{font-family:var(--mono);font-size:34px;color:var(--green-text);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.cont-grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(18px,1fr));gap:5px}.cont-grade i{aspect-ratio:1;border-radius:3px;background:var(--line-3)}.cont-grade i.f{background:var(--holiday)}.cont-grade i.p{background:var(--optional)}.cont-grade i.a{background:var(--green)}.cont-grade.denso{grid-template-columns:repeat(auto-fill,minmax(11px,1fr));gap:3px}.criar{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:8px}.criar input{min-height:48px;border-radius:10px;border:1px solid var(--line-2);background:var(--bg);padding:0 14px;font-size:16px;min-width:0}.criar input[type=date]{font-family:var(--mono)}.criar-url{font-family:var(--mono);font-size:11px;color:var(--muted);overflow-wrap:anywhere;margin-top:8px}.pixel{display:grid;grid-template-columns:repeat(7,9px);gap:3px}.pixel i{width:9px;height:9px;border-radius:2px}@media(max-width:860px){.cont-pg{grid-template-columns:1fr;padding-top:24px}}@media(max-width:600px){.criar{grid-template-columns:1fr 1fr}.criar .btn{grid-column:1 / -1}.cont-hms{font-size:26px}}.pf-cards{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.pf-card{padding:18px;display:flex;flex-direction:column;gap:2px;text-decoration:none;color:var(--ink)}.pf-card .top{display:flex;justify-content:space-between;align-items:center;gap:6px;margin-bottom:14px}.pf-card .top small{font-family:var(--mono);font-size:11px;color:var(--muted)}.pf-card b{font-size:44px;font-weight:600;letter-spacing:-.04em;line-height:1}.pf-card .m{font-size:14px;color:var(--muted);margin-bottom:12px}.pf-card strong{font-size:15px;font-weight:600;line-height:1.3}.pf-card .em{font-family:var(--mono);font-size:12px;color:var(--muted);margin-top:auto;padding-top:12px;font-weight:400}.pf-card.primeiro{background:var(--forest);border-color:var(--forest);color:var(--bg)}.pf-card.primeiro strong{color:var(--bg)}.pf-card.primeiro .m,.pf-card.primeiro .top small{color:#f4f6f5b8}.pf-card.primeiro .em{color:var(--green-light)}@media(max-width:1000px){.pf-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:600px){.pf-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.pf-card{padding:14px}.pf-card b{font-size:36px}}.ano-dots{display:grid;grid-template-columns:repeat(auto-fill,minmax(11px,1fr));gap:3px}.ano-dots i{aspect-ratio:1;border-radius:2px;background:var(--line-3)}.ano-dots i.x{background:var(--muted)}.ano-dots i.f{background:var(--holiday)}.ano-dots i.p{background:var(--optional)}.ano-dots i.h{background:var(--green)}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.kpi{padding:20px}.kpi .label{font-size:11px}.kpi b{display:block;font-size:40px;font-weight:600;letter-spacing:-.03em;line-height:1.1;margin-top:6px;font-variant-numeric:tabular-nums}.kpi b small{font-size:18px;color:var(--muted);font-weight:400;letter-spacing:0}.kpi b.r{color:var(--holiday-ink)}@media(max-width:760px){.kpis{grid-template-columns:1fr 1fr}.kpi b{font-size:32px}}.seg{display:inline-flex;gap:6px;flex-wrap:wrap}.seg button,.seg select{min-height:38px;padding:0 12px;border-radius:8px;border:1px solid var(--line-2);background:#fff;font-family:var(--mono);font-size:13px;color:var(--ink)}.seg button[aria-pressed=true]{background:var(--forest);color:var(--bg);border-color:var(--forest)}@media(max-width:760px){.seg button,.seg select{min-height:44px;font-size:16px;max-width:100%}}.hub{padding-top:56px;padding-bottom:88px;display:flex;flex-direction:column;gap:64px}.hero{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}.hero-txt{display:flex;flex-direction:column;gap:20px;min-width:0}.hero-dia{display:flex;align-items:baseline;gap:20px;flex-wrap:wrap}.hero-dia b{font-size:clamp(120px,15vw,184px);font-weight:600;letter-spacing:-.06em;line-height:.85;font-variant-numeric:tabular-nums}.hero-dia span{font-size:clamp(32px,4vw,44px);font-weight:500;letter-spacing:-.02em;color:var(--muted)}.hero-nome{display:flex;flex-direction:column;gap:6px}.hero-nome strong{font-size:28px;font-weight:600;letter-spacing:-.015em;line-height:1.2}.hero-nome .quando{font-family:var(--mono);font-size:15px;color:var(--ink-2)}.hero-cal{margin-top:10px}.hero-mob{display:none}.meses3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.meses3 .mini{background:#fff;border:1px solid var(--line);border-radius:12px}.hub-baixo{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:start}@media(max-width:960px){.hero{grid-template-columns:1fr;gap:32px}.hub-baixo{grid-template-columns:1fr;gap:40px}}@media(max-width:600px){.hub{padding-top:24px;gap:40px}.hero-desk{display:none}.hero-mob{display:block}.hero-mob .folhinha-body{padding:22px 24px 24px;display:flex;flex-direction:column;gap:14px}.hero-mob .hero-dia b{font-size:108px}.hero-mob .hero-dia span{font-size:26px}.hero-mob .hero-nome strong{font-size:21px}.hero-mob .hero-nome .quando{font-size:14px}.hero-mob-btns{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:14px}.hero .hero-cal{display:none}.hero-txt>.btns{display:none}}.doc{padding-top:32px;padding-bottom:88px;display:flex;flex-direction:column;gap:22px}.doc .prose{max-width:760px}.revisao{font-family:var(--mono);font-size:12px;color:var(--muted)}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:#fff;max-width:100%}.table-wrap table{border-collapse:collapse;width:100%;font-size:14px}.table-wrap th,.table-wrap td{padding:9px 12px;border-bottom:1px solid var(--line-4);text-align:left;vertical-align:top}.table-wrap th{font-size:11px;font-family:var(--mono);font-weight:400;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:var(--bg)}.table-wrap tr:last-child td{border-bottom:0}.table-wrap td.n{font-family:var(--mono);text-align:right}@media(max-width:600px){.pf-cards .pf-card:nth-child(n+5){display:none}}.cont-hero.cheia,.cont-hero:fullscreen{position:fixed;inset:0;z-index:100;background:var(--night);padding:32px;justify-content:center;align-items:center;text-align:center}.cont-hero:fullscreen{position:static}.cont-hero.cheia *,.cont-hero:fullscreen *{color:var(--bg)}.cont-hero.cheia .cont-num,.cont-hero:fullscreen .cont-num{justify-content:center}.cont-hero.cheia .cont-hms,.cont-hero:fullscreen .cont-hms{color:var(--green-light)}.cont-hero.cheia .btn-primary,.cont-hero:fullscreen .btn-primary,.cont-hero.cheia .eyebrow,.cont-hero:fullscreen .eyebrow,.cont-hero.cheia .pixel,.cont-hero:fullscreen .pixel{display:none}.cont-hero.cheia .btn-ghost,.cont-hero:fullscreen .btn-ghost{background:transparent;border-color:#34443a}.cont-hero.cheia .lead,.cont-hero:fullscreen .lead{color:#f4f6f5b3;margin:0 auto}.tool.cheia .fuso-sel,.tool:fullscreen .fuso-sel{background:transparent;color:var(--bg);border-color:#34443a}.tool.cheia .fuso-sel option,.tool:fullscreen .fuso-sel option{color:var(--ink)}.ilustra{display:block;width:100%;height:auto;aspect-ratio:3 / 2;object-fit:cover;background:var(--line-3)}.quadro{position:relative;border-radius:var(--r);overflow:hidden;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-card)}.quadro .ilustra{border-radius:0}.quadro figcaption{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:12px 16px;font-family:var(--mono);font-size:11.5px;color:var(--muted);border-top:1px solid var(--line-4)}.fer-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:32px 48px;align-items:center}.fer-hero .txt{display:flex;flex-direction:column;gap:16px;min-width:0}.fer-prox{display:flex;align-items:center;gap:18px;padding:16px 18px}.fer-prox .dia{display:flex;flex-direction:column;align-items:center;justify-content:center;width:68px;height:72px;border-radius:12px;background:var(--holiday-soft);color:var(--holiday-ink);flex-shrink:0}.fer-prox .dia.fac{background:var(--optional-soft);color:var(--optional-ink)}.fer-prox .dia b{font-size:30px;line-height:1;font-weight:600;letter-spacing:-.03em}.fer-prox .dia span{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;margin-top:3px}.fer-prox .t{display:flex;flex-direction:column;gap:2px;min-width:0}.fer-prox .t strong{font-size:17px}.fer-prox .t span{font-family:var(--mono);font-size:12.5px;color:var(--muted)}.lei-box{border-left:3px solid var(--forest);background:#fff;border-radius:0 12px 12px 0;padding:16px 20px;display:flex;flex-direction:column;gap:8px}.lei-box blockquote{margin:0;font-size:15.5px;line-height:1.6;color:var(--ink)}.lei-box a{font-family:var(--mono);font-size:12px;color:var(--muted)}.abre{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.abre .card{padding:16px 18px;display:flex;gap:14px;align-items:flex-start}.abre .ico{width:36px;height:36px;border-radius:10px;background:var(--green-soft);color:var(--green-ink);display:grid;place-items:center;flex-shrink:0}.abre strong{display:block;font-size:15px;margin-bottom:3px}.abre p{font-size:14px;line-height:1.5;color:var(--ink-2)}.onde-lei{display:flex;flex-wrap:wrap;gap:8px}.rel-fer{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:14px}.rel-fer a{display:flex;flex-direction:column;text-decoration:none;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;transition:transform .15s,box-shadow .15s}.rel-fer a:hover{transform:translateY(-2px);box-shadow:var(--shadow-hover);color:var(--ink)}.rel-fer .rt{padding:12px 14px 14px;display:flex;flex-direction:column;gap:2px}.rel-fer .rt strong{font-size:15px}.rel-fer .rt span{font-family:var(--mono);font-size:11.5px;color:var(--muted)}@media(max-width:860px){.fer-hero{grid-template-columns:1fr}.fer-hero .quadro{order:-1}.abre{grid-template-columns:1fr}}.hero2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.02fr);gap:48px 56px;align-items:center}.h2-txt{display:flex;flex-direction:column;gap:20px;min-width:0}.h2-top{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.aovivo{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--green-ink);background:var(--green-soft);border-radius:999px;padding:4px 10px 4px 8px}.aovivo i{width:7px;height:7px;border-radius:50%;background:var(--green);animation:pulso 1.6s ease-out infinite}@keyframes pulso{0%{box-shadow:0 0 #009e5c8c}70%{box-shadow:0 0 0 7px #009e5c00}to{box-shadow:0 0 #009e5c00}}.hero2 .hero-dia b{animation:sobe .6s cubic-bezier(.2,.8,.2,1) both}.hero2 .hero-dia span{animation:sobe .6s .12s cubic-bezier(.2,.8,.2,1) both}@keyframes sobe{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}.h2-nome{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);width:fit-content}.h2-nome strong{font-size:30px;font-weight:600;letter-spacing:-.02em;line-height:1.15;background-image:linear-gradient(var(--holiday),var(--holiday));background-size:0 3px;background-position:0 100%;background-repeat:no-repeat;transition:background-size .25s}.h2-nome svg{color:var(--holiday);flex-shrink:0;transition:transform .2s}.h2-nome:hover{color:var(--ink)}.h2-nome:hover strong{background-size:100% 3px}.h2-nome:hover svg{transform:translate(4px)}.contador{display:grid;grid-template-columns:repeat(4,minmax(0,76px));gap:8px}.contador-leg{font-family:var(--mono);font-size:11px;color:var(--muted);margin-top:-12px}.contador div{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 6px 8px;display:flex;flex-direction:column;align-items:center;gap:2px;box-shadow:var(--shadow-sm)}.contador b{font-family:var(--mono);font-size:26px;font-weight:500;letter-spacing:-.03em;font-variant-numeric:tabular-nums;line-height:1.1}.contador div:first-child{background:var(--forest);border-color:var(--forest)}.contador div:first-child b,.contador div:first-child span{color:var(--bg)}.contador span{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.chips-ic .chip{display:inline-flex;align-items:center;gap:6px;padding:5px 9px}.chips-ic .chip[hidden]{display:none}.h2-arte{position:relative;padding:14px 0 64px;min-width:0}.h2-quadro{display:block;position:relative;border-radius:18px;overflow:visible;text-decoration:none;color:var(--ink);background:#fff;border:1px solid var(--line);box-shadow:0 1px 2px #243a2c0d,0 30px 60px -30px #243a2c59;animation:flutua 7s ease-in-out infinite;transform-origin:50% 0}.h2-quadro img{display:block;width:100%;height:auto;aspect-ratio:3 / 2;object-fit:cover;border-radius:17px 17px 0 0}.h2-quadro:hover{color:var(--ink)}.h2-aneis{position:absolute;top:-11px;left:0;right:0;display:flex;justify-content:space-between;padding:0 48px;z-index:2;pointer-events:none}.h2-aneis i{width:10px;height:26px;border-radius:5px;background:var(--forest);box-shadow:inset 0 -12px #3d5e46}.h2-leg{display:flex;justify-content:flex-end;gap:12px;padding:13px 18px;font-size:14px;font-weight:500}.h2-leg .mono{font-size:13px;color:var(--holiday-ink);font-weight:700}@keyframes flutua{0%,to{transform:rotate(-.6deg) translateY(0)}50%{transform:rotate(.5deg) translateY(-6px)}}.h2-mes{position:absolute;left:-40px;bottom:-8px;width:214px;transform:rotate(-3deg);z-index:3}.h2-mes .folhinha-top{padding:12px 14px 9px}.h2-mes .folhinha-top .mes{font-size:14px}.h2-mes .folhinha-top .info{display:none}.h2-mes .folhinha-top:before,.h2-mes .folhinha-top:after{width:9px;height:16px;top:-7px;border-width:2px}.h2-mes .folhinha-top:before{left:24px}.h2-mes .folhinha-top:after{right:24px}.h2-mes .folhinha-body{padding:10px 10px 12px}.h2-mes .cal{border-spacing:3px;margin:-3px;width:calc(100% + 6px)}.h2-mes .cal th{font-size:9px}.h2-mes .cal .d{font-size:10px;border-radius:5px}.h2-meses{display:none}.pf-cards.com-img .pf-card{padding:0;overflow:hidden}.pf-cards.com-img .pf-img{display:block;width:100%;height:auto;aspect-ratio:3 / 2;object-fit:cover}.pf-cards.com-img .pf-card>:not(.pf-img){margin-left:16px;margin-right:16px}.pf-cards.com-img .pf-card .top{margin-top:14px}.pf-cards.com-img .pf-card .em{margin-bottom:16px}a.pf-card{transition:transform .15s,box-shadow .15s}a.pf-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-hover);color:inherit}.pf-card.primeiro:hover{color:var(--bg)}@media(max-width:1060px){.h2-mes{left:-12px;width:220px}}@media(max-width:960px){.hero2{grid-template-columns:1fr;gap:28px}.h2-arte{order:-1;padding-bottom:0}.h2-mes{display:none}.h2-meses{display:flex}}@media(max-width:600px){.hero2 .hero-dia b{font-size:104px}.hero2 .hero-dia span{font-size:26px}.h2-nome strong{font-size:22px}.h2-nome svg{width:18px;height:18px}.contador{grid-template-columns:repeat(4,minmax(0,1fr))}.contador b{font-size:22px}.hero2 .btns{display:grid;grid-template-columns:1fr auto}.hero2 .btns .h2-add{display:none}.h2-aneis{padding:0 32px}.pf-cards.com-img .pf-card>:not(.pf-img){margin-left:12px;margin-right:12px}}.banner{margin:0}.banner .ilustra{aspect-ratio:5 / 2}.tab-anos td,.tab-anos th{white-space:nowrap}@media(max-width:700px){.ftab.tab-anos thead{display:table-header-group}.ftab.tab-anos,.ftab.tab-anos tbody{display:table;width:100%}.ftab.tab-anos tbody{display:table-row-group}.ftab.tab-anos tr{display:table-row;padding:0}.ftab.tab-anos td{display:table-cell;padding:10px 8px!important;border-bottom:1px solid var(--line-4);font-size:12px}.ftab.tab-anos td.f-nome{white-space:normal;font-size:13.5px}.ftab.tab-anos th{padding:10px 8px}}@media(max-width:1120px){.header-cta{display:none}.site-nav{gap:20px}}.fer-hero .chip{white-space:normal}@media(max-width:700px){.ftab tr{grid-template-columns:60px minmax(0,1fr)}}.card:has(>.tab-anos){overflow-x:auto}@media(max-width:700px){.ftab.tab-anos td{padding:9px 6px!important}.ftab.tab-anos td.f-nome{min-width:120px}}
</style></head> <body> <a class="skip-link" href="#conteudo">Ir para o conteúdo</a> <div class="page"> <header class="site-header"> <div class="wrap"> <a href="/" class="logo" aria-label="feriados.net.br, página inicial"><span class="logo-mark" aria-hidden="true"><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i></span> <span class="logo-text">feriados<span>.net.br</span></span></a> <nav class="site-nav" aria-label="Principal"> <a href="/2026/">Feriados 2026</a><a href="/2027/">2027</a><a href="/feriado/">Os feriados</a><a href="/estados/">Por estado</a><a href="/ferramentas/">Ferramentas</a><a href="/metodologia/">Metodologia</a> </nav> <a class="header-cta" href="/2026/#adicionar">Adicionar ao calendário</a> <details class="menu"> <summary aria-label="Abrir menu"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 8h16"/><path d="M4 16h16"/></svg></summary> <div class="menu-panel"> <a href="/2026/">Feriados 2026</a><a href="/2027/">2027</a><a href="/feriado/">Os feriados</a><a href="/estados/">Por estado</a><a href="/ferramentas/">Ferramentas</a><a href="/metodologia/">Metodologia</a> <a href="/cidades/">Feriados por cidade</a> <a href="/proximo-feriado/">Próximo feriado</a> <hr> <a href="/ferramentas/cronometro/">Cronômetro</a><a href="/ferramentas/temporizador/">Temporizador</a><a href="/ferramentas/contagem-regressiva/">Contagem</a><a href="/ferramentas/relogio/">Relógio</a> <hr> <a href="/2026/#adicionar">Adicionar ao calendário</a> </div> </details> </div> </header> <main id="conteudo">  <article class="wrap-narrow doc"> <nav aria-label="Você está em"> <ol class="crumbs"> <li><a href="/">Início</a></li><li><span aria-current="page">API e .ics</span></li> </ol> </nav> <h1 class="h1">API e .ics</h1> <div class="prose">  <div class="resumo"> <h2>Resumo rápido</h2> <ul> <li>JSON estático por ano, estado e cidade, sem chave e sem limite, com CORS aberto.</li> <li>Cada data traz a lei, a URL da fonte e se a informação está confirmada.</li> <li>Calendário .ics por ano ou por assinatura, que se atualiza sozinho.</li> <li>Uso livre, inclusive comercial, com citação e link para o feriados.net.br.</li> </ul> </div> <p>Os dados do site estão em arquivos estáticos. São os mesmos das páginas, gerados na mesma hora, então o que aparece em <a href="/2027/">feriados 2027</a> é o que sai no JSON. Nada de chave, cadastro ou limite de requisições.</p> <h2>JSON</h2> <ul> <li>Brasil: <code>/api/feriados/2027.json</code></li> <li>Estado: <code>/api/feriados/2027/sp.json</code> (sigla em minúsculas)</li> <li>Capital: <code>/api/feriados/2027/sp/sao-paulo.json</code></li> <li>Outras cidades: <code>/api/feriados/2027/sp/campinas.json</code> (as da página <a href="/cidades/">feriados por cidade</a>)</li> </ul> <p>Anos disponíveis: 2026, 2027, 2028. O arquivo do Brasil tem os nacionais e os pontos facultativos federais. O do estado soma os estaduais, e o da cidade soma também os municipais. Este é um trecho real do arquivo de São Paulo:</p> <pre style="background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px;overflow-x:auto;font-size:12.5px;font-family:var(--mono)">{
 &quot;ano&quot;: 2027,
 &quot;local&quot;: {
  &quot;pais&quot;: &quot;BR&quot;,
  &quot;uf&quot;: &quot;SP&quot;,
  &quot;estado&quot;: &quot;São Paulo&quot;,
  &quot;cidade&quot;: null
 },
 &quot;atualizado_em&quot;: &quot;2026-09-27&quot;,
 &quot;pagina&quot;: &quot;https://feriados.net.br/2027/sp/&quot;,
 &quot;portaria_pontos_facultativos&quot;: {
  &quot;ato&quot;: null,
  &quot;url&quot;: null,
  &quot;publicada&quot;: false
 },
 &quot;total_feriados&quot;: 11,
 &quot;feriados&quot;: [
  {
   &quot;id&quot;: &quot;sp-revolucao-constitucionalista&quot;,
   &quot;data&quot;: &quot;2027-07-09&quot;,
   &quot;dia_semana&quot;: &quot;sexta-feira&quot;,
   &quot;nome&quot;: &quot;Revolução Constitucionalista de 1932&quot;,
   &quot;tipo&quot;: &quot;estadual&quot;,
   &quot;esfera&quot;: &quot;estadual&quot;,
   &quot;feriado&quot;: true,
   &quot;lei&quot;: &quot;Lei estadual nº 9.497/1997&quot;,
   &quot;fonte&quot;: &quot;https://www.al.sp.gov.br/repositorio/legislacao/lei/1997/lei-9497-05.03.1997.html&quot;,
   &quot;confirmado&quot;: true,
   &quot;lei_confirmada&quot;: true
  }
 ],
 &quot;uso&quot;: &quot;Livre, com citação de feriados.net.br e link para a página.&quot;
}</pre> <h2>Campos de cada feriado</h2> <ul> <li><code>data</code>: Dia do feriado, no formato AAAA-MM-DD. Datas transferidas por lei já vêm na data efetiva.</li><li><code>nome</code>: Nome do feriado ou do ponto facultativo.</li><li><code>tipo</code>: nacional, estadual, municipal, religioso ou facultativo.</li><li><code>esfera</code>: Quem criou a data: federal, estadual ou municipal.</li><li><code>feriado</code>: true para feriado; false só nos pontos facultativos.</li><li><code>parcial</code>: Só aparece quando o dia é pela metade, como &quot;até as 14h&quot;.</li><li><code>lei</code>: A norma que cria a data, com número e ano.</li><li><code>fonte</code>: URL do texto da lei, do decreto ou da portaria.</li><li><code>confirmado</code>: false quando a portaria de pontos facultativos do ano ainda não saiu e a data é prevista.</li><li><code>lei_confirmada</code>: false quando não conseguimos ler a lei numa fonte oficial; o motivo vem em lei_nota.</li><li><code>saiba_mais</code>: Link para a página do feriado, quando existe.</li> </ul> <p>No topo do arquivo ficam <code>ano</code>, <code>local</code>, <code>atualizado_em</code>, <code>pagina</code> (a página do site com os mesmos dados), <code>portaria_pontos_facultativos</code> e <code>total_feriados</code>, que conta dias com feriado, sem os pontos facultativos.</p> <h2>Exemplos de uso</h2> <p>No terminal, com <code>curl</code> e <code>jq</code>, os feriados de São Paulo em 2027, sem os pontos facultativos:</p> <pre style="background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px;overflow-x:auto;font-size:12.5px;font-family:var(--mono)">curl -s https://feriados.net.br/api/feriados/2027/sp.json \
  | jq -r &#39;.feriados[] | select(.feriado) | &quot;\(.data) \(.nome)&quot;&#39;</pre> <p>Em JavaScript, no navegador ou no Node 18+, o próximo feriado no Rio de Janeiro (capital):</p> <pre style="background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px;overflow-x:auto;font-size:12.5px;font-family:var(--mono)">const r = await fetch(&#39;https://feriados.net.br/api/feriados/2027/rj/rio-de-janeiro.json&#39;);
const { feriados } = await r.json();
const hoje = new Date().toLocaleDateString(&#39;en-CA&#39;, { timeZone: &#39;America/Sao_Paulo&#39; });
const proximo = feriados.find((f) =&gt; f.feriado &amp;&amp; f.data &gt;= hoje);
console.log(proximo ? proximo.nome + &#39; em &#39; + proximo.data : &#39;nenhum&#39;);</pre> <p>As datas estão no fuso de Brasília, por isso o exemplo calcula "hoje" em America/Sao_Paulo: num servidor em UTC, perto da meia-noite, a data seria a do dia seguinte.</p> <h2>Calendário .ics</h2> <ul> <li>Um ano: <code>/ics/feriados-2027.ics</code>, <code>/ics/feriados-2027-sp.ics</code>, <code>/ics/feriados-2027-sp-sao-paulo.ics</code></li> <li>Assinatura com todos os anos: <code>/ics/feriados-todos.ics</code>, <code>/ics/feriados-todos-sp.ics</code>, <code>/ics/feriados-todos-sp-sao-paulo.ics</code></li> </ul> <p>A assinatura (webcal) se atualiza sozinha no Google Agenda, no Calendário da Apple e no Outlook. Os botões prontos estão em cada página de ano, por exemplo <a href="/2027/#adicionar">feriados 2027</a>. Cada evento traz a lei no campo de descrição.</p> <h2>Fonte dos dados</h2> <p>Os feriados nacionais vêm da <a href="https://www.planalto.gov.br/ccivil_03/leis/l0662.htm" target="_blank" rel="noopener">Lei nº 662/1949</a> e das leis que a alteraram; a regra de quem pode criar feriado está na <a href="https://www.planalto.gov.br/ccivil_03/leis/l9093.htm" target="_blank" rel="noopener">Lei nº 9.093/1995</a>. Os estaduais e municipais saem das leis de cada assembleia e câmara, lidas no site oficial sempre que possível. Os pontos facultativos federais vêm da portaria anual do Ministério da Gestão, publicada no Diário Oficial da União. O método completo, com o que fazemos quando uma lei não abre, está na <a href="/metodologia/">metodologia</a>.</p> <h2>Uso</h2> <p>Livre, inclusive comercial, com citação do feriados.net.br e link para a página correspondente. Se for usar em produção, baixe e guarde uma cópia em vez de consultar a cada acesso. Os dados não substituem a consulta ao texto da lei quando há dinheiro ou prazo em jogo.</p> <section class="faq" aria-labelledby="faq-t"> <h2 id="faq-t">Perguntas frequentes</h2> <details> <summary><h3>Preciso de chave ou cadastro para usar a API?</h3><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14"/><path d="M12 5v14"/></svg></summary> <div class="faq-a"><p>Não. Os arquivos são estáticos, públicos e sem limite de requisições. Basta fazer um GET na URL do ano, do estado ou da cidade.</p></div> </details><details> <summary><h3>Posso usar os dados num produto comercial?</h3><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14"/><path d="M12 5v14"/></svg></summary> <div class="faq-a"><p>Pode. O uso é livre, inclusive comercial, desde que você cite o feriados.net.br com link para a página correspondente. Para uso em produção, guarde uma cópia e atualize de tempos em tempos em vez de consultar a cada acesso.</p></div> </details><details> <summary><h3>Os dados funcionam no navegador, direto do front-end?</h3><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14"/><path d="M12 5v14"/></svg></summary> <div class="faq-a"><p>Funcionam. O CORS está aberto (Access-Control-Allow-Origin: *) em /api/ e em /ics/, então um fetch de qualquer domínio lê o JSON sem proxy.</p></div> </details><details> <summary><h3>Com que frequência os arquivos mudam?</h3><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14"/><path d="M12 5v14"/></svg></summary> <div class="faq-a"><p>Quando muda uma lei, quando sai a portaria de pontos facultativos do ano seguinte (em geral no fim de dezembro) e quando entra um ano novo na lista. O campo atualizado_em diz a data da última revisão; hoje é 27/09/2026.</p></div> </details><details> <summary><h3>Tem feriados de outras cidades além das capitais?</h3><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14"/><path d="M12 5v14"/></svg></summary> <div class="faq-a"><p>Tem, para as cidades da página <a href="/cidades/">feriados por cidade</a>. A URL segue o mesmo padrão da capital, trocando o nome da cidade pelo slug dela, como /api/feriados/2027/sp/campinas.json.</p></div> </details><details> <summary><h3>Encontrei um erro. Como aviso?</h3><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14"/><path d="M12 5v14"/></svg></summary> <div class="faq-a"><p>Pela página de <a href="/contato/">contato</a>. Diga a data, o lugar e, se tiver, o link da lei. Conferimos na fonte oficial antes de mudar o arquivo.</p></div> </details> </section>  </div>  <p class="revisao">Atualizado em 27/09/2026</p> </article>  </main> <footer class="site-footer"> <div class="wrap"> <span class="footer-brand">feriados.net.br · toda data com a lei · America/Sao_Paulo</span> <nav aria-label="Institucional"> <a href="/feriado/">Os feriados</a> <a href="/cidades/">Cidades</a> <a href="/sobre/">Sobre</a> <a href="/metodologia/">Metodologia</a> <a href="/api/">API e .ics</a> <a href="/privacidade/">Privacidade</a> <a href="/contato/">Contato</a> </nav> </div> </footer> </div> <script type="module" src="/_astro/Base.astro_astro_type_script_index_0_lang.B9uSCw4-.js"></script> </body> </html>