Skip to content

working_hours.updated

POST

The main location’s weekly opening hours change. Sent to the account’s webhooks, and to an OAuth app that subscribes to it while its installation grants account:read.

X-Talki-Signature
required
string

t=<unix seconds>,v1=<hex HMAC-SHA256>, the HMAC computed over <t>.<raw body> with the signing secret. During a secret rotation it carries one v1 per secret: accept the request if any matches.

X-Talki-Event
required
string

The event type, as in type.

X-Talki-Delivery
required
string

The event ID, as in id.

Media typeapplication/json
object
id
required
Id

The event’s ID, evt_ and 32 hex characters. Equal to the X-Talki-Delivery header and unchanged on a redelivery: deduplicate on it.

string
type
required
string
Allowed values: working_hours.updated
created_at
required
Created At

When the event was written, ISO 8601 with a +00:00 offset, possibly with microseconds. Parse it as an instant.

string format: date-time
api_version
required
Api Version

The dated contract version data is shaped for: the endpoint’s version on a webhook, the app’s on an app event.

string
account_id
required
Account Id

The Talki account the event happened on.

string
livemode
required
Livemode

false for an event from a sandbox account.

boolean
origin
required
Any of:
EventOrigin
object
source
required
Source

Where the change came from: voice (the assistant, during a call), dashboard (a person in the Talki web or mobile app), api (a credential through the API) or system (a rule Talki applied on its own). New values may be added; treat one you do not recognise as unknown.

string
credential_id
required
Any of:
string
idempotency_key
required
Any of:
string
installation_id
Any of:
string
data
required

The event’s payload.

object
object
required

The WorkingHours object, as the REST API returns it.

object
location_id
required
Location Id

The location these are the hours of, an id from GET /v1/locations: the one the request named with location_id, or the main location when it named none.

string
slots
required
Slots

Every weekly opening. A day with a lunch break has two slots. An empty list means the business has no regular opening hours, so the assistant offers callers no regular time to book.

Array<object>
WorkingHoursSlot

One weekly opening: a time range, in the account’s timezone, on one or more weekdays.

object
days
required
Days

Weekdays this range applies to, as ISO weekday numbers: 1 is Monday, 7 is Sunday.

Array<integer>
>= 1 items <= 7 items
start
required
Start

Opening time, HH:MM in the account’s timezone.

string
/^([01]\d|2[0-3]):[0-5]\d$/
end
required
End

Closing time, HH:MM in the account’s timezone. Must be after start: a range cannot cross midnight, so split one that does into two slots on consecutive days.

string
/^([01]\d|2[0-3]):[0-5]\d$/
Example
{
"id": "evt_04d8e87897db4ecab459a456ea55e754",
"type": "working_hours.updated",
"created_at": "2026-09-22T15:04:06.218734+00:00",
"api_version": "2026-10-01",
"account_id": "f7e39b9a-1ac8-45e4-93da-2600f17cb286",
"livemode": true,
"origin": {
"source": "dashboard",
"credential_id": null,
"idempotency_key": null
},
"data": {
"object": {
"location_id": "0b7d4e19-8a2c-4f61-9d3e-5c1a7b2f8e40",
"slots": [
{
"days": [
2,
3,
4,
5
],
"start": "09:00",
"end": "13:00"
},
{
"days": [
2,
3,
4,
5
],
"start": "14:30",
"end": "19:00"
},
{
"days": [
6
],
"start": "09:00",
"end": "17:00"
}
]
}
}
}

Any 2xx acknowledges the event. Any other status, a redirect, or no answer within 10 seconds is a failure and is retried; 410 disables a webhook endpoint at once.