WorkingHours
Working hours on four levels — company, department, person, channel — each defining its own or inheriting (doc 67). One resolver decides which hours apply to whom; every GET returns both what the level itself stored and the effective hours with their source.
Get the tenant's working-hours choices
Choices ABOUT hours that are not hours themselves. Readable by any staff
Update the tenant's working-hours choices
Requires the `manage-company-settings` ability.
Company hours — own and effective
The company level. Until a company row is written, the legacy
Replace the company hours
Wholesale. `timezone` here sets the TENANT timezone (company settings),
Clear the company hours
The tenant goes back to 'no hours configured': every gate reads open
A department's hours — own and effective
Readable by anyone who may view the department.
Replace a department's own hours
Same permission as editing the department (`departments.manage`).
Make a department inherit the company hours again
Make a department inherit the company hours again
A member's hours — own and effective
Readable by a member manager (`members.manage`) and by the member
Replace a member's own hours
A member manager (`members.manage`), or the member themself when they
Make a member inherit their department / company hours again
Make a member inherit their department / company hours again
A channel's hours — own and effective
A channel without its own hours works its single owner's hours, else
Replace a channel's own hours
Same permission as editing the channel.
Make a channel inherit again
Make a channel inherit again
The hours a conversation's customer is subject to
The channel's own hours when it has them; else the department routing
My own effective hours
The signed-in member's hours (mobile shows them read-only). `can_edit`