Widgets

Keep your business hours clear inside the email.

Publish your weekly opening hours and explicit date exceptions in one business timezone. Each new image request resolves the current status and next change from the schedule you saved.

Sample Business Hours card with current status, today’s hours, timezone, and timestamp

A real render produced by DynaMail’s image pipeline.

Create a free account

Free while in beta · No credit card required

How it works

  1. 1

    Describe the business

    Set its name, optional location label, and named IANA timezone.

  2. 2

    Author the weekly schedule

    Mark each weekday closed, open 24 hours, or add as many as two opening periods.

  3. 3

    Add date exceptions

    Replace the complete hours for planned closures, extended hours, and other special dates.

  4. 4

    Choose a composition and optional link

    Use Today, Week, or Strip, then optionally link the whole PNG to the saved business page.

The finished widget is a plain image URL inside a link — paste it into your template, or your email editor’s image block, like this:

Example embed snippet

<a href="https://dynamail.io/c/YOUR-TRACKED-LINK"><img src="https://img.dynamail.io/widgets/YOUR-WIDGET-ID/render.png" width="360" height="384" alt="Business hours and current open status" /></a>

YOUR-WIDGET-ID is a placeholder — every widget you create gets its own id. This widget uses a static PNG for broad email-client support. Use descriptive alt text so readers can understand the image when images are off or a screen reader reads the email.

Each render captures one instant, resolves the saved schedule in the business timezone, and calculates the next opening or closing within a 14-date window. Email clients and their image proxies may cache the PNG after fetching it. No script, no custom HTML, nothing for your email platform to strip out.

What it’s for

  • Retail — show today’s opening hours beside a local offer
  • Restaurants — publish split lunch and dinner periods
  • Services — display the next seven dates with planned closures
  • Venues — give readers one business page for current details

How schedule freshness works

  • The saved schedule is authoritative

    Weekly hours and date exceptions stay fixed until you edit and save the widget again.

  • New renders resolve the current minute

    A new image request calculates status from the current time, including daylight-saving boundaries.

  • Inbox caches can retain an earlier image

    An email application or image proxy may keep a previously fetched image. The business page can confirm current details.

One saved schedule and business page

Configure the schedule in the dashboard. Public render URLs only carry standard display controls.

?locale=en-USFormat dates and times for a supported locale
?pixelRatio=2Render at 2× for high-density screens

Public render requests cannot override the schedule, destination, business details, timezone, current time, state, preview scenario, or geometry.

Frequently asked questions

Does Open now prove that staff are present?

No. The status is calculated from the schedule, date exceptions, and timezone saved in the widget. It does not measure staff presence.

How do special hours work?

A date exception replaces the complete weekly schedule for that local date. You can set different periods, open all day, or mark the date closed.

Can hours cross midnight?

Yes. Enter the first date through 24:00, then add the remaining period to the following date. Each date exception is replaced independently.

Which timezone does the image use?

All status calculations and displayed times use the named IANA timezone saved with the business. The As of line includes a numeric GMT offset.

Will the image always change when someone opens the email?

Email applications and image proxies may retain an earlier image. An optional linked business page can confirm the latest details.

Can a public render URL change the schedule?

No. The business name, location, timezone, schedule, destination, preview scenario, and geometry come from the saved widget.