Skip to content
Website Widgets

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.

Deals and events

Calendar widget

A bar-specific calendar for live specials, recurring events, and upcoming schedule context.

Best for
Full website sections
/embed/bar/{barId}
Weekly cards

This Week widget

A visual week view for bars that want their next few events and deals to feel current on their site.

Best for
Homepage modules
/embed/week/{barId}
Same-day feed

Happening Today widget

A tighter feed for today's specials and events, with the next useful item shown when today is quiet.

Best for
Above-fold promos
/embed/today/{barId}
Digital menu

Menu widget

A stable embed target for structured public menu items, images, categories, and bar menu links.

Best for
Menu pages
/embed/menu/{barId}
In-bar screen

TV signage

A large-format display for menus, today's happenings, QR prompts, ratings, and weekly highlights.

Best for
Venue displays
/embed/tv/{barId}
Network feed

Global Happening Now

A national live discovery widget for public HappyKava events and specials across the network.

Best for
Partner pages
/embed/now

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

Browse public kava bar pages

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.