CoretoProposta à Comunidade Intermunicipal do Médio Tejo (abre noutro separador)

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

Disposição
A sua cor
Mostrar

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
Atributos aceites pelo widget, valores possíveis e comportamento por omissão
AtributoValoresPor omissãoO que faz
data-concelhotomar, torres-novas, ourem, …obrigatórioO concelho cuja programação aparece na caixa.
data-espacoteatro-virginia, cine-teatro-paraiso, …o concelho todoRestringe 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-ciclocaminhos, festival-zero, …todosRestringe 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-categoriamusica, teatro, exposicoes, …todasRestringe a caixa a uma categoria.
data-quantos1 a 205Quantos eventos mostrar.
data-gratissimdesligadoMostra apenas eventos de entrada livre.
data-disposicaocartazes, lista, muralcartazesCartazes 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 agendaA 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-temaauto, light, darkautoCom auto, a caixa segue a preferência de quem visita. Fixe light ou dark se o seu sítio tiver um fundo só.
data-letraOpen Sans, Georgia, serif, …a letra do CoretoO 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-cabecalhosim, naosimDesligue se a sua página já tiver um título por cima da caixa.
data-moldurasim, naosimA linha à volta da caixa. Desligue para a fundir com o seu fundo.
data-titulotextoAgenda cultural — CoretoO nome que os leitores de ecrã anunciam ao encontrar a caixa.
data-pesquisatextosem pesquisaSó 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

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.

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âmetros aceites pelo endereço /api/events
ParâmetroValoresO que faz
municipalitytomar, abrantes, ourem, …Identificador do concelho. Um só de cada vez.
categorymusica, teatro, exposicoes, …Categoria do evento, pelo identificador do catálogo.
fromAAAA-MM-DDSó eventos a partir desta data. Por omissão, hoje.
toAAAA-MM-DDSó eventos que comecem até esta data.
free1 ou 0A 1, devolve apenas eventos de entrada livre.
accessible1 ou 0A 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.
lgp1 ou 0A 1, devolve apenas eventos com interpretação declarada em Língua Gestual Portuguesa.
audiodescricao1 ou 0A 1, devolve apenas eventos com audiodescrição declarada.
legendas1 ou 0A 1, devolve apenas eventos com legendagem declarada.
relaxada1 ou 0A 1, devolve apenas eventos declarados como sessão relaxada.
familia1 ou 0A 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.
venueidentificador do espaçoEventos de um espaço.
seriesidentificador do ciclo, como caminhosEventos de um ciclo ou festival. O identificador de cada evento vem no campo `series_id` da própria resposta.
qtextoPesquisa 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».
page1 a 200Página de resultados. Por omissão, 1.
limit1 a 100Resultados por página. Por omissão, 24.
https://mediotejo.coreto.org/api/events?municipality=tomar&limit=10
Ver 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-Agent com 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».