Skip to main content

On this day (Timeline)

Four anniversaries of the day from Wikipedia's selected list, spread across the centuries, with anything about violence, death or disaster left out.

Feed idfd_5da6cdcc43fa
Sourcewikipedia-and-wikimedia
MarketFinance, Tech and industry, Public bodies, Supermarkets and shops
ScheduleDaily 05:00
Drawn withTimeline, Editorial 1.0.0
Shapes9x16, 4x5, 1x1, 16x9, 2x3
LanguagesAny: each channel takes its own language from the event, or the default
FreshnessAn event older than 24 hours is kept but never published

Example video​

The 1x1 cut of this feed, drawn from an example of what it carries. Open the video on its own.

Use cases​

  • A daily market wrap on the broker's own channels, out before the session opens.
  • Instrument moves and levels that introducing brokers and affiliates post under their own brand.
  • Economic calendar reminders: what is due today, and afterwards what it printed.
  • Release notes and product updates, published the day they ship.
  • Engineering or production figures as a weekly or monthly story with its numbers.
  • Trade fair and event countdowns for sales and partner channels.
  • Council and authority announcements, the moment they are published.
  • Dates people plan around: waste collection, opening hours, public events.
  • Open data made visible: air quality, water levels, traffic or budget figures.
  • This week's offers, per store, on every channel the shop runs.
  • Opening times and holiday changes, before customers have to ask.
  • Seasonal campaigns and price changes, drawn straight from the product data.

What it carries​

A line of years with up to five eras laid on it and two to eight milestones: a marker travels the line from milestone to milestone, each popping up with its year, title, line and a picture where one is sent, and the clip ends on every milestone listed under the line. metaData is the post's title, descriptions and hashtags and is never drawn.

FieldTypeRequiredLimitWhat it is
clipDatagroupyesClip data: Everything drawn: a kicker, the title, the span of years, the eras, two to eight milestones with their pictures, the source and the look.
clipData.kickertextup to 20 charactersKicker: A word above the title, such as OUR STORY or 50 YEARS.
clipData.titletextyesup to 80 charactersTitle: What the timeline tells. Shown above the line the whole time.
clipData.fromintegeryesFirst year: Where the line of years starts. A milestone outside the span widens it.
clipData.tointegeryesLast year: Where the line of years ends. At the end of the clip the marker runs on to it.
clipData.eraslistup to 5Eras: Up to five periods laid on the line as bands, each with its name over it. The era the marker is in is lit, and each milestone's card names its era.
clipData.eras[]groupEra
clipData.eras[].nametextyesup to 24 charactersName
clipData.eras[].fromintegeryesFrom: The year the era starts.
clipData.eras[].tointegeryesTo: The year the era ends.
clipData.milestoneslistyesat least 2, up to 8Milestones: Two to eight moments, each shown in turn as the marker reaches it, with its year, a title, a line and a picture where one is sent, then all of them listed at the end. They are put in the order of their years for you. Each adds a little over three seconds, so eight run about 31 seconds.
clipData.milestones[]groupMilestone
clipData.milestones[].yearintegeryesYear
clipData.milestones[].titletextyesup to 40 charactersTitle: What happened, in a few words.
clipData.milestones[].linetextup to 100 charactersLine: One or two sentences on what happened.
clipData.milestones[].pictureimagemedia:// file from the media library, alt text up to 120 charactersPicture: A picture from the media library, shown with the milestone and filling its frame. A milestone without one shows its words larger.
clipData.sourcetextup to 60 charactersSource: Where the dates come from, shown small at the foot.
clipData.lookgroupLook: How the clip looks and moves within its style. The same five switches in every format of the collections. Leave a switch out, or set it to the style's own, and the style decides.
clipData.look.themeenumauto, brand, light, dark, boldTheme: The style's own choice; your brand's own colours and background; a light or dark page tinted with your brand colour; or your brand colour as the page.
clipData.look.paceenumauto, calm, standard, punchyPace: How things arrive: the style's own rhythm, calm fades, a standard rhythm, or punchy slams and cuts.
clipData.look.cornersenumauto, square, soft, roundCorners: The shape of cards, panels and marks.
clipData.look.alignenumauto, start, centreText alignment: Where the text lines up.
clipData.look.logoenumauto, freeLogo: The style's own: the logo on the style's plate (a card, a disc, a badge) so it reads on any page. As it is: the logo whole, with no plate, frame or crop, for a logo made to stand on the page, such as one with a transparent background. As it is, make sure your logo reads on the page of the theme you choose.
metaDatagroupMeta data: Everything about the post that is never drawn in the clip: its title, its description in four lengths, one per kind of platform, and its hashtags. Reelwire adds the brand's description, link and hashtags after it. Left out, the post text is generated from the clip data.
metaData.titletextup to 100 charactersTitle: Used where the platform has a title of its own: Facebook Feed, LinkedIn, Pinterest and YouTube. Up to 100 characters, which every one of them takes.
metaData.captionTinytextup to 200 charactersTiny description (Pinterest, Threads, X): Up to 200 characters. The brand's description, link and hashtags follow it within the platform's limit.
metaData.captionShorttextup to 500 charactersShort description (Telegram, Threema, WeChat, WhatsApp): Up to 500 characters. The brand's description, link and hashtags follow it within the platform's limit.
metaData.captionMediumtextup to 1500 charactersMedium description (Discord, Facebook Reels, Instagram, LinkedIn, Signal, Slack, TikTok): Up to 1500 characters. The brand's description, link and hashtags follow it within the platform's limit.
metaData.captionLongtextup to 4000 charactersLong description (Facebook Feed, YouTube): Up to 4000 characters. The brand's description, link and hashtags follow it within the platform's limit.
metaData.hashtagslistup to 15Hashtags: Written without the #. Up to 15, which every platform takes.
metaData.hashtags[]textup to 60 charactersHashtag

locales carries other languages: under each language code, the parts of clipData and metaData that differ, laid over the default, so a language with no copy still renders.

A picture is always a file from your media library: media:// followed by its id or its name. Anything the table does not list is refused, and so is anything over its limit, with a 400 schema_validation error that names the field.

The JSON Schema
{
"type": "object",
"properties": {
"clipData": {
"type": "object",
"properties": {
"kicker": {
"type": "string",
"maxLength": 20,
"title": "Kicker",
"description": "A word above the title, such as OUR STORY or 50 YEARS."
},
"title": {
"type": "string",
"maxLength": 80,
"title": "Title",
"description": "What the timeline tells. Shown above the line the whole time."
},
"from": {
"type": "integer",
"title": "First year",
"description": "Where the line of years starts. A milestone outside the span widens it."
},
"to": {
"type": "integer",
"title": "Last year",
"description": "Where the line of years ends. At the end of the clip the marker runs on to it."
},
"eras": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 24,
"title": "Name"
},
"from": {
"type": "integer",
"title": "From",
"description": "The year the era starts."
},
"to": {
"type": "integer",
"title": "To",
"description": "The year the era ends."
}
},
"required": [
"name",
"from",
"to"
],
"additionalProperties": false,
"title": "Era"
},
"maxItems": 5,
"title": "Eras",
"description": "Up to five periods laid on the line as bands, each with its name over it. The era the marker is in is lit, and each milestone's card names its era."
},
"milestones": {
"type": "array",
"items": {
"type": "object",
"properties": {
"year": {
"type": "integer",
"title": "Year"
},
"title": {
"type": "string",
"maxLength": 40,
"title": "Title",
"description": "What happened, in a few words."
},
"line": {
"type": "string",
"maxLength": 100,
"title": "Line",
"description": "One or two sentences on what happened."
},
"picture": {
"type": "object",
"properties": {
"url": {
"type": "string",
"maxLength": 2048,
"pattern": "^media:\\/\\/[^\\s/\\\\\\u0000-\\u001f][^/\\\\\\u0000-\\u001f]{0,254}$",
"title": "Picture",
"description": "A file from the workspace's media library, written media:// and the file's id or name. A web address is refused."
},
"alt": {
"type": "string",
"maxLength": 120,
"title": "Alt text",
"description": "What the picture shows, for anyone who cannot see it."
}
},
"required": [
"url"
],
"additionalProperties": false,
"title": "Picture",
"description": "A picture from the media library, shown with the milestone and filling its frame. A milestone without one shows its words larger."
}
},
"required": [
"year",
"title"
],
"additionalProperties": false,
"title": "Milestone"
},
"minItems": 2,
"maxItems": 8,
"title": "Milestones",
"description": "Two to eight moments, each shown in turn as the marker reaches it, with its year, a title, a line and a picture where one is sent, then all of them listed at the end. They are put in the order of their years for you. Each adds a little over three seconds, so eight run about 31 seconds."
},
"source": {
"type": "string",
"maxLength": 60,
"title": "Source",
"description": "Where the dates come from, shown small at the foot."
},
"look": {
"type": "object",
"properties": {
"theme": {
"type": "string",
"enum": [
"auto",
"brand",
"light",
"dark",
"bold"
],
"title": "Theme",
"description": "The style's own choice; your brand's own colours and background; a light or dark page tinted with your brand colour; or your brand colour as the page.",
"enumNames": [
"The style's own",
"Brand colours",
"Light",
"Dark",
"Bold brand colour"
]
},
"pace": {
"type": "string",
"enum": [
"auto",
"calm",
"standard",
"punchy"
],
"title": "Pace",
"description": "How things arrive: the style's own rhythm, calm fades, a standard rhythm, or punchy slams and cuts.",
"enumNames": [
"The style's own",
"Calm",
"Standard",
"Punchy"
]
},
"corners": {
"type": "string",
"enum": [
"auto",
"square",
"soft",
"round"
],
"title": "Corners",
"description": "The shape of cards, panels and marks.",
"enumNames": [
"The style's own",
"Square",
"Softly rounded",
"Round"
]
},
"align": {
"type": "string",
"enum": [
"auto",
"start",
"centre"
],
"title": "Text alignment",
"description": "Where the text lines up.",
"enumNames": [
"The style's own",
"At the start of the line",
"Centred"
]
},
"logo": {
"type": "string",
"enum": [
"auto",
"free"
],
"title": "Logo",
"description": "The style's own: the logo on the style's plate (a card, a disc, a badge) so it reads on any page. As it is: the logo whole, with no plate, frame or crop, for a logo made to stand on the page, such as one with a transparent background. As it is, make sure your logo reads on the page of the theme you choose.",
"enumNames": [
"The style's own",
"As it is, no plate or crop"
]
}
},
"additionalProperties": false,
"title": "Look",
"description": "How the clip looks and moves within its style. The same five switches in every format of the collections. Leave a switch out, or set it to the style's own, and the style decides."
}
},
"required": [
"title",
"from",
"to",
"milestones"
],
"additionalProperties": false,
"title": "Clip data",
"description": "Everything drawn: a kicker, the title, the span of years, the eras, two to eight milestones with their pictures, the source and the look."
},
"metaData": {
"type": "object",
"properties": {
"title": {
"type": "string",
"maxLength": 100,
"title": "Title",
"description": "Used where the platform has a title of its own: Facebook Feed, LinkedIn, Pinterest and YouTube. Up to 100 characters, which every one of them takes."
},
"captionTiny": {
"type": "string",
"maxLength": 200,
"title": "Tiny description (Pinterest, Threads, X)",
"description": "Up to 200 characters. The brand's description, link and hashtags follow it within the platform's limit."
},
"captionShort": {
"type": "string",
"maxLength": 500,
"title": "Short description (Telegram, Threema, WeChat, WhatsApp)",
"description": "Up to 500 characters. The brand's description, link and hashtags follow it within the platform's limit."
},
"captionMedium": {
"type": "string",
"maxLength": 1500,
"title": "Medium description (Discord, Facebook Reels, Instagram, LinkedIn, Signal, Slack, TikTok)",
"description": "Up to 1500 characters. The brand's description, link and hashtags follow it within the platform's limit."
},
"captionLong": {
"type": "string",
"maxLength": 4000,
"title": "Long description (Facebook Feed, YouTube)",
"description": "Up to 4000 characters. The brand's description, link and hashtags follow it within the platform's limit."
},
"hashtags": {
"type": "array",
"items": {
"type": "string",
"maxLength": 60,
"title": "Hashtag"
},
"maxItems": 15,
"title": "Hashtags",
"description": "Written without the #. Up to 15, which every platform takes."
}
},
"additionalProperties": false,
"title": "Meta data",
"description": "Everything about the post that is never drawn in the clip: its title, its description in four lengths, one per kind of platform, and its hashtags. Reelwire adds the brand's description, link and hashtags after it. Left out, the post text is generated from the clip data."
},
"locales": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"clipData": {
"type": "object",
"properties": {
"kicker": {
"type": "string",
"maxLength": 20,
"title": "Kicker",
"description": "A word above the title, such as OUR STORY or 50 YEARS."
},
"title": {
"type": "string",
"maxLength": 80,
"title": "Title",
"description": "What the timeline tells. Shown above the line the whole time."
},
"from": {
"type": "integer",
"title": "First year",
"description": "Where the line of years starts. A milestone outside the span widens it."
},
"to": {
"type": "integer",
"title": "Last year",
"description": "Where the line of years ends. At the end of the clip the marker runs on to it."
},
"eras": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 24,
"title": "Name"
},
"from": {
"type": "integer",
"title": "From",
"description": "The year the era starts."
},
"to": {
"type": "integer",
"title": "To",
"description": "The year the era ends."
}
},
"required": [
"name",
"from",
"to"
],
"additionalProperties": false,
"title": "Era"
},
"maxItems": 5,
"title": "Eras",
"description": "Up to five periods laid on the line as bands, each with its name over it. The era the marker is in is lit, and each milestone's card names its era."
},
"milestones": {
"type": "array",
"items": {
"type": "object",
"properties": {
"year": {
"type": "integer",
"title": "Year"
},
"title": {
"type": "string",
"maxLength": 40,
"title": "Title",
"description": "What happened, in a few words."
},
"line": {
"type": "string",
"maxLength": 100,
"title": "Line",
"description": "One or two sentences on what happened."
},
"picture": {
"type": "object",
"properties": {
"url": {
"type": "string",
"maxLength": 2048,
"pattern": "^media:\\/\\/[^\\s/\\\\\\u0000-\\u001f][^/\\\\\\u0000-\\u001f]{0,254}$",
"title": "Picture",
"description": "A file from the workspace's media library, written media:// and the file's id or name. A web address is refused."
},
"alt": {
"type": "string",
"maxLength": 120,
"title": "Alt text",
"description": "What the picture shows, for anyone who cannot see it."
}
},
"required": [
"url"
],
"additionalProperties": false,
"title": "Picture",
"description": "A picture from the media library, shown with the milestone and filling its frame. A milestone without one shows its words larger."
}
},
"required": [
"year",
"title"
],
"additionalProperties": false,
"title": "Milestone"
},
"minItems": 2,
"maxItems": 8,
"title": "Milestones",
"description": "Two to eight moments, each shown in turn as the marker reaches it, with its year, a title, a line and a picture where one is sent, then all of them listed at the end. They are put in the order of their years for you. Each adds a little over three seconds, so eight run about 31 seconds."
},
"source": {
"type": "string",
"maxLength": 60,
"title": "Source",
"description": "Where the dates come from, shown small at the foot."
},
"look": {
"type": "object",
"properties": {
"theme": {
"type": "string",
"enum": [
"auto",
"brand",
"light",
"dark",
"bold"
],
"title": "Theme",
"description": "The style's own choice; your brand's own colours and background; a light or dark page tinted with your brand colour; or your brand colour as the page.",
"enumNames": [
"The style's own",
"Brand colours",
"Light",
"Dark",
"Bold brand colour"
]
},
"pace": {
"type": "string",
"enum": [
"auto",
"calm",
"standard",
"punchy"
],
"title": "Pace",
"description": "How things arrive: the style's own rhythm, calm fades, a standard rhythm, or punchy slams and cuts.",
"enumNames": [
"The style's own",
"Calm",
"Standard",
"Punchy"
]
},
"corners": {
"type": "string",
"enum": [
"auto",
"square",
"soft",
"round"
],
"title": "Corners",
"description": "The shape of cards, panels and marks.",
"enumNames": [
"The style's own",
"Square",
"Softly rounded",
"Round"
]
},
"align": {
"type": "string",
"enum": [
"auto",
"start",
"centre"
],
"title": "Text alignment",
"description": "Where the text lines up.",
"enumNames": [
"The style's own",
"At the start of the line",
"Centred"
]
},
"logo": {
"type": "string",
"enum": [
"auto",
"free"
],
"title": "Logo",
"description": "The style's own: the logo on the style's plate (a card, a disc, a badge) so it reads on any page. As it is: the logo whole, with no plate, frame or crop, for a logo made to stand on the page, such as one with a transparent background. As it is, make sure your logo reads on the page of the theme you choose.",
"enumNames": [
"The style's own",
"As it is, no plate or crop"
]
}
},
"additionalProperties": false,
"title": "Look",
"description": "How the clip looks and moves within its style. The same five switches in every format of the collections. Leave a switch out, or set it to the style's own, and the style decides."
}
},
"additionalProperties": false,
"title": "Clip data",
"description": "Everything drawn: a kicker, the title, the span of years, the eras, two to eight milestones with their pictures, the source and the look."
},
"metaData": {
"type": "object",
"properties": {
"title": {
"type": "string",
"maxLength": 100,
"title": "Title",
"description": "Used where the platform has a title of its own: Facebook Feed, LinkedIn, Pinterest and YouTube. Up to 100 characters, which every one of them takes."
},
"captionTiny": {
"type": "string",
"maxLength": 200,
"title": "Tiny description (Pinterest, Threads, X)",
"description": "Up to 200 characters. The brand's description, link and hashtags follow it within the platform's limit."
},
"captionShort": {
"type": "string",
"maxLength": 500,
"title": "Short description (Telegram, Threema, WeChat, WhatsApp)",
"description": "Up to 500 characters. The brand's description, link and hashtags follow it within the platform's limit."
},
"captionMedium": {
"type": "string",
"maxLength": 1500,
"title": "Medium description (Discord, Facebook Reels, Instagram, LinkedIn, Signal, Slack, TikTok)",
"description": "Up to 1500 characters. The brand's description, link and hashtags follow it within the platform's limit."
},
"captionLong": {
"type": "string",
"maxLength": 4000,
"title": "Long description (Facebook Feed, YouTube)",
"description": "Up to 4000 characters. The brand's description, link and hashtags follow it within the platform's limit."
},
"hashtags": {
"type": "array",
"items": {
"type": "string",
"maxLength": 60,
"title": "Hashtag"
},
"maxItems": 15,
"title": "Hashtags",
"description": "Written without the #. Up to 15, which every platform takes."
}
},
"additionalProperties": false,
"title": "Meta data",
"description": "Everything about the post that is never drawn in the clip: its title, its description in four lengths, one per kind of platform, and its hashtags. Reelwire adds the brand's description, link and hashtags after it. Left out, the post text is generated from the clip data."
}
},
"additionalProperties": false
},
"propertyNames": {
"enum": [
"aa",
"ab",
"ae",
"af",
"ak",
"am",
"an",
"ar",
"as",
"av",
"ay",
"az",
"ba",
"be",
"bg",
"bi",
"bm",
"bn",
"bo",
"br",
"bs",
"ca",
"ce",
"ch",
"co",
"cr",
"cs",
"cu",
"cv",
"cy",
"da",
"de",
"dv",
"dz",
"ee",
"el",
"en",
"eo",
"es",
"et",
"eu",
"fa",
"ff",
"fi",
"fj",
"fo",
"fr",
"fy",
"ga",
"gd",
"gl",
"gn",
"gu",
"gv",
"ha",
"he",
"hi",
"ho",
"hr",
"ht",
"hu",
"hy",
"hz",
"ia",
"id",
"ie",
"ig",
"ii",
"ik",
"io",
"is",
"it",
"iu",
"ja",
"jv",
"ka",
"kg",
"ki",
"kj",
"kk",
"kl",
"km",
"kn",
"ko",
"kr",
"ks",
"ku",
"kv",
"kw",
"ky",
"la",
"lb",
"lg",
"li",
"ln",
"lo",
"lt",
"lu",
"lv",
"mg",
"mh",
"mi",
"mk",
"ml",
"mn",
"mr",
"ms",
"mt",
"my",
"na",
"nb",
"nd",
"ne",
"ng",
"nl",
"nn",
"no",
"nr",
"nv",
"ny",
"oc",
"oj",
"om",
"or",
"os",
"pa",
"pi",
"pl",
"ps",
"pt",
"qu",
"rm",
"rn",
"ro",
"ru",
"rw",
"sa",
"sc",
"sd",
"se",
"sg",
"si",
"sk",
"sl",
"sm",
"sn",
"so",
"sq",
"sr",
"ss",
"st",
"su",
"sv",
"sw",
"ta",
"te",
"tg",
"th",
"ti",
"tk",
"tl",
"tn",
"to",
"tr",
"ts",
"tt",
"tw",
"ty",
"ug",
"uk",
"ur",
"uz",
"ve",
"vi",
"vo",
"wa",
"wo",
"xh",
"yi",
"yo",
"za",
"zh",
"zu",
"zh-CN",
"zh-TW",
"pt-BR"
]
}
}
},
"required": [
"clipData"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}

Ask Reelwire for the same document yourself, without signing in:

curl "http://localhost:4000/v1/formats/feed/fd_5da6cdcc43fa"

Which template draws a feed is Reelwire's decision and can change, so a producer asks by the feed, as above, rather than by its template.

Delivery JSON​

Every event of this feed is delivered to Reelwire in this envelope. You do not send it yourself: switch the feed on under Feeds, have a channel listen to it, and each event becomes a post on that channel. data is the document described above.

{
"eventId": "01M2SQMKK3G1NVFXV31DCBVB95",
"occurredAt": "2026-09-23T07:00:00Z",
"feedId": "fd_5da6cdcc43fa",
"locale": "en",
"data": {
"clipData": {
"kicker": "50 years",
"title": "From a church hall to a city landmark: fifty years of the Millbrook Arts Centre",
"from": 1976,
"to": 2026,
"eras": [
{
"to": 1991,
"from": 1976,
"name": "The church hall"
},
{
"to": 2014,
"from": 1991,
"name": "The old mill"
},
{
"to": 2026,
"from": 2014,
"name": "Mill and quay"
}
],
"milestones": [
{
"line": "In a rented church hall they print with ink dropped into water, and 400 people see the first show.",
"year": 1976,
"title": "Twelve painters open a studio",
"picture": {
"alt": "Clouds of red and blue ink in water",
"url": "media://example-image.png"
}
},
{
"line": "The centre buys the empty mill by the river, with room for three galleries, a cafe and a print room.",
"year": 1991,
"title": "A home in the old grain mill"
},
{
"line": "Artists who paint on screens get a prize of their own, and the winning works light up the mill.",
"year": 2003,
"title": "The first digital art prize",
"picture": {
"alt": "Soft waves of blue, violet and orange",
"url": "media://example-image.jpg"
}
},
{
"line": "Every primary school in the city brings its classes for a day of painting, paid for by the centre.",
"year": 2009,
"title": "A free day for every school"
},
{
"line": "A new hall beside the mill doubles the space and shows the city's collection of landscapes.",
"year": 2014,
"title": "A glass gallery on the quay",
"picture": {
"alt": "Hills under an evening sky, drawn in layers",
"url": "media://example-image.svg"
}
},
{
"line": "For the anniversary every room is free all year, with a show of work from each of the fifty years.",
"year": 2026,
"title": "Fifty years, free for everyone"
}
],
"source": "Millbrook Arts Centre archive",
"look": {
"theme": "auto",
"pace": "auto",
"corners": "auto",
"align": "auto",
"logo": "auto"
}
},
"metaData": {
"title": "Fifty years of the Millbrook Arts Centre, from a church hall to the quay",
"captionTiny": "The Millbrook Arts Centre turns fifty. Six moments from its story, from twelve painters in a church hall in 1976 to a year of free entry for the anniversary.",
"captionShort": "The Millbrook Arts Centre turns fifty. It began in 1976, when twelve painters rented a church hall and printed with ink dropped into water. In 1991 it moved into the old grain mill by the river, in 2003 it gave the first prize for digital art, and since 2009 every primary school in the city has spent a free day there. A glass gallery on the quay opened in 2014, and this year every room is free.",
"captionMedium": "The Millbrook Arts Centre turns fifty this year, and its story fits on one line of years. It began in 1976, when twelve painters rented a church hall and printed with ink dropped into still water; four hundred people came to see the first show. In 1991 the centre bought the empty grain mill by the river, with room for three galleries, a cafe and a print room. In 2003 it gave its first prize for digital art, and the winning works were shown in the mill's windows. Since 2009 every primary school in the city has brought its classes for a free day of painting, paid for by the centre. In 2014 a glass gallery opened on the quay beside the mill, doubling the space and giving the city's collection of landscapes a home. For the anniversary every room is free all year, with a show of work from each of the fifty years. The names and dates in this clip are illustrative.",
"captionLong": "The Millbrook Arts Centre turns fifty this year, and its story fits on one line of years. It began in 1976, when twelve painters rented a church hall and printed with ink dropped into still water, a technique one of them had brought back from a summer course; four hundred people came to see the first show in its first week. For fifteen years the church hall was the centre: classes in the evenings, a show every season, and a print room in the vestry. In 1991 the centre bought the empty grain mill by the river, with room for three galleries, a cafe and a larger print room, and the number of visitors doubled within two years. In 2003 it gave its first prize for digital art, for artists who paint on screens, and the winning works were shown in the mill's windows every evening that winter. Since 2009 every primary school in the city has brought its classes for a free day of painting, paid for by the centre and its members. In 2014 a glass gallery opened on the quay beside the mill, doubling the space and giving the city's collection of landscapes a permanent home. For the anniversary every room is free all year, with a show of work from each of the fifty years, chosen by the people who made and saw it. The centre's archive of posters, catalogues and photographs is open on the first Saturday of every month. The names and dates in this clip are illustrative.",
"hashtags": [
"art",
"gallery",
"history",
"anniversary",
"culture"
]
}
}
}

feedId names this feed and never changes, even when the feed is renamed. eventId is set once per event, so an event delivered twice is published once. occurredAt is when it happened, which is what the freshness limit is measured from.