Para o seu sítio
Levar a agenda
A programação do Médio Tejo dentro da sua página: uma caixa pronta a colar, os feeds para calendários e leitores de notícias, e a API para quem quiser montar o seu próprio desenho.
Não é preciso conta, nem chave, nem pedir autorização. Escolha em baixo, copie o código e está feito. Não há nada para instalar do seu lado e não lhe vamos cobrar nada — a agenda é pública e é para ser usada.
Em papel
O cartaz da semana de cada concelho: uma folha A4, a preto e branco, com o que há nos próximos sete dias e o código QR para a agenda. Para a porta do café, da junta, da biblioteca ou do lar.
Monte a sua
Fica assim
A moldura a tracejado é desta página e não vai no código — está aqui para se ver onde a caixa acaba.
Copie
Cole esta linha no sítio onde a agenda deve aparecer. A caixa ajusta a altura ao conteúdo sozinha.
<script
src= "https:/ / mediotejo. coreto. org/ widget/ embed. js"
data-concelho= "abrantes"
async></ script>O nosso gestor de conteúdos não deixa colar <script>?
Acontece em muitos. Use o iframe diretamente — funciona igual, mas a altura fica fixa no valor abaixo, calculado para o que escolheu.
<iframe
src= "https:/ / mediotejo. coreto. org/ widget/ abrantes"
title= "Agenda cultural de Abrantes"
width= "100%"
height= "588"
loading= "lazy"
style= "border:0"></ iframe>Todas as opções
O construtor cobre o que quase toda a gente precisa. Esta é a lista completa, para quem quiser escrever o código à mão ou montá-lo a partir do seu gestor de conteúdos.
Ver a lista dos atributos
| Atributo | Valores | Por omissão | O que faz |
|---|---|---|---|
data-concelho | tomar, torres-novas, ourem, … | obrigatório | O concelho cuja programação aparece na caixa. |
data-espaco | teatro-virginia, cine-teatro-paraiso, … | o concelho todo | Restringe a caixa a um espaço. É esta a opção para um museu ou uma coletividade que só quer mostrar a sua própria programação. |
data-ciclo | caminhos, festival-zero, … | todos | Restringe a caixa a um ciclo ou festival. Serve a quem organiza um: a caixa passa a mostrar só o programa dele, no concelho escolhido. |
data-categoria | musica, teatro, exposicoes, … | todas | Restringe a caixa a uma categoria. |
data-quantos | 1 a 20 | 5 | Quantos eventos mostrar. |
data-gratis | sim | desligado | Mostra apenas eventos de entrada livre. |
data-disposicao | cartazes, lista, mural | cartazes | Cartazes para uma coluna normal, lista para uma coluna estreita sem espaço para imagens, mural para uma faixa larga. |
data-cor | #40c0c4, #b0122a, … | a cor desta agenda | A cor da instituição. Onde é texto, é escurecida ou aclarada até se ler sobre o fundo — a caixa nunca fica ilegível por causa de uma cor de marca. |
data-tema | auto, light, dark | auto | Com auto, a caixa segue a preferência de quem visita. Fixe light ou dark se o seu sítio tiver um fundo só. |
data-letra | Open Sans, Georgia, serif, … | a letra do Coreto | O tipo de letra do seu sítio, para a caixa deixar de se distinguir do resto da página. Escreva a pilha como a tem no CSS. (Herdar não dá: um iframe tem documento próprio e o CSS não atravessa a fronteira.) |
data-cabecalho | sim, nao | sim | Desligue se a sua página já tiver um título por cima da caixa. |
data-moldura | sim, nao | sim | A linha à volta da caixa. Desligue para a fundir com o seu fundo. |
data-titulo | texto | Agenda cultural — Coreto | O nome que os leitores de ecrã anunciam ao encontrar a caixa. |
data-pesquisa | texto | sem pesquisa | Só eventos com estas palavras no título, no subtítulo, no sítio ou no resumo — sem acentos e pelo radical: «fado» encontra «fados». É a opção para uma filarmónica ou um festival que quer mostrar só o que é seu. |
Um valor que não seja reconhecido é ignorado e vale o valor por omissão. Um erro de escrita do seu lado nunca deixa a caixa em branco.
A letra pequena
- A caixa não põe cookies e não segue quem visita o seu sítio. Carrega a lista e mais nada.
- As ligações abrem num separador novo, para ninguém sair do seu sítio sem querer.
- A programação vem da mesma base que alimenta o Coreto: o que se corrige numa, corrige-se na outra.
- Se preferir montar a lista com o seu próprio desenho, os feeds e a API aberta estão aqui em baixo.
- Falta um evento seu na caixa? Envie-o — aparece assim que passar pela moderação.
Os dados em bruto
A agenda sai em formatos que outras máquinas leem: RSS para leitores de notícias, iCalendar para calendários, JSON para quem quer montar a sua própria página. É a agenda — o que está para vir. O arquivo das edições passadas dos ciclos vive nas páginas deles e não sai por aqui; quem o quiser, escreva.
Ver os feeds, a API e a licença
Não é preciso chave nem registo. Os endereços abaixo respondem a qualquer pedido, de qualquer origem — e são para quem quer montar a lista com o seu próprio desenho. Quem só procura uma caixa pronta para colar não precisa de escrever código nenhum: está aqui em cima.
Endereços globais
- https:/
/ mediotejo. coreto. org/ feed. xml - RSS 2.0 com os próximos 50 eventos dos 11 concelhos.
- https:/
/ mediotejo. coreto. org/ agenda. ics - Calendário iCalendar com os próximos 100 eventos. Para subscrever, não para descarregar uma vez.
- https:/
/ mediotejo. coreto. org/ api/ events - A agenda em JSON, com filtros. É a base do widget e de qualquer integração.
- https:/
/ mediotejo. coreto. org/ dados. json - O catálogo de uma vez, sem paginar, com a data de geração, a contagem e a licença dentro do próprio ficheiro. É o que se anexa a um processo em vez de explicar o que é uma API.
- https:/
/ mediotejo. coreto. org/ dados. csv - O mesmo, para quem abre folhas de cálculo. Com BOM, ponto e vírgula e os metadados em linhas «#» à cabeça, que o Excel e o LibreOffice saltam.
- https:/
/ mediotejo. coreto. org/ sitemap. xml - Mapa do sítio: as páginas fixas, os 11 concelhos, os espaços, os ciclos com programação e os eventos por acontecer. O que já passou não entra — um mapa do sítio é para o que se pode visitar.
Por concelho
Cada concelho tem os seus dois endereços. O padrão é /feed/<concelho>.xml e /agenda/<concelho>.ics.
| Concelho | RSS | Calendário |
|---|---|---|
| Abrantes | /feed/abrantes.xml | /agenda/abrantes.ics |
| Alcanena | /feed/alcanena.xml | /agenda/alcanena.ics |
| Constância | /feed/constancia.xml | /agenda/constancia.ics |
| Entroncamento | /feed/entroncamento.xml | /agenda/entroncamento.ics |
| Ferreira do Zêzere | /feed/ferreira-do-zezere.xml | /agenda/ferreira-do-zezere.ics |
| Mação | /feed/macao.xml | /agenda/macao.ics |
| Ourém | /feed/ourem.xml | /agenda/ourem.ics |
| Sardoal | /feed/sardoal.xml | /agenda/sardoal.ics |
| Tomar | /feed/tomar.xml | /agenda/tomar.ics |
| Torres Novas | /feed/torres-novas.xml | /agenda/torres-novas.ics |
| Vila Nova da Barquinha | /feed/vila-nova-da-barquinha.xml | /agenda/vila-nova-da-barquinha.ics |
Cada evento tem também o seu próprio calendário, em /evento/<endereço>/agenda.ics — é o botão «adicionar ao calendário» da ficha.
A API em JSON
GET /api/events devolve { events, total, page, limit, license, attribution, documentation }. Aceita pedidos de qualquer origem (CORS aberto) e responde sempre em UTF-8. Um parâmetro inválido devolve 400 com a lista dos parâmetros aceites dentro da própria resposta.
Cada evento traz as colunas do cartão e, ao lado dos identificadores, o que eles querem dizer: municipality_name, category_name, venue_name, o updated_at e as sessions com data, hora de início e hora de fim. Sem isso, quem integra ficava com venue_id e sem forma de saber de que espaço se trata.
| Parâmetro | Valores | O que faz |
|---|---|---|
municipality | tomar, abrantes, ourem, … | Identificador do concelho. Um só de cada vez. |
category | musica, teatro, exposicoes, … | Categoria do evento, pelo identificador do catálogo. |
from | AAAA-MM-DD | Só eventos a partir desta data. Por omissão, hoje. |
to | AAAA-MM-DD | Só eventos que comecem até esta data. |
free | 1 ou 0 | A 1, devolve apenas eventos de entrada livre. |
accessible | 1 ou 0 | A 1, devolve apenas eventos com acesso a cadeiras de rodas: o que o evento declara ou, quando o evento nada diz, o que o espaço declara. |
lgp | 1 ou 0 | A 1, devolve apenas eventos com interpretação declarada em Língua Gestual Portuguesa. |
audiodescricao | 1 ou 0 | A 1, devolve apenas eventos com audiodescrição declarada. |
legendas | 1 ou 0 | A 1, devolve apenas eventos com legendagem declarada. |
relaxada | 1 ou 0 | A 1, devolve apenas eventos declarados como sessão relaxada. |
familia | 1 ou 0 | A 1, devolve apenas eventos para crianças e famílias: da categoria «Infantil e família», ou com público declarado infantil ou familiar — sem sessões para escolas nem idade mínima acima dos 12 anos. |
venue | identificador do espaço | Eventos de um espaço. |
series | identificador do ciclo, como caminhos | Eventos de um ciclo ou festival. O identificador de cada evento vem no campo `series_id` da própria resposta. |
q | texto | Pesquisa no título, no subtítulo, no sítio e no resumo, e também no nome da categoria, do espaço e do concelho — sem acentos e pelo radical das palavras, no singular e no plural: «fado» encontra «fados», «virginia» encontra o Teatro Virgínia, «exposição» encontra «exposições». |
page | 1 a 200 | Página de resultados. Por omissão, 1. |
limit | 1 a 100 | Resultados por página. Por omissão, 24. |
https://mediotejo.coreto.org/api/events?municipality=tomar&limit=10Ver a resposta
{
"events": [
{
"id": "…",
"slug": "…",
"title": "…",
"municipality_id": "tomar",
"venue_id": "…",
"location_name": null,
"category_slug": "musica",
"category_confidence": 0.95,
"category_source": "alias",
"date_start": "2027-01-01",
"date_end": "2027-01-01",
"is_ongoing": false,
"is_free": true,
"price_display": null,
"image_url": "…",
"image_alt": "…",
"series_id": null,
"image_miniatura": "…",
"image_width": 600,
"image_height": 848,
"wheelchair_accessible": true,
"has_sign_language": false,
"has_audio_description": false,
"has_subtitles": false,
"is_relaxed_performance": false,
"audience": "all_ages",
"url": "https://mediotejo.coreto.org/evento/…",
"municipality_name": "Tomar",
"category_name": "Música",
"venue_name": "…",
"updated_at": "2026-12-20T03:12:44.000Z",
"sessions": [{ "date": "2027-01-01", "start_time": "21:30", "end_time": null }]
}
],
"total": 37,
"page": 1,
"limit": 10
}Sem nos deitar abaixo
- Os feeds são recalculados de hora a hora. Ir buscá-los mais vezes do que isso não traz nada de novo.
- Não há limite publicado nem chaves a distribuir. Há bom senso: um pedido por minuto por feed é muito mais do que suficiente.
- Identifique-se no
User-Agentcom um nome e um contacto. É o que nos deixa avisar em vez de bloquear. - Precisa da exportação completa e não de uma janela dos próximos eventos? Escreva — é mais barato para os dois lados do que percorrer a paginação toda.
Licença
Uma data, uma hora, um local e um preço são factos: não têm autor. A compilação — o trabalho de reunir, normalizar e ligar tudo isto — é disponibilizada sob CC BY 4.0: pode usá-la para o que quiser, incluindo comercialmente, desde que diga de onde veio e ligue para o Coreto.
Os textos de apresentação, os cartazes e as fotografias não são nossos e não vão nesta licença: continuam de quem os fez. Por isso nenhum destes endereços — a API, o dados.json, o dados.csv, os feeds RSS e os calendários — leva a descrição que cada organizador escreveu, nem um excerto dela: levam os factos (o título, as datas, o sítio, o preço, a categoria, a acessibilidade) e a ligação para a ficha do evento, onde o texto está inteiro. Para republicar uma descrição ou um cartaz, o pedido é a quem organiza — e o campo url de cada evento leva lá.
Até 13 de outubro de 2026 estes ficheiros levavam um resumo da descrição — o campo description_short na API e no dados.json, a coluna resumo no dados.csv, e o texto nos feeds e nos calendários. Saíram todos: um resumo do texto de outra pessoa continua a ser dela, e não o podemos pôr sob uma licença nossa.
Desde 21 de setembro de 2026, o image_url de alguns eventos aponta para uma cópia nossa, redimensionada, do cartaz que a câmara publicou — é mais rápida e não morre quando a câmara arruma a pasta do ano. Guardar uma cópia não a torna nossa: continua de quem a fez, e quem a quiser republicar continua a ter de pedir a quem organiza. O image_miniatura é a mesma imagem a 400 píxeis, para listas; é nulo quando o cartaz é servido de casa de quem o publicou.
Atribuição sugerida: «Dados da agenda cultural Coreto, CC BY 4.0».
