Bank of England Calendar: MPC Dates, Releases & Bank Rate avatar

Bank of England Calendar: MPC Dates, Releases & Bank Rate

Pricing

from $1.40 / 1,000 calendar row returneds

Go to Apify Store
Bank of England Calendar: MPC Dates, Releases & Bank Rate

Bank of England Calendar: MPC Dates, Releases & Bank Rate

The Bank of England schedule as dated rows: MPC rate-announcement dates with Monetary Policy Report flags, FPC dates with Financial Stability Report flags, statistical release, publication, speech and event feeds with exact UTC moments, and the official Bank Rate change history.

Pricing

from $1.40 / 1,000 calendar row returneds

Rating

0.0

(0)

Developer

Samat Makatov

Samat Makatov

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 hours ago

Last modified

Share

The Bank of England schedule as dated rows: MPC rate-announcement dates with Monetary Policy Report flags, FPC dates with Financial Stability Report flags, statistical release, publication, speech and event feeds with exact UTC moments, and the official Bank Rate change history.

Four schedules of the UK central bank, all read from the Bank's own pages and feeds, all returned as flat rows you can sort, filter and join: the days the Monetary Policy Committee announces Bank Rate, the days the Financial Policy Committee reports on financial stability, what the Bank has published lately (statistics, reports, speeches, news, booked events) with the publication moment to the minute in UTC and London time, and every change of Bank Rate since January 1975 with its move in basis points. For rates desks, risk and regulatory teams, macro researchers, newsroom planners and agents that need the UK central-bank diary as data. No API key, no proxy, no browser — one to five plain requests per run. It answers when something happens and what the rate did; it carries no market consensus and no forecast column.

Use cases

  • When is the next UK rate decision: mode: "mpcDates" returns every announcement day the committee has published for this year and next, with daysUntil counting down and bankRateAtFetchPercent giving the level in force right now — enough to drive a countdown widget or an agent's answer in one call.
  • A trading calendar without a portal in the middle: the announcement days, the quarterly Monetary Policy Report days and the financial-stability dates come from the institution that sets them, so nothing breaks when a third-party calendar site changes its markup.
  • Watching the statistical releases you depend on: run mode: "releases" with feeds: ["statistics"], sinceHours: 24 and onlyNew: true on a schedule and a row appears only when something new has actually come out — the rest of the time the run writes nothing.
  • Planning around the financial-stability cycle: mode: "fpcDates" gives risk, treasury and regulatory-affairs teams the committee record dates and flags the two dates a year that also bring a Financial Stability Report.
  • Feeding a rate model, a backtest or a chart: mode: "bankRate" returns the policy path as rows — effective date, new level, previous level, signed basis points — so a study starts from the official table rather than a hand-typed list.
  • Reading the tone between meetings: the speeches feed with sortOrder: "latest" gives each speech with its exact publication moment, the standfirst and the link to the full text, which is what a news monitor or an FX desk reacts to.

Input

Nothing is required. A run with the defaults returns the MPC announcement days the Bank has published, soonest first, in one request. The example values shown in the console are prefills, not defaults: clearing them does not switch a filter back on.

FieldTypeDefaultAllowed values / notes
modestringmpcDatesmpcDates, fpcDates, releases, bankRate. See Modes
feedsstring[]— (prefilled statistics, publications)Any of statistics, publications, speeches, news, events. Empty = all five. Only in releases mode. See Feeds
querystring— (prefilled money and credit)Keyword matched case-insensitively against the title and the summary. Empty = no keyword. Only in releases mode. See Recurring statistical releases
sinceHoursinteger—1–8760. Keep entries published inside the last N hours, counted in UTC. Dates still ahead are kept regardless. Only in releases mode
onlyUpcomingbooleanfalseDrop rows whose date has already passed. Works in every mode; in bankRate it leaves nothing, since every change is in the past
dateFromstring—Earliest event date, YYYY-MM-DD, inclusive
dateTostring—Latest event date, YYYY-MM-DD, inclusive
onlyNewbooleanfalseWrite only rows absent or differently dated in the previous run with the same filters. See The onlyNew watcher
sortOrderstringsoonestsoonest = earliest date first, latest = latest first
maxItemsinteger251–1000. Which rows survive is decided per mode before sorting. See What maxItems keeps
fieldsstring[]allKeep only these fields, in this order, e.g. ["eventDate", "title", "hasMonetaryPolicyReport"]

A value that is close to an allowed one is corrected and the correction is logged ("speechs" becomes speeches); anything that is not close fails with the list of allowed values. Filters that belong to another mode are switched off and reported in the log rather than applied silently.

Reference

Modes

ModeReadsRows per runWhat it is for
mpcDates/monetary-policy/upcoming-mpc-dates16 on 2026-09-29 (this year and next)Rate-announcement days, minutes and Monetary Policy Report flags
fpcDates/financial-stability/upcoming-fpc-dates8 on 2026-09-29Committee record days and Financial Stability Report flags
releases/rss/<feed>, one request per feedup to 50 per feedWhat the Bank published, or booked, with the moment to the minute
bankRate/boeapps/database/Bank-Rate.asp258 changes on 2026-09-29, back to 1975-01-20The policy path with basis-point moves

Feeds

Each feed is one request and carries its 50 most recent entries, so how far back that reaches depends on how often the Bank publishes into it.

FeedWhat is in itReach of 50 entries (2026-09-29)eventType
statisticsMonthly and quarterly statistical releasesabout eight monthsstatisticalRelease
publicationsReports, working papers, consultation and policy papersabout three monthspublication
speechesSpeeches and remarks by Bank officialsabout ten monthsspeech
newsAnnouncements, market notices, minutes of market groupsabout three monthsnews
eventsConferences, workshops, calls for papers, citizens' forumsmixed: mostly past, with a handful of future datesevent

Recurring statistical releases

Useful values for query when you follow one family in the statistics feed: money and credit, effective interest rates, capital issuance, mortgage lenders and administrators, uk international reserves, external business of monetary financial institutions, consolidated worldwide claims, credit union, banking sector regulatory capital. In the publications feed, working paper, weekly report and monetary policy report behave the same way.

Event types

mpcAnnouncement, fpcAnnouncement, statisticalRelease, publication, speech, news, event, bankRateChange. One mode produces one type, except releases, where the type follows the feed.

What maxItems keeps

In bankRate the most recent changes survive, because a date-sorted cut would otherwise hand you 1975. In every other mode the entries closest to today survive, in both directions — which is what a diary is asked for. Sorting happens after that, so sortOrder never changes which rows you get, only the order they arrive in.

The onlyNew watcher

Each emitted row is remembered by its link plus its date in a named key-value store, under a key derived from mode, feeds and keyword — two scheduled tasks with different filters keep separate histories. A date that moves therefore counts as new, which is the point of watching a central-bank calendar. The first run writes everything it finds, and a later run that finds nothing new ends successfully with zero rows instead of failing.

Times

The committee date pages print calendar dates and no clock time at all, so their rows carry timeKnown: false with eventDateTimeUtc and eventTimeLondon left null — no invented 09:30. Feed entries are stamped in London time and the Bank switches notation with the season (+0100 in summer, Z in winter); both are converted to the same wall clock, so a 09:30 release is 08:30Z in September and 09:30Z in January. An entry the Bank stamped 00:00:00 carries no publication time either and says so. eventDate is always the London calendar day, the day the Bank itself prints.

Examples

The next UK rate decisions

{ "mode": "mpcDates", "maxItems": 20 }

The financial-stability cycle, only what is still ahead

{ "mode": "fpcDates", "onlyUpcoming": true, "maxItems": 20 }

Statistical releases of the last day, as a watcher

{ "mode": "releases", "feeds": ["statistics"], "sinceHours": 24, "onlyNew": true, "sortOrder": "latest", "maxItems": 50 }

Money and Credit only, newest first

{ "mode": "releases", "feeds": ["statistics"], "query": "money and credit", "sortOrder": "latest", "maxItems": 10 }

Bank Rate since 2015 for a model

{ "mode": "bankRate", "dateFrom": "2015-01-01", "sortOrder": "latest", "maxItems": 30 }

Speeches and news of the past week, trimmed to four fields

{ "mode": "releases", "feeds": ["speeches", "news"], "sinceHours": 168, "sortOrder": "latest", "fields": ["eventDateTimeUtc", "eventType", "title", "detailUrl"], "maxItems": 40 }

Output

One row per date. A real row from the run that produced this README (mode: "mpcDates", run SMIDuHEgpmcAdDqqj):

{
"eventDate": "2026-11-05",
"eventType": "mpcAnnouncement",
"title": "November MPC Summary and minutes and November Monetary Policy Report",
"isUpcoming": true,
"daysUntil": 37,
"timeKnown": false,
"eventDateTimeUtc": null,
"eventTimeLondon": null,
"dayOfWeek": "Thursday",
"committee": "MPC",
"detailUrl": "https://www.bankofengland.co.uk/monetary-policy-summary-and-minutes/2026/november-2026",
"summary": null,
"sourceFeed": null,
"url": "https://www.bankofengland.co.uk/monetary-policy/upcoming-mpc-dates",
"fetchedAt": "2026-09-29T22:29:52.650Z",
"dateConfirmed": true,
"hasMinutes": true,
"hasMonetaryPolicyReport": true,
"bankRateAtFetchPercent": 3.75
}

A statistical release (feeds: ["statistics"], run K2EXhlc2GicTyi8cx) and a rate change (mode: "bankRate", run GxglBrNle1Yqthrue) from the same verification, trimmed to the fields that differ:

{
"eventDate": "2026-09-29",
"eventType": "statisticalRelease",
"title": "Money and Credit - August 2026",
"timeKnown": true,
"eventDateTimeUtc": "2026-09-29T08:30:00.000Z",
"eventTimeLondon": "09:30",
"summary": "Our monthly Money and Credit statistical release is made up of three parts: broad money and credit, lending to individual and lending to businesses.",
"sourceFeed": "statistics",
"detailUrl": "https://www.bankofengland.co.uk/statistics/money-and-credit/2026/august-2026"
}
{
"eventDate": "2025-12-18",
"eventType": "bankRateChange",
"title": "Bank Rate cut to 3.75% (-25 bps)",
"bankRatePercent": 3.75,
"previousRatePercent": 4,
"changeBps": -25,
"changeDirection": "decrease",
"url": "https://www.bankofengland.co.uk/boeapps/database/Bank-Rate.asp"
}
FieldTypeMeaning
eventDatestringThe London calendar day of the event, YYYY-MM-DD
eventTypestringOne of the event types
titlestringWhat lands that day, as the Bank names it; for a rate change, the move in words
isUpcomingbooleanStill ahead. With a published time, measured against that moment; a date-only entry counts as ahead for the whole of its day
daysUntilnumberWhole days from today to eventDate, negative once it has passed
timeKnownbooleanWhether the source published a time of day at all
eventDateTimeUtcstring | nullThe publication moment, ISO 8601 UTC; null when timeKnown is false
eventTimeLondonstring | nullThe same moment as HH:MM London wall clock; null when timeKnown is false
dayOfWeekstringWeekday name of eventDate
committeestring | nullMPC, FPC, or null for feed entries and rate changes
detailUrlstring | nullThe page the entry points to — minutes, report, release, speech or event
summarystring | nullThe standfirst the Bank syndicates with a feed entry, cut at 400 characters; null on the date pages
sourceFeedstring | nullWhich feed the row came from, in releases mode
urlstringThe page or feed that was fetched
fetchedAtstringFetch time, ISO 8601 UTC
dateConfirmedbooleanmpcDates/fpcDates: false when the year's heading marks the dates as provisional
hasMinutesbooleanmpcDates: the summary and minutes are published that day
hasMonetaryPolicyReportbooleanmpcDates: a quarterly Monetary Policy Report lands with the decision
bankRateAtFetchPercentnumber | nullmpcDates: the Bank Rate printed on the schedule page at fetch time
hasFpcRecordbooleanfpcDates: the committee record is published that day
hasFinancialStabilityReportbooleanfpcDates: a Financial Stability Report lands with it
bankRatePercentnumberbankRate: the level the change moved to, in percent
previousRatePercentnumber | nullbankRate: the level before it; null for the oldest change in the table
changeBpsnumber | nullbankRate: signed move in basis points
changeDirectionstring | nullbankRate: increase or decrease

Every run also writes a SUMMARY record to its key-value store: requests made, entries read, what each filter dropped, and — in mpcDates — the Bank Rate and the next announcement date the page prints.

Dataset views: Calendar (any mode), Committee dates, Releases and speeches, Bank Rate changes.

Use it from code / agents

One run is one to five requests and finishes in seconds, so a synchronous call is fine for an agent or a request handler.

curl -X POST "https://api.apify.com/v2/acts/yadroo~boe-release-calendar/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"mode":"mpcDates","onlyUpcoming":true,"fields":["eventDate","dayOfWeek","hasMonetaryPolicyReport","daysUntil"],"maxItems":5}'
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('yadroo/boe-release-calendar').call({ mode: 'bankRate', dateFrom: '2015-01-01', sortOrder: 'latest', maxItems: 30 });
const { items } = await client.dataset(run.defaultDatasetId).listItems();
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("yadroo/boe-release-calendar").call(run_input={"mode": "releases", "feeds": ["statistics"], "sinceHours": 24, "sortOrder": "latest"})
items = client.dataset(run["defaultDatasetId"]).list_items().items

MCP: add https://mcp.apify.com to Claude / Cursor / any MCP client and call the yadroo/boe-release-calendar tool with the same JSON input. Narrow the row with fields to keep a model's context small.

Pricing

Pay per event: $0.001 for starting a run plus $0.002 per dataset row on the free tier (per-row price is lower on paid tiers: $0.0018 bronze, $0.0016 silver, $0.0014 gold and above; the start event is flat). Every run is charged the start event, including a watcher run that finds nothing — calendar runs are small, so that $0.001 is a visible share of a tiny run.

RunRowsCost
MPC announcement days (mpcDates)16$0.001 + $0.032 = $0.033
FPC dates (fpcDates)8$0.001 + $0.016 = $0.017
A month of statistical releases (releases, statistics)30$0.001 + $0.060 = $0.061
Bank Rate since 2015 (bankRate)25$0.001 + $0.050 = $0.051
A daily watcher run with nothing new (onlyNew)0$0.001 + $0 = $0.001

Compute is negligible in practice: 256 MB, no browser, one to five requests, a few seconds per run.

Limits & FAQ

  • Dates, not figures. The Bank publishes the schedule and the rate level; there is no actual, forecast or previous column anywhere in this source, and none in the output. The numbers live behind detailUrl.
  • No calendar of forthcoming statistical releases. The Bank has no feed of what is about to be published: its filtered "upcoming" listings are filled in the browser and its two-week diary page is free prose with no per-item markup, so neither is used here. Future dates are therefore covered for the two committees and for booked events — past releases come from the feeds. Do not expect next month's Money and Credit date from this actor.
  • The committee pages hold the current and next year only. Sixteen MPC dates and eight FPC dates on 2026-09-29. Earlier years are not on those pages, and dateFrom cannot bring them back.
  • No clock time on the committee pages. Those rows say timeKnown: false rather than guessing an hour. The announcement has been at noon London for years, but the Bank does not print it on the schedule, so the actor does not either.
  • Feeds hold 50 entries each. That is roughly eight months of statistics, three months of publications or news, ten months of speeches. Anything older is gone from the source; dateFrom narrows what is there, it cannot extend it.
  • The events feed mixes past and future. It is the one place future dates appear, but most of its 50 entries are past. Use onlyUpcoming: true for the diary half.
  • Two HTML layouts. The committee pages are parsed by shape — a year heading followed by a two-column table — not by CSS classes. A redesign that removes the tables makes the run fail with a message naming the page instead of quietly returning zero rows. The rate table is a legacy page and is matched by its own column headers.
  • robots.txt is honoured. The Bank excludes its interactive database area and the site search; none of the four paths used here is excluded. Before reading the rate table the actor fetches robots.txt and stops with a clear message if that ever changes.
  • Politeness. One request per page or feed, at most five per run, with backoff on 429 and 5xx and a normal User-Agent. There is no login, captcha or anti-bot wall on any of these paths.
  • Empty results are not silent. A run whose filters match nothing ends with a message naming mode, keyword and window — except with onlyNew, where zero rows is the correct "nothing changed" answer.
  • Personal data. The only names in the output are those of Bank officials inside the speech titles the Bank publishes itself. No contact details are collected.
  • Source and licence. Data comes from the Bank of England: the MPC date page, the FPC date page, the Bank's RSS feeds and the Bank Rate table. Reuse of the rate data is covered by the UK Open Government Licence; rows carry facts about the schedule and links, never the text of a publication.

Made by Yadroo. Sibling actors: ons-release-calendar, fed-fomc-calendar, bls-release-calendar, us-treasury-yields, statcan-release-calendar.