Both widgets are plain <iframe> embeds. Pick your options, copy the snippet, paste it into your page. They work on any platform that lets you insert HTML — WordPress, Ghost, Notion, a static site, a school intranet page.

What you get

  • No JavaScript to install. No <script> tag, nothing added to your build, nothing that can break when we deploy.
  • No cookies and no tracking. The widgets store nothing in your visitors' browsers and send no analytics anywhere — there is no analytics on this site at all. Nothing to disclose in your cookie banner.
  • No ads inside the frame. Deliberate: ads may only run on pages their publisher controls, so we do not serve any on yours.
  • Small. The clock is about 2 KB of compressed JavaScript, the timer about 5 KB, plus a 5 KB font. With loading="lazy" in the snippet, a widget below the fold costs your page nothing until it is scrolled into view.

Terms, in one sentence

Use them on as many sites as you like, commercial or not, for free — we just ask that you keep the small credit line the snippet puts under the frame. That link is the only thing we get out of this.

Countdown timer

Start, pause and reset a countdown. Plays a chime when it reaches zero.

<iframe src="https://vclock.eu/embed/timer/?minutes=25"
        width="320" height="240" style="border:0"
        title="Countdown timer by vclock.eu" loading="lazy"></iframe>
<p style="font-size:12px">Countdown timer by <a href="https://vclock.eu/timer/">vclock.eu</a></p>

Paste this anywhere in your page's HTML. The credit line below the frame is part of the snippet — please keep it.

Live clock

The current time, in any timezone you choose, updating every second.

<iframe src="https://vclock.eu/embed/clock/"
        width="320" height="240" style="border:0"
        title="Clock by vclock.eu" loading="lazy"></iframe>
<p style="font-size:12px">Clock by <a href="https://vclock.eu/">vclock.eu</a></p>

Paste this anywhere in your page's HTML. The credit line below the frame is part of the snippet — please keep it.

All parameters

The builders above cover the common cases. Every option is a query parameter on the iframe src, so you can also write the URL by hand — join parameters with &amp; inside an HTML attribute. Anything missing, misspelled or out of range falls back to its default rather than breaking the widget.

Countdown timer — /embed/timer/

ParameterValuesDefault
minutes1–14405
presets0 hides the quick-duration chipsshown
themedark, light, transparentvisitor's OS preference
langen, de, fr, es, it, nlvisitor's browser language

Live clock — /embed/clock/

ParameterValuesDefault
tzany IANA name, e.g. Europe/Berlinvisitor's own timezone
format12h, 24hwhatever lang implies
seconds0 hides the secondsshown
date0 hides the date lineshown
themedark, light, transparentvisitor's OS preference
langen, de, fr, es, it, nlvisitor's browser language

Sizing

The widgets scale to whatever width and height you give the iframe — the type, the buttons and the spacing are all in viewport units, so there is no minimum and nothing to configure. Two things worth knowing: below about 150 px tall the preset chips and the status label drop out rather than being clipped, and the frame never scrolls, so content that does not fit is cut off instead of adding a scrollbar inside your layout.

transparent removes the widget's own background so it sits on your page's colour instead of in a box. Its text stays light, so it is meant for dark backgrounds.

Troubleshooting

The frame is blank. Almost always a Content-Security-Policy on your site: if your pages send a frame-src directive, add https://vclock.eu to it. We permit any site to frame these two URLs, so nothing needs changing on our end.

Nothing happens when the timer finishes. Browsers block sound until the visitor interacts with the page. The chime is unlocked by the first click on Start, so it works from then on.

It says JavaScript is required. The widgets are live and need scripting; there is no static fallback beyond that message and a link here.

Questions

Anything not covered above — including if you want a variant that does not exist yet — use the contact form.