For partners
Put the Carlton calendar on your own website
The widget is a plain iframe on a white background — no scripts to install, no styling conflicts. It shows a month grid with a list view toggle, updates itself as new events are verified, and links each event back to its full page.
1. Basic embed
Paste this wherever you want the calendar to appear.
<!-- Carlton events calendar -->
<iframe
src="https://carlton.example/api/public/widget/calendar"
title="What's on in Carlton, Oregon"
style="width:100%;height:760px;border:0;background:#fff"
loading="lazy"
></iframe>2. Auto-height embed (recommended)
The widget posts its height to the parent page, so the iframe grows and shrinks with the month instead of scrolling.
<iframe
id="carlton-calendar"
src="https://carlton.example/api/public/widget/calendar"
title="What's on in Carlton, Oregon"
style="width:100%;height:760px;border:0;background:#fff"
loading="lazy"
></iframe>
<script>
window.addEventListener('message', function (event) {
if (!event.data || event.data.type !== 'carlton-widget-height') return;
var frame = document.getElementById('carlton-calendar');
if (frame) frame.style.height = event.data.height + 'px';
});
</script>3. Options
?view=list— open in list view instead of the month grid.?days=30— only show events in the next N days.?category=music— filter by event tag (music, wine, food, art, gravel_riding, mtb_riding, …).?accent=%23123456— match your brand color (hex, URL-encoded).
Example: list view, next 30 days
4. Build your own with the JSON feed
Prefer to style it yourself? The same data is available as open, CORS-enabled JSON.
fetch('https://carlton.example/api/public/widget/events?days=30')
.then(function (r) { return r.json(); })
.then(function (data) { console.log(data.events); });