Timezone IDs

Reference for the numeric timezone_id field returned by Meta APIs. Maps to TZ_<REGION>_<CITY> constants. Used by call_hours.timezone_id (which takes IANA name on write) and other Meta resources.

What Timezone IDs Are

timezone_id is a numeric identifier returned on WhatsApp Business Account (WABA) objects and other Meta API resources. It maps to a named timezone constant (e.g. ID 7 = TZ_AMERICA_NEW_YORK).

There are 591 timezones in the table. Meta uses the numeric ID in API responses but accepts IANA timezone names (e.g. America/New_York) on input fields like call_hours.timezone_id.

Where They Appear

FieldTypeNotes
WABA timezone_idNumeric (read)Returned on GET /<WABA_ID>?fields=timezone_id
call_hours.timezone_idString IANA name (write)e.g. "America/Manaus" — not the numeric ID
Other Meta API resourcesNumeric or string depending on endpointAlways check the field's documented type

The asymmetry — numeric on read, IANA string on write for call_hours — is intentional. Use the named constants on the right side of the lookup table when you need to set a timezone, and use the numeric ID returned by the API when you need to interpret one.

Lookup Table

The full list has 591 entries — too long to mirror here. Reference Meta's official table:

https://developers.facebook.com/docs/whatsapp/cloud-api/reference/timezones

The constant naming convention is consistent: TZ_<REGION>_<CITY>, all caps, slashes in the IANA name replaced with underscores. So:

IANA nameConstantID
America/New_YorkTZ_AMERICA_NEW_YORK7
Europe/ViennaTZ_EUROPE_VIENNA12
Asia/DubaiTZ_ASIA_DUBAI8

Common Timezones

IDConstantIANA name
0TZ_UNKNOWN
1TZ_AMERICA_LOS_ANGELESAmerica/Los_Angeles
2TZ_AMERICA_DENVERAmerica/Denver
3TZ_PACIFIC_HONOLULUPacific/Honolulu
4TZ_AMERICA_ANCHORAGEAmerica/Anchorage
5TZ_AMERICA_PHOENIXAmerica/Phoenix
6TZ_AMERICA_CHICAGOAmerica/Chicago
7TZ_AMERICA_NEW_YORKAmerica/New_York
8TZ_ASIA_DUBAIAsia/Dubai
12TZ_EUROPE_VIENNAEurope/Vienna
588TZ_UNIVERSALUTC
589TZ_W_SUW-SU (Moscow time, legacy alias)
590TZ_ZULUZulu (UTC)
591TZ_AMERICA_COYHAIQUEAmerica/Coyhaique
592TZ_NUM_TIMEZONES(sentinel — not a real zone)

For the full mapping consult Meta's reference page above. The total table runs 0 to 592.

Look Up via API

To check what timezone a WABA is in:

GET /<WABA_ID>?fields=timezone_id
{ "id": "102290129340398", "timezone_id": 7 }

To set the timezone on call_hours (uses the IANA name, not the numeric ID):

POST /<PHONE_NUMBER_ID>/settings
{
  "calling": {
    "call_hours": {
      "status": "ENABLED",
      "timezone_id": "America/New_York",
      "weekly_operating_hours": [/* ... */]
    }
  }
}

If you store both the numeric ID and the IANA name in your code, keep them in a single mapping table to avoid drift. Meta updates the table over time (new IDs append at the end — TZ_AMERICA_COYHAIQUE at 591 was added recently for example).

Related

  • Calling ConfigurationEnable calling on a business phone number, configure call hours and holidays, restrict the call icon by country, set callback permissions, choose audio codecs, listen for settings webhooks.
  • Cloud API CallingVoice calling on WhatsApp Business Cloud API: VoIP via WebRTC or SIP, business-initiated and user-initiated calls, prerequisites, availability, and integration patterns.
Browse more docsStart Free Trial