Keep kava bar websites synced with HappyKava.
Embed live menus, weekly calendars, happening-today cards, TV signage, and network discovery without copying the same update into another website.
Widget gallery
Each endpoint keeps the source of truth on the HappyKava bar, city, menu, deal, or event listing.
Calendar widget
A bar-specific calendar for live specials, recurring events, and upcoming schedule context.
/embed/bar/{barId}This Week widget
A visual week view for bars that want their next few events and deals to feel current on their site.
/embed/week/{barId}Happening Today widget
A tighter feed for today's specials and events, with the next useful item shown when today is quiet.
/embed/today/{barId}Menu widget
A stable embed target for structured public menu items, images, categories, and bar menu links.
/embed/menu/{barId}TV signage
A large-format display for menus, today's happenings, QR prompts, ratings, and weekly highlights.
/embed/tv/{barId}Global Happening Now
A national live discovery widget for public HappyKava events and specials across the network.
/embed/nowInstall patterns
Replace the sample UUID with the bar ID from the HappyKava Portal. Script embeds resize themselves; iframe embeds need a stable minimum height.
Calendar script
Use for a full events and deals surface with week and month context.
<div id="happykava-calendar"></div>
<script
src="https://happykava.app/widgets/v1.js"
data-target-id="happykava-calendar"
data-widget="calendar"
data-bar-id="00000000-0000-4000-8000-000000000000"
data-theme="auto"
data-calendar-style="soft-columns"
data-links="on"
></script>Menu script
Use when the website should reflect structured public menu data.
<div id="happykava-menu"></div>
<script
src="https://happykava.app/widgets/v1.js"
data-target-id="happykava-menu"
data-widget="menu"
data-bar-id="00000000-0000-4000-8000-000000000000"
data-theme="auto"
data-show-images="on"
data-show-category="on"
></script>Network iframe
Use for a partner page that wants the national live discovery feed.
<iframe
title="HappyKava Happening Now"
src="https://happykava.app/embed/now?theme=auto&links=on"
loading="lazy"
style="width:100%;min-height:520px;border:0;"
></iframe>State behavior
Empty state: widgets show branded unavailable, quiet-day, next-up, or menu-empty states instead of estimating content.
Loading state: script widgets mount an iframe and resize after the public payload loads; preview hosts stay no-store.
Error state: invalid bar IDs, disabled entitlements, inactive bars, and temporary data failures render a quiet unavailable state instead of stale content.
Canonical source
The guide at /embed explains the widget options. Live widget endpoints are display surfaces and should not replace the main bar profiles, menus, events, deals, or city pages.
Cross-surface parity is web-only: the mobile app consumes the same public business facts through native screens, not iframe embeds.
FAQ
Crawler-safe answers for bar owners and developers.
Do widget pages replace the main HappyKava pages?
No. The public widget guide explains the tools, while embeddable iframe and preview endpoints point people back to the main HappyKava bar, menu, event, and deal pages.
What happens when a widget has no current content?
The widget shows a branded empty state or the next useful item instead of inventing deals, events, menu items, or schedule facts.
Can a bar customize a widget?
Yes. Supported options include theme, accent color, links, layout, calendar style, image display, category display, CTA mix, and size where the selected widget supports them.