One script tag connects your Planning Center events to any website. Live data. Six layouts. Service times in your own timezone, automatically. Works on Squarespace, WordPress, Wix, or raw HTML... no developer required.
No credit card required · Free plan available · 2-minute setup
The Feature Nobody Else Has
Your church homepage should always answer one question... "What's happening this week?" PCOWidget's Simple layout does exactly that. Clean tiles. Live data from Planning Center. Sermon title pulled right from your PCO event notes. And that's just one of six layouts... use the monthly grid for your events page, cards for a ministry section, image tiles for a dense "what's on" block, or list view anywhere that needs a compact feed.
sermon: Your Title anywhere in your PCO event notes and it appears on your site
Built-in Event Popover
Visitors click any event and a rich detail card appears instantly — event photo, date, time, location, ministry tag, and full description. No page reload. No popup blocker.
Live widget — click any event below to see the popover in action
Get Up and Running
No developer. No plugin. No build step. Just three straightforward steps and your live calendar is live.
Sign up and provide your Planning Center Application ID and Personal Access Token. We store your credentials encrypted... they never leave our servers.
We generate a unique API key tied to your church and your allowed domains. Your key only works on websites you authorize... nobody else can use it.
Drop the script tag into your website's HTML... Squarespace Code Block, WordPress shortcode, or directly in your page. Add data-* attributes to choose a layout, filter by tag, set columns, and more. Your live calendar appears instantly.
Everything You Need
Data is fetched directly from Planning Center on every page load. Add an event in PCO... it's live on your website immediately. No 24-hour delay.
Somebody used to have to remember to pull last month's retreat off the homepage, and add the fall kickoff to the youth page, and check whether the men's breakfast was still listed. That job is gone. Every page reads from Planning Center, so an event appears when it's scheduled and drops off on its own once it's over. Nobody logs into the website. Nobody edits a page. Your PCO calendar is the website.
Service Tiles, Image Tiles, Event Cards, List View, Monthly Grid, and Week Strip. Choose the right layout for every page on your site... mix and match freely.
Squarespace, WordPress, Wix, Webflow, or hand-coded HTML. If a page can run JavaScript, it can run PCOWidget. No plugins or backend required.
Every layout is fully responsive and specifically tested on phones and tablets. On small screens, the calendar grid collapses to dot indicators so nothing ever feels cramped.
Clicking any event opens a full-detail modal... image, time, location, description, and "Add to Calendar" link. No page navigation. No popup blockers. Works in Squarespace.
Your “Traditional Worship” event recurs every week in PCO — the event stays the same, but the sermon title changes. Just write sermon: Your Title anywhere in the PCO event notes and PCOWidget surfaces it on your site automatically. Update it once in PCO... it appears everywhere the widget is embedded.
Events are automatically color-coded by their PCO tag — Worship in blue, Youth in purple, Children in amber, Outreach in pink. An event with multiple tags shows all of them as color badges. No configuration needed... assign tags in PCO and the colors follow.
The widget includes a view toolbar — Month grid, Week strip, List, and Cards, plus Tiles on an embed that starts there. Visitors switch perspectives without a page reload. Want a single locked view with no toolbar? Choose the Simple layout or any layout without navigation and the switcher stays out of the way.
If a PCO event has a registration URL, the widget links to it automatically — on the card, in the list row, and in the popover. Add to Calendar exports a .ics file compatible with Google Calendar, Apple Calendar, and Outlook. Zero setup.
By default the widget shows only upcoming events, so your homepage is never cluttered with things that already happened. Add data-include-past="true" on a dedicated archive page to show what’s already taken place — ministry recaps, past sermon series, small group history. Clean by default. Open when you want it.
Filter by PCO tag. Show only featured events. Set 1 to 8 columns. Pick a shadow color. Override the heading. Enable week navigation. Mount into any element. Every option lives on the script tag itself... no dashboard login, no config file.
It’s the 28th, the next event is nine days out, and your calendar page is a blank box. Add data-auto-advance="2" and the widget skips ahead to the next month that actually has something, heading and all. Or write your own message with data-empty-message. Or hide the widget completely with data-hide-if-empty. Your page, your call.
An event carrying eight Planning Center tags turns a card into a wall of chips. data-show-tags="Campus" keeps the one tag group that matters and hides the rest, and a campus you add next year shows up on its own. Filtering which events show and which tags show are two separate controls, so you can do either or both.
Planning Center already knows which events are approved and which you’ve published to Church Center. The widget honors both, so tentative bookings, staff meetings, room holds, and anything still awaiting approval never reach your public page. Need to see the drafts? Put a second widget on a staff-only page with data-visibility="pending" and preview exactly how an event will look before you publish it.
A 9:00 AM service is 9:00 AM whether your church is in Sacramento, Tulsa, Denver, or Charlotte. PCOWidget reads the timezone already set on your Planning Center organization and shows every event in your own local time. Nothing to configure, no attribute to add, no offset to work out. Correct the timezone in PCO one day and the widget follows on its own.
A compact photo grid that sits between plain service tiles and full cards, about a third the height of a card. Rest the pointer on a tile and the full event card opens in the center of the screen. Click or tap opens it right away. Events with no artwork in Planning Center get a colored panel and a calendar glyph, so a calendar that is light on photos still looks deliberate. Set it with data-layout="tiles".
A busy church can put 80 or 90 events on a single month, and nothing gets quietly dropped off the end. The widget renders the full window it is displaying. Want something shorter on a homepage? data-rows="2" caps how far it runs down the page, or data-limit caps the event count outright. Trimming is your choice, never a surprise.
New Layout
Between the plain service tile and the full event card sits a third option. data-layout="tiles" renders your events as a compact photo grid, roughly a third the height of a card, so a whole month fits in the space a handful of cards used to take.
data-rows and data-columns together pin an exact block of events, however busy the calendar
Live widget... hover or tap any tile below
Built for the Whole Church
The same script tag powers every ministry section on your site. Change the tag filter, pick a layout, set your columns — each page shows exactly what that ministry needs, all live from the same Planning Center account. Events can carry multiple PCO tags and all of them display as color-coded badges. The data-tag filter simply scopes which events the widget shows.
Cards layout with 3 columns shows upcoming Bible studies, retreats, and fellowship nights — filtered to just the Women’s Ministry tag from PCO.
List layout keeps it clean and mobile-friendly for teens browsing on their phones — just Youth-tagged events with full details one click away.
Simple tiles with week navigation — parents can see this Sunday’s kids program at a glance and step forward to check upcoming special events.
Image tiles, four across and two rows deep. Eight events, every time... the same tidy block whether the month holds ten events or ninety. Hovering a tile opens the full card without leaving the page.
Every setting lives on the script tag itself — no dashboard login, no config file, no developer required after initial setup.
tiles is a compact image grid that opens the full event card when the pointer rests on a tile. The other five layouts are unchanged. Default: tablehover opens itdata-tag="Youth,Women's Ministry" shows either tag.simple layout, default 2, and in the tiles layout, default 4. In the cards layout it pins the grid when set, and the cards fit themselves to the container when it is left off. Every setting steps down on narrower screens.no limit, so the widget shows the whole month or week it is displaying.list, cards, tiles, and simple layouts, so a busy month does not run long down the page. A row is one event on list, and data-columns events wide on cards, tiles, and simple. Default: no limittrue = featured only, false = non-featured only, absent = all events.centerfalsedata-hide-if-empty is set, since nothing renders at all.data-show-tags="Campus" keeps the campus chip and hides the rest. Display only, it does not change which events appear. Default: all tags.data-tag and a row cap for a fixed-height strip. Works on list, cards, tiles and simple. Default: off.published, meaning approved and published to Church Center. The lower levels are for staff-only preview pages.data-visibility="approved": adds events approved in Planning Center but not yet published to Church Center. Same staff-page caution applies. Use whichever of the two reads more clearly to you.blueHow We Stack Up
There are three other good ways to put Planning Center events on a website: Display.Church, PCO Embed, and Planning Center's own Church Center embed. All of them work. Here's what PCOWidget brings that's different, including a few things nobody else offers at all.
| Feature | PCOWidget | Display.Church | PCO Embed | Church Center Embed |
|---|---|---|---|---|
| Starting price | Free... Pro $12/mo | $15/month+ | $9.99/month | Free |
| Live sync from Planning Center | Every page load | 1-2x per day | ||
| Monthly page-view limits | None | 500-3,000 by plan | None | None |
| Layout choices | 6 + view switcher | 7 templates | 3 | 3 |
| Finished events drop off on their own | The moment they end | At next sync | ||
| Empty-month handling Only PCOWidget Auto-advance to the next month with events, your own custom message, or hide the widget entirely |
All three | |||
| "This Week's Services" mode Only PCOWidget | ||||
| Sermon title on recurring events Only PCOWidget | Automatic | |||
| Draft-event preview for staff pages Only PCOWidget | ||||
| Configured right in the embed tag Only PCOWidget 20+ data-* attributes... no dashboard login to change a setting |
Dashboard | Dashboard | Embed builder | |
| Multiple widget instances per page | Unlimited | 10-20 by plan | ||
| Works without publishing to Church Center | Required |
Competitor details are taken from each product's published pricing and documentation as of August 2026. All three are solid tools, and Display.Church in particular supports calendar sources beyond Planning Center.
Straight From Churches
Using PCOWidget at your church? Tell us how it went.
Simple, Honest Pricing
Every feature is available on both plans. The only difference is the small “Powered by PCOWidget” link on the free tier — upgrade anytime to remove it and unlock unlimited domains.
All the features. Try it on your site today. No credit card.
Your widget. Your brand. Nothing else.
No setup fees. No contracts. Cancel anytime. Your widget keeps working even if you downgrade.
Questions
data-include-past="true" is for, on that one page.
data-* attributes right on the script tag. Choose from six layouts: simple service tiles, image tiles, event cards, list view, monthly grid, or week strip. Filter to a specific PCO ministry tag. Show only featured events. Set 1 to 8 columns, and cap how many rows the widget renders so a busy month never runs long down the page. Pick a shadow color (blue, burgundy, or standard). Override the section heading. Enable week navigation with prev/next buttons. Mount the widget into any existing element on your page. Choose which tag chips stay visible. Write your own wording for when nothing is scheduled, or have the widget skip ahead to the next month that has events. Point a staff-only page at the events you have not published yet. You can even run multiple widgets on the same page with completely different settings... no dashboard login required to change any of it.
data-visibility="pending".
data-visibility lets a second widget on a staff-only or password-protected page show the levels underneath what the public sees: approved adds events you have not published yet, pending adds events awaiting approval, and rejected shows your entire calendar. Your team can check exactly how an event will look, with its real image, tags, and times, before anyone else can see it. Your public page keeps its default of published events only. Do not put anything other than the default on a page visitors can reach.
data-show-tags is a whitelist for what stays visible. It matches a Planning Center tag group or an individual tag name, so data-show-tags="Campus" keeps your campus chip and hides everything else, and a campus you add next year appears on its own with no change to your embed code. Use data-show-tags="0" to hide tag chips entirely. This is display only: it never changes which events appear. To filter the events themselves, use data-tag.
data-empty-message. data-hide-if-empty removes the widget entirely, leaving no box and no blank space. Or data-auto-advance="2" skips ahead to the next month that does have events, up to two months out, with the heading following the jump. That last one solves the late-in-the-month problem: it is the 28th, your next event is nine days away, and instead of an empty box a visitor sees what is actually coming up.
data-layout="tiles" renders your events as a compact photo grid: artwork on top, the event name on up to two lines, then the date and time. Each tile is about a third the height of a full card, so a whole month fits where a handful of cards used to go. It shows four across by default, dropping to three on a small laptop and two on a tablet or phone. Resting the pointer on a tile opens the full event card in the center of the screen after a brief pause, so sweeping the mouse across the grid does not flash a card at you; clicking or tapping opens it right away, and data-hover-preview="0" turns the hover behavior off entirely. Plenty of church calendars have artwork on only a handful of events, so that case is handled properly rather than treated as a mistake: an event with no image gets a colored panel drawn from its own name plus a calendar glyph, and the grid stays even.
data-limit caps the number of events from 1 to 250, and data-rows caps how many rows the widget renders in the list, cards, tiles, and simple layouts, which is usually the better control because it fixes how far the widget runs down the page. The monthly grid and week strip ignore data-rows, since their rows are calendar weeks and trimming those would blank out days.
Submit a testimonial
A few honest sentences from you carry more weight than anything we could write about ourselves. Nothing goes up without your say-so.
Sending your testimonial...
Uploading the image if you attached one. This only takes a moment.