# Eggtimer.app URL reference

Base URL: https://eggtimer.app

Shortcut hosts: https://e.eggtimer.app and https://www.eggtimer.app permanently redirect (HTTP 308) to eggtimer.app, preserving the path and query string. For example, https://e.eggtimer.app/5m becomes https://eggtimer.app/5m. Address-bar autocomplete is controlled by the browser and user history, not the redirect.

## Subdomain shortcuts

A single wildcard accepts durations as hostnames. Examples: https://egg.eggtimer.app starts the seven-minute egg preset. https://15.eggtimer.app and https://5m.eggtimer.app mean 15 and 5 minutes; https://1h.eggtimer.app means one hour; https://24h.eggtimer.app means 24 hours; https://90s.eggtimer.app means 90 seconds. Compound durations such as https://1h20m.eggtimer.app also work. A bare number means minutes. Units accepted by the duration parser work without spaces, including s, m, h, d, w and their word forms.

These addresses permanently redirect (HTTP 308) to an equivalent timer path on https://eggtimer.app, preserving the query string. The browser runs the timer on the main domain, sharing its preferences and saved recipes. Shortcuts apply at / or /index.html only; do not append other timer paths to a duration hostname. Use the main-domain URL format for labels, dates, holidays, or multi-step sequences.

Named hosts: https://pomodoro.eggtimer.app and https://pomodo.eggtimer.app redirect to /pomodoro (25 minutes focus, 5 minutes break). https://pomo.eggtimer.app redirects to /pomo (27 minutes focus, 8 minutes break). Each runs one pair automatically, not an infinite loop. https://tabata.eggtimer.app redirects to /tabata.

Use one hostname label, at most 63 letters/digits. No spaces, decimal points, signs, or nested subdomains. A duration must be positive and within the existing 315576000-second limit. Unknown names and invalid durations return 404. No DNS record is created for each shortcut.

## Durations, clock times, and calendar dates

- [`/egg`](https://eggtimer.app/egg): Egg timer: 7 minutes.
- [`/5`](https://eggtimer.app/5): 5 minutes.
- [`/5mins`](https://eggtimer.app/5mins): 5 minutes.
- [`/5m`](https://eggtimer.app/5m): 5 minutes.
- [`/90s`](https://eggtimer.app/90s): 90 seconds.
- [`/3h`](https://eggtimer.app/3h): 3 hours.
- [`/4days`](https://eggtimer.app/4days): 4 days.
- [`/5%20days%203%20hours`](https://eggtimer.app/5%20days%203%20hours): 5 days and 3 hours.
- [`/Tea/for/3m`](https://eggtimer.app/Tea/for/3m): 3 minutes, labeled Tea.
- [`/Party!/in/3m`](https://eggtimer.app/Party!/in/3m): 3 minutes, labeled Party!.
- [`/3m/until/Tea`](https://eggtimer.app/3m/until/Tea): 3 minutes, labeled Tea.
- [`/9pm`](https://eggtimer.app/9pm): Until the next 9pm.
- [`/17:30`](https://eggtimer.app/17:30): Until the next 5:30pm.
- [`/2030-01-01`](https://eggtimer.app/2030-01-01): Until January 1, 2030.
- [`/1%20January%202030`](https://eggtimer.app/1%20January%202030): Until January 1, 2030.
- [`/week`](https://eggtimer.app/week): One week from now.
- [`/25m/5m`](https://eggtimer.app/25m/5m): 25 minutes, then 5 minutes.
- [`/pomodoro`](https://eggtimer.app/pomodoro): 25 minutes of focus, then a 5-minute break.
- [`/pomo`](https://eggtimer.app/pomo): 27 minutes of focus, then an 8-minute break.
- [`/pomodo`](https://eggtimer.app/pomodo): Alias for the 25/5 Pomodoro pair.
- [`/tabata`](https://eggtimer.app/tabata): 20 seconds of work and 10 seconds of rest, repeated 8 times.
- [`/52-17`](https://eggtimer.app/52-17): 52 minutes of focus, then a 17-minute break.
- [`/five%20minutes`](https://eggtimer.app/five%20minutes): 5 minutes written out.

Duration quantities can also be English integer words: five minutes; THIRTY SECONDS; one hundred and twenty-three seconds; or five days, three hours, forty-five minutes and thirty seconds. Hyphenated number words, commas, and “and” are accepted. Mixed forms such as 1h and thirty minutes work. Written fractions such as half or quarter are not supported; use numeric durations such as 30m. For generated links, prefer numeric shorthand.

Clock times and calendar dates use the visitor's browser timezone. 9pm and 17:30 mean the next occurrence, today or tomorrow. 17:30 is a clock time, never 17 minutes 30 seconds. Use 17m30s for that duration. The form also accepts noon, midnight, and tomorrow (next local midnight).

Calendar dates use local midnight unless a local time is supplied, for example /2030-01-01%2017:30. Supported dates are YYYY-MM-DD and D Month YYYY (English month names or three-letter abbreviations). Invalid dates and dates in the past show an error; they do not silently become a new timer. There is no explicit timezone parameter in this version. Do not append Z or assume UTC.

Supported holiday names: Christmas or Christmas Day; New Years Day or New Year's Day; Mothers Day or Mother's Day. Each selects the next occurrence. Mother's Day explicitly uses the US definition (the second Sunday in May); do not imply it matches every country. Unsupported holidays show an error.

## Labels

These patterns are equivalent for relative durations:

- /Tea/for/3m
- /Tea/in/3m
- /3m/until/Tea

Use /Meeting/at/17:30 for a clock time. Labels can be up to 80 characters. Encode each path segment with encodeURIComponent; spaces can be %20 or +. A slash separates steps, so do not put a slash inside a label. Labels appear on screen and in any completion webhook payload.

## Sequences

Separate times with slashes: /1h/20m or /25m/5m. Up to 12 steps are accepted. The next step starts automatically. The completion webhook fires once after the final step, not at every step. A delayed browser update catches up against the original deadlines. For labels on individual steps, cycles, or manual advancement, use a recipe.

/pomodoro and /pomodo run one 25/5 focus/break pair. /pomo runs one 27/8 pair. Each URL runs the pair once; use a recipe for repetitions. /tabata repeats its work/rest pair 8 times. /52-17 runs one focus/break pair. Focus 25/5 is separate: it waits for you to start each next work or break session.

## Optional query parameters

- theme=plain, oat, midnight, clay, or lilac: choose a palette.
- display=digits, ring, or bar: choose the display.
- muted=true: disable the alarm sound for this visit.
- hideToolbar=true: hide the extra timer tools.

Example: https://eggtimer.app/5m?theme=midnight&display=ring&muted=true

Do not invent other parameters. This version does not implement e.ggtimer's gg_timer_* names, arbitrary sound files, volume, or system-notification query options. Never put a webhook URL, API key, or secret in a timer link.

Opening a direct URL starts immediately. Each browser tab has independent timer state in session storage. A new tab starts a fresh timer; reloading an existing timer URL in the same tab preserves its run, including pause state. Browser Duplicate Tab may copy the starting session snapshot, but subsequent controls operate independently; Change time clears the current tab’s run. Preferences, recent durations, and saved remixes use browser-wide local storage. The reset and start controls allow a fresh run. A recipe fragment link loads a preview and waits for Start.
