What it does
TimezoneSelect renders a searchable dropdown of every IANA timezone, grouped by geographic region. Each option shows the zone name, the current UTC offset, and optionally a live preview of the current time in that zone.
API
Accepts value/onChange controlled props, an optional placeholder, and region grouping configuration. Returns the IANA timezone string (e.g. 'America/New_York'). Supports multi-select and single-select modes.
Common use cases
- Meeting planners with multi-timezone participant selection
- User timezone settings in profile and account forms
- Event scheduling forms with live offset preview
Accessibility
The component follows the ARIA combobox pattern with listbox role, live region announcements for search results, and full keyboard navigation including type-ahead and arrow keys.
Next.js integration notes
Use a dynamic import with ssr: false since Intl enumeration APIs run on the client. The component is fully compatible with React Server Components when wrapped in a client boundary.
FAQ
How are timezones sourced?
The component uses Intl.supportedValuesOf('timeZone') to enumerate the IANA timezone database natively supported by the browser — no static list to maintain.
Can I filter by region?
Yes. Timezones are automatically grouped by region (Americas, Europe, Asia, etc.) with expandable group headers. You can also search by city or offset.