managed
We hold the credentials
Using WordPress? Every integration here is also available as a plugin. Browse the plugin store →
Education
Term dates, reading lists, recordings and staff pages that come from the Microsoft 365 tenant the institution already runs — not from a second copy somebody has to remember to update.
Primary and secondary schools, multi-academy trusts, sixth-form and further-education colleges, university faculties and departments, and independent training providers.
What it reads, what the builder controls, and the markup it produces — on one page, with no signup in the way.
Calendar A drawing of the component, not a screenshot
The gap
An institution’s calendar, its staff list and its course material are all maintained already — in a SharePoint Events list, in Entra ID, in a departmental document library — by the people whose job it is. The website holds a copy of each, maintained by somebody else, and the copy is wrong by half-term.
Every fix that adds a second place to type the same thing fails the same way. Reading the original means the term dates on the site are the term dates the office keeps.
The components
Every one of these reads a source the organisation already maintains, and each is configured per instance in a builder before it goes on the page. All of them are released today.
<wpi-calendar>
Works with Outlook user and group calendars · SharePoint Events lists · Published ICS feeds · Any JSON REST endpoint
Term dates, open evenings, exam timetables and enrichment sessions, read from the SharePoint Events list or Outlook group calendar the office already maintains. Recurrences are expanded server-side, so a weekly session appears every week without being typed twice.
<wpi-documents>
Works with SharePoint document libraries · OneDrive for Business
Course handbooks, policies, prospectuses and reading lists published from the department’s own SharePoint library. Restrict the list to PDFs, keep folders browsable, and let the newest version in SharePoint be the version a student downloads.
<wpi-video-gallery>
Works with SharePoint video folders · OneDrive · YouTube · Vimeo · Direct video URLs
Lecture captures, assemblies and open-day talks. Microsoft Stream keeps its videos in SharePoint document libraries, so a Stream recording in a SharePoint site is read as an ordinary SharePoint source — mixed, if you like, with anything already on YouTube or Vimeo.
<wpi-persons>
Works with Entra ID directory users · Microsoft 365 group membership · SharePoint lists
Faculty and staff directories narrowed to one department with a Graph filter, so a single source in Entra ID produces a page per department. Contact details are off by default, which is what lets an internal directory and a public staff page share one source.
<wpi-bookings>
Works with Microsoft Bookings · Microsoft Graph
Open days, campus tours, parents’ evenings and tutorial slots, taken on your own site against Microsoft Bookings — with the appointment landing in the diary the admissions team already works from.
One source, several audiences
An institution rarely has a calendar problem. It has an audience problem: one set of events, several groups who should each see a different slice of it.
A department page assembled from Entra ID or a SharePoint list, narrowed by a Graph filter, with contact details off until you switch them on. Somebody joins the tenant and they are on the site; somebody leaves and they are not.
Recordings
Recordings end up scattered — some in a SharePoint folder, some already on YouTube, some on a shared drive. The gallery gathers them instead of linking out to three different players.
In figures
Four
kinds of calendar source
An Outlook user or group calendar, a SharePoint Events list, a published ICS feed, or any JSON endpoint whose fields you can map.
Six
calendar arrangements
Month, week, day and list grids, a paginated agenda, or a grid of event cards one to four columns wide.
Zero
Microsoft sign-ins for a visitor
Access is resolved server-side with the institution’s own credentials, so a parent or applicant reads the page without an account.
Two
ways we reach your tenant
Managed consent, or proxy mode where your own gateway holds the credentials and Graph traffic stays inside your network.
Reaching your tenant
Every tenant runs in one of two modes and the choice belongs to your IT, not to us. Managed means we run the client-credentials flow and an administrator consents once. Proxy means you supply a base URL and an API key for your own gateway, we store that key encrypted at rest, and we never hold a Graph token at all — which is what makes this workable inside an institution whose policy forbids delegating directory access.
managed
We hold the credentials
proxy
You hold the credentials
The component platform is in pre-launch, so there is no signup for it yet and interest arrives as email that somebody reads. The WordPress plugin store is open today and sells the same Microsoft 365 jobs inside WordPress.
Questions
No. The Calendar component is read-only. It renders what the source contains and never writes back, so the calendar cannot be edited from the website by anyone.
No. ICS and JSON sources are fetched and parsed by our servers, so a calendar published from Outlook, Google or Apple can be displayed without connecting a Microsoft 365 tenant at all.
Yes, by way of SharePoint. Stream stores its videos in SharePoint document libraries, so a Stream recording held in a SharePoint site is read as an ordinary SharePoint source.
Yes. The directory source accepts a Graph filter, so filtering on department or any other user property produces a page for one team out of the whole tenant.
By not pointing a component at it. The components render whichever source you configure, to everyone who reaches the page — there is no visitor sign-in, and the domain allowlist controls which sites may render the embed rather than who may read it. Persons keeps email, phone and LinkedIn off by default for this reason, but the decision about what a source contains stays yours.
Yes. Outlook and SharePoint recurrences are expanded server-side across the window being displayed, and ICS feeds have their RRULE entries expanded when the feed is parsed.