Using WordPress? Every integration here is also available as a plugin. Browse the plugin store →

Released component

Calendar

Calendar publishes events from Outlook, a SharePoint Events list, an ICS feed or a JSON API on your site as a month grid, an agenda list or a grid of event cards.

The component platform is in pre-launch, so Outlook Calendar Display for WordPress is the route open today — the same Microsoft 365 job, delivered as a WordPress plugin. If the web component is what you need, tell us and we will come back to you.

hallam-arts.example/whats-on
hallam arts
March Outlook group calendar · month view
1 2 3 4 Rehearsal 5 6 7 8 9 10 11 Opening night 12 13 14 15 16 17 18 Workshop 19 20 21 22 23 24 25 Matinee 26 27 28
Read-only. The calendar on the site is the calendar the team maintains.

A drawing of Calendar on a fictional site, in our own tokens rather than a customer’s brand. The released component renders live Microsoft 365 data; this frame shows its arrangement only.

Putting it on the page

What you paste into the page.

Two lines, and neither of them is a build step. Everything the component shows is resolved from the key at request time, so the markup on the page is the last markup anyone writes.

<script src="https://cdn.wpintegrate.com/v1/calendar.js"></script>
<wpi-calendar embed-key="your-embed-key"></wpi-calendar>
Illustrative markup — cdn.wpintegrate.com stands in for the bundle host. The real snippet, carrying your own embed key, comes from the builder.
  1. The script tag

    One bundle for one component. It defines the custom element and does nothing else — no framework, no build step, and no change to how the rest of the page is built.

  2. The element

    An ordinary HTML tag, placed wherever the component should appear — including inside a page builder’s raw-HTML block, a shortcode, or a template partial.

  3. The embed key

    The key resolves to one configured instance — the Microsoft 365 source, the arrangement, the theme, and the domains allowed to render it. Change any of those and the page itself never has to be edited again.

What it does

How it works

The Calendar component reads events from one source and renders them as a full calendar grid, a paginated agenda, or a grid of event cards. Filtering, category colours and the contents of the event detail popover are all builder settings. It only ever reads — nothing about the source calendar changes.

Why it exists

Event information already lives in Outlook or a SharePoint list, and keeping a second copy on the website in step with it is a job nobody wants and everybody eventually stops doing. Reading the original means the calendar on the site is the calendar the team actually maintains.

Element
<wpi-calendar>
Reads from
Outlook user and group calendars, SharePoint Events lists, Published ICS feeds, Any JSON REST endpoint
Arrangements
6 in the builder
Graph access
managed or proxy — the tenant chooses

Where it runs

Anywhere you can paste two lines of HTML

A custom element needs no build step and no framework, so where your site is built is not a question you have to answer before this one.

  • WordPress
  • Webflow
  • Squarespace
  • Shopify
  • Wix
  • Astro
  • Next.js
  • Drupal
  • SharePoint pages
  • Plain HTML

Named as examples of places HTML can be pasted. No partnership is implied and none of these are customers. WordPress is the one that gets more than an embed — the same Microsoft 365 jobs also ship as plugins with a Gutenberg block.

In detail

Everything Calendar does.

8 capabilities, every one of them resolved from the embed key rather than written into the page.

  1. Four kinds of source

    An Outlook user or group calendar, a SharePoint Events list, a published iCalendar URL, or a JSON REST endpoint mapped to events by dot-path field names. ICS and REST sources are fetched and parsed by our servers, so neither needs a Microsoft connection.

  2. Month, week, day, list and card views

    A full calendar grid opening on whichever view you choose, a paginated vertical agenda, or a grid of event cards one to four columns wide.

  3. Filter before it reaches the page

    Filter by category, or pass an OData $filter, $orderby and $select straight through to Graph. A maximum-results cap stops a busy calendar flooding the page.

  4. Control the window shown

    Choose how many days forward to fetch, whether events that have already ended are included, and how many events a day in the month grid shows before a “+N more” link.

  5. An event popover you compose

    Location, category, organiser, description and the online-meeting join link are individually switchable, so an internal view and a public view can be driven from one source calendar.

  6. Past and future events can look different

    Separate colours for events that have ended and events still to come, so a long agenda reads at a glance instead of being one uniform block.

  7. Locale, clock and week start

    Locale string, 12- or 24-hour time, Sunday or Monday week start, and an option to hide weekends entirely.

  8. Domain allowlist, GTM and custom CSS

    The embed renders only on the domains you list, a Google Tag Manager container id can be attached, and custom CSS covers whatever the settings do not.

One of these you can have today.

Outlook Calendar Display for WordPress is on sale in the store now and does this job inside WordPress. The web component is in pre-launch — if that is the delivery you need, tell us and we will come back to you.

Reaching your tenant

Two ways for us to reach Graph. One of them never lets us.

Every tenant runs in one mode or the other, and the choice belongs to your IT rather than to us. It is the reason this works inside organisations that will not delegate Graph access to a vendor.

managed

We hold the credentials

WPIntegrate runs the client-credentials flow for your tenant. Your administrator grants consent once and is not asked again.

proxy

You hold the credentials

You supply a base URL and an API key for your own gateway. We store that key encrypted at rest and never hold a Graph token at all.

Arrangements

Pick the shape that fits the page

Each of these is a setting on the instance, not a different component — the source, the theme and the embed key stay the same when you change it.

  • Calendar grid — month
  • Calendar grid — week
  • Calendar grid — day
  • Calendar grid — list
  • Paginated agenda list
  • Event card grid, one to four columns

Questions

The things people ask before they buy.

If yours is not here, ask it — the answers come back from a person rather than a form.

Which calendars can it read?

Outlook user and group calendars, SharePoint Events lists, any published .ics feed, and any JSON HTTP endpoint whose fields you can map. One source per component instance — add a second instance for a second calendar.

Can visitors add or change events?

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.

Do recurring events work?

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.

Does an ICS feed need a Microsoft connection?

No. ICS and REST API sources are fetched by our servers, so a calendar published from Outlook, Google or Apple can be displayed without connecting a Microsoft 365 tenant at all.

Can we show only one category of event?

Yes. Every source type accepts a category filter, given as a comma-separated list matched with OR, so a single team calendar can feed several public views.