Built for Planning Center Churches

Your Church Calendar...
Beautifully Embedded

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

Works on

The Feature Nobody Else Has

"This Week's Services" Mode

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.

  • Shows this week's events automatically... always current
  • Finished events take themselves down. Nobody has to remember to remove last Sunday's event or add next month's... the page follows Planning Center
  • Sermon title displayed automatically — PCO has no sermon title field, so just write sermon: Your Title anywhere in your PCO event notes and it appears on your site
  • Filter by ministry tag... Worship, Youth, Outreach, any tag you already use in PCO
  • 1 to 8 columns... matches any page width
  • Navigate week by week or lock to today's rolling window
This Week's Services  ·  Live
Traditional Worship
Grace and Peace
Sun, Mar 8
9:00 AM – 10:30 AM
Contemporary
Grace and Peace
Sun, Mar 8
11:00 AM – 12:30 PM
Midweek Prayer
Wed, Mar 4
6:30 PM – 7:30 PM
Youth Group
Sun, Mar 8
5:00 PM – 6:30 PM

Built-in Event Popover

Every Event. Full Details. One Click.

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

0
PCO churches to reach
6
Beautiful layouts
1
Line of code to embed
0s
Sync delay... it's live

Get Up and Running

Set Up in Under 2 Minutes

No developer. No plugin. No build step. Just three straightforward steps and your live calendar is live.

Connect Your PCO Account

Sign up and provide your Planning Center Application ID and Personal Access Token. We store your credentials encrypted... they never leave our servers.

Receive Your Embed Key

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.

Paste One Line of Code

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.

<script src="https://api.pcowidget.com/v1/widget.js?key=YOUR_KEY" data-layout="simple" data-this-week="1" data-columns="2" data-tag="Worship" data-title="This Week's Services"> </script>

Everything You Need

Packed with Features... Ready Out of the Box

Live PCO Sync

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.

Nothing Left to Take Down

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.

Six Beautiful Layouts

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.

Works Everywhere

Squarespace, WordPress, Wix, Webflow, or hand-coded HTML. If a page can run JavaScript, it can run PCOWidget. No plugins or backend required.

Mobile First

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.

Click-to-Details Popover

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.

Sermon Title on Recurring Events

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.

Auto-Colored by Ministry Tag

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.

Built-in View Switcher — Show or Hide

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.

Registration Links & iCal

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.

Past Events — Your Call

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.

data-* Attribute API

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.

Never an Empty CalendarNew

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.

Tidy TagsNew

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.

Your Draft Calendar Stays PrivateNew

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.

Your Timezone, Not OursNew

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.

Image TilesNew

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".

Your Whole Month Shows UpNew

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

Image Tiles: A Month at a Glance

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.

Live widget... hover or tap any tile below

Built for the Whole Church

One Widget. Every Ministry Page.

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.

Women’s Ministry Page

Cards layout with 3 columns shows upcoming Bible studies, retreats, and fellowship nights — filtered to just the Women’s Ministry tag from PCO.

data-layout="cards" data-tag="Women's Ministry" data-columns="3" data-title="Upcoming Women's Events" data-limit="6"
Youth Group Page

List layout keeps it clean and mobile-friendly for teens browsing on their phones — just Youth-tagged events with full details one click away.

data-layout="list" data-tag="Youth" data-title="Youth Group Events" data-featured="1" data-limit="8"
Kids Church Homepage

Simple tiles with week navigation — parents can see this Sunday’s kids program at a glance and step forward to check upcoming special events.

data-layout="simple" data-tag="Kids" data-columns="2" data-this-week="1" data-allow-week-nav="1"
Homepage “What’s On” Block

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.

data-layout="tiles" data-columns="4" data-rows="2" data-title="What's Coming Up" data-hide-if-empty="1"

All Configuration Options

Every setting lives on the script tag itself — no dashboard login, no config file, no developer required after initial setup.

data-layoutNew
table  |  list  |  cards  |  tiles  |  week  |  simple
Newtiles 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: table
data-hover-previewNew
0
Tiles layout only. Requires a click to open the event card instead of opening it when the pointer rests on a tile. Default: hover opens it
data-tag
tag name  |  tag1, tag2 (OR)
Filter to a PCO tag. Comma-separate for OR logic: data-tag="Youth,Women's Ministry" shows either tag.
data-title
any string
Override the section heading shown above the widget.
data-columns
1 – 8
Number of tiles per row. Always applies in the 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.
data-limit
1 – 250
Maximum number of events to show. Default: no limit, so the widget shows the whole month or week it is displaying.
data-rowsNew
1 – 100
Maximum rows to render in the 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 limit
data-featured
true  |  1  |  false  |  0
Filter by featured status. true = featured only, false = non-featured only, absent = all events.
data-this-week
true  |  1
Rolling 7-day window from today — always shows this week’s events without any manual updates.
data-allow-week-nav
true  |  1
Adds Prev / Next week navigation buttons so visitors can browse forward and back.
data-nav-align
left  |  center  |  right
Alignment of week navigation buttons. Default: center
data-include-past
true  |  false  |  1  |  0
Include events that have already ended. Default: false
data-hide-end-time
true  |  1
Show only the start time — hides the “– 10:30 AM” portion. Useful for service tiles where end times add clutter.
data-hide-if-empty
true  |  1
Completely hides the widget — no box, no message, no space — when zero events match the current parameters.
data-empty-messageNew
any text, up to 200 characters
Replace the default “no upcoming events” wording with your own. Not used when data-hide-if-empty is set, since nothing renders at all.
data-show-tagsNew
tag group name  |  tag name  |  0
Which tag chips are visible. Matches a Planning Center tag group or an individual tag, so 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-auto-advanceNew
1 – 6
If the month a visitor lands on has no matching events, skip ahead up to this many months to the first one that does. The heading follows the jump. Default: off.
data-months-aheadNew
1 – 12
Gathers every matching event from today out to this many months into one set and drops the month arrows. Answers “what is coming up” rather than “which month am I looking at”, which is what a home page usually wants. Pair it with data-tag and a row cap for a fixed-height strip. Works on list, cards, tiles and simple. Default: off.
data-visibilityNew
published  |  approved  |  pending  |  rejected
How far down Planning Center’s approval and publish ladder to look. Each level adds to the one before it. Default: published, meaning approved and published to Church Center. The lower levels are for staff-only preview pages.
data-include-unpublishedNew
true  |  1
Shorthand for 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.
data-shadow
blue  |  burgundy  |  standard
Card shadow color accent for the cards layout. Default: blue
data-target
any element ID
Mount the widget into an existing element on your page instead of rendering inline after the script tag.
🛠 Build your script → View all examples → Full docs →

How We Stack Up

PCOWidget and the Alternatives

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

What It's Like Once It's Running.

PCOwidget has been an excellent solution for displaying our Planning Center Calendar on our website. It offers professional layouts, extensive customization, and easy event tag filtering. We can place a calendar on a ministry page and show only the events relevant to that ministry, keeping everything organized and easy to navigate. It’s by far the best way we’ve found to present Planning Center events on our public website. I highly recommend PCOwidget to any church using Planning Center!

Emmanuel Lutheran Church logo Randy Holdeman Director of Worship and Connection Groups, Emmanuel Lutheran Church

Using PCOWidget at your church? Tell us how it went.

Simple, Honest Pricing

Free to Start. $12 to Go Fully Yours.

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.

Free
$0 /mo

All the features. Try it on your site today. No credit card.

  • All 6 layouts
  • Live PCO sync
  • Your church’s local time, automatically
  • Popover, iCal, tag colors
  • Sermon title extraction
  • 1 domain
  • “Powered by PCOWidget” link
Get Started Free

No setup fees. No contracts. Cancel anytime. Your widget keeps working even if you downgrade.

Your congregation deserves a calendar
that works as hard as you do.

Get started in minutes. Free plan available. No credit card required.

Questions

Frequently Asked

Is PCOWidget affiliated with Planning Center?
No... PCOWidget is an independent product built by Comp Edge Solutions. We use Planning Center's public API with your own PCO credentials. We are not affiliated with, endorsed by, or sponsored by Planning Center Online.
Does it work on Squarespace?
Yes... and it was specifically designed with Squarespace in mind. The event detail popover is mounted directly on the page body, which means it escapes Squarespace's container overflow restrictions. The CSS uses scoped class names that won't conflict with your Squarespace theme. Paste the script tag in a Code Block and you're done.
What happens when I change an event in Planning Center?
The change appears on your website immediately. PCOWidget fetches live data directly from the Planning Center API on every page load... there's no cache delay, no nightly sync, no "changes appear within 24 hours." The moment you save in PCO, it's live.
Do I have to remove events from the website after they happen?
No, and for a lot of churches this is the whole reason they switch. Keeping a website's events current used to be an ongoing chore: pull the finished retreat off the homepage, add the new study to the women's page, notice three weeks later that a spring event is still sitting on the youth page. PCOWidget reads Planning Center on every page load, so a finished event stops appearing on its own and whatever is next moves up to take its place. Your staff keeps doing what they already do in PCO, and every ministry page on the site stays current without anyone opening the website editor. If you want an archive of what has already happened, that is what data-include-past="true" is for, on that one page.
Will event times show correctly for my church?New
Yes, and there is nothing for you to set. Planning Center already knows what timezone your organization is in, and PCOWidget reads that setting and shows every event in your own local time. A church on Central, Mountain, Pacific, Alaska, or Hawaii time sees its own service times, not Eastern times with an offset note bolted on. We re-check the setting against Planning Center periodically, so if you ever correct it in PCO the widget follows on its own. There is no timezone attribute to add to your embed code, and no support ticket to file.
Do I need a developer to set this up?
No. You copy one script tag and paste it into your website. On Squarespace, that means adding a Code Block. On WordPress, it means pasting into a Custom HTML block. On Wix, it means using their HTML embed element. If you can copy and paste, you can set up PCOWidget.
What's a "widget load" and will I ever hit a limit?
A widget load is counted each time the script fetches fresh data from our server — roughly once per visitor per page view. On the free tier there is a fair-use daily cap that covers virtually any church website. On Pro there is no limit. Either way, the widget is never hard-cut off mid-service — if you approach your cap we’ll email you well in advance so you can decide whether to upgrade.
Can I put multiple widgets on the same page?
Yes. You can embed multiple instances with different layouts and filters on the same page. For example... a "Simple" tile widget showing this week's services at the top, and a full monthly grid further down. Each counts as a separate widget load.
What can I configure without touching my website code again?
Quite a bit... all through 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.
Is my PCO data secure?
Your Planning Center credentials (App ID and Personal Access Token) are stored encrypted using AES-256-CBC encryption. They are only decrypted server-side when making API calls to PCO. Your credentials are never exposed in the JavaScript that runs in visitors' browsers... they see only the rendered event data.
Why is one of my Planning Center events not showing on the widget?New
The widget shows only events that are approved in Planning Center and published to Church Center. If an event is missing, open it in PCO Calendar and check both. Either one will keep it off your website, which is deliberate: it is what stops tentative bookings, room holds, staff meetings, and anything still waiting on approval from appearing in front of your congregation. If your church does not use PCO's approval workflow at all, only the publish setting matters. To see what is being held back, put a second widget on a staff-only page with data-visibility="pending".
Can I preview an event on my site before it goes public?New
Yes. 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.
My events have a lot of Planning Center tags. Can I hide some of them?New
Yes. An event carrying six or eight tags turns a card into a wall of chips and pushes the title and details down the page. 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.
What does the widget show when there are no events this month?New
You have three choices. By default it shows a short "no upcoming events" message, and you can replace that wording with 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.
What is the Image Tiles layout, and what happens to events with no photo?New
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.
We have a very busy calendar. Will the widget show all of it?New
Yes. There is no cap on how many events a month can show. If your church puts ninety events on August, the widget renders ninety, and you will never find out later that visitors were quietly seeing the first fifty. If you want something shorter, that is your call to make: 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.
How does this compare to Display.Church, PCO Embed, or the built-in Church Center embed?
All four tools do the core job well. What sets PCOWidget apart is a handful of things nobody else offers: automatic sermon titles on recurring events, a “This Week’s Services” mode, full control over an empty month (skip ahead to the next month with events, show your own message, or hide the widget entirely), draft-event preview for staff pages, and every setting living right on the embed tag as a data-* attribute, so there’s no dashboard to log into. Add live sync on every page load, no monthly view limits, and a free tier with every feature included, and PCOWidget is the strongest fit for a church that lives in Planning Center. Display.Church shines when you need calendar sources beyond PCO, and PCO Embed also covers groups and sermons.