Account admins and owners can set a schedule for your Zendesk Support instance by selecting a time zone, defining business hours, and setting up holidays.
If you don't provide 24/7 support to your customers, you can acknowledge your availability and give customers a better sense of when they can expect a personal response to their support requests. Even if you do provide 24/7 support, you can enhance your workflow by setting up views, triggers, automations, and reports based on your business hours set in your schedule.
Zendesk Support schedules do not apply to Chat operating hours. See Creating a schedule with operating hours.
Watch the video below to learn how schedules can impact customer experience and team reporting.
Setting a schedule for Zendesk Support
Your schedule includes a time zone and specific business hours each day in a weekly schedule for Zendesk Support.
You can also set up holidays as exceptions to the business hours set in your schedule. You can add as many holidays as you like, and they will be treated as outside of business hours and not count toward any metrics you measure in business hours.
After you set a schedule, you can create business rules based on the business hours in your schedule. You can also use business hours in reporting.
-
In Admin Center, click
Objects and rules in the sidebar, then select Business rules > Schedules.
- Click Add schedule to create a new schedule. Or, click an existing schedule to modify it.
- On the schedules page, enter a Schedule name and
choose a Time zone.
- In the Weekly schedule section, keep the preset
business hours or modify them.
- Each business interval must be at least 1 hour long. You can extend your business hours in 15 minute increments.
- You can adjust the interval start time in 15 minute increments.
- A schedule interval can't overlap a date boundary. If your business hours span midnight, you must define this as two separate intervals, divided by calendar day.
- To move a block of time, drag the time block up or down on that day.
- To change the start or end time, drag the top or bottom of the time block.
- To remove hours from a day, click the X in the upper-right corner of the time block. The day displays Closed.
- To add hours to a closed day, click anywhere on the closed day. A time block appears where you clicked.
The hours you set are relative to the time zone set for your Zendesk account (unless you are on an Enterprise plan, and you selected another time zone for your schedule). See Setting the time zone and format for Zendesk Support.
Note: If you need to define shorter business hour intervals or more flexible start times, you can use the Schedules API. - When you are finished, click Save.
- If you want to set any holidays as exceptions to your
scheduled business hours, select Holidays
and then click Add holiday.
You can schedule holidays up to two years in advance.
- Enter a Name for the holiday, then click in the
first date field to pick a start date and click in
the second date field to pick an end date.
You can choose a single day (by picking the same start and end date) or a date range (by picking different start and end dates). You cannot set a partial day holiday.
- Click Confirm. You can add multiple holidays by
clicking Add holiday again.
The holidays you add appear in your list of holidays in chronological order.
- Click Save.
- (Enterprise plans only) Click the back arrow to return
to the Schedules admin page, then click
Add schedule if you want to set multiple
schedules.Note: If you set up multiple schedules, the first schedule in the list is your default schedule and applies to all tickets. You can create triggers to apply different schedules to tickets (see Applying your schedules to tickets).Now you can use business hours in business rules, reports, Talk, and Liquid markup:
- For more information about business rules and reporting based on business hours, see Creating business rules based on business hours and Reporting based on business hours.
- For information on assigning Zendesk Support schedules to individual Talk numbers, see Using multiple schedules for Talk. Talk numbers with a Zendesk Support schedule will only route calls during Zendesk Support scheduled business hours.
Tip: If you added holidays, be sure to check out Liz Rosen's community tip, Holiday auto-responses made easy.
Deleting a schedule
You can delete your schedule if needed. When you do so, it's immediately removed and your account uses calendar hours instead. This applies to all of your tickets.
To delete a schedule
- In Admin Center, click
Objects and rules in the sidebar, then select Business rules > Schedules.
- Hover over the schedule you want to delete.
- From the schedule options menu, click Delete.
Managing your holidays
Your scheduled holidays appear in chronological order in your holidays list. You can click any holiday to expand it and show details or to collapse it and hide details.
Your upcoming holidays are shown by default, but you can filter by past holidays. You can edit or delete, any upcoming holidays.
- In Admin Center, click
Objects and rules in the sidebar, then select Business rules > Schedules.
- (Enterprise plans only) Click the name of a schedule on the Schedules admin page.
- Click the Holidays tab.
- From the list of schedules, hover over the schedule you want to edit.
- From the holiday options menu, click Edit.
- Make any changes you need.
- When you are finished, click Confirm.
- In the Holidays tab of your schedule, click the options menu beside the holiday you want to delete, then select Delete.
- Click Delete holiday to confirm the deletion.
The holiday is removed from your list of holidays.
Applying your schedules to tickets (Enterprise plans only)
If you're on an Enterprise plan and create multiple schedules, the first schedule in the list is your default schedule and is used for all tickets. You can create triggers to apply different schedules to tickets.
You need to create a trigger for each schedule you want to use for your tickets.
- In Admin Center, click
Objects and rules in the sidebar, then select Business rules > Triggers.
- Click Add trigger.
- On the Add new trigger page, enter a name and optional description for your trigger.
- Add conditions for your trigger.
The conditions will determine which tickets get the schedule you set in the next step. For example, you might chose the condition ticket group is to set a schedule for a specific group. Or you might decide to set the schedule based on the ticket's brand or status. It's up to you.
- Add the action Ticket: Set schedule, then select one of your schedules from the dropdown
list.
- Click Create.
If you need to find out which schedule is applied to a ticket, you can view that ticket's events (see Viewing a ticket's audit trail).
Creating business rules based on business hours and holidays
You can create views, SLA policies, triggers, and automations based on your business hours. You can create triggers based on holidays.
Any views, triggers, or automations based on business hours also take scheduled holidays into account, and consider them as outside of your business hours, unless you have set up a holidays trigger.
You can also use the Liquid placeholder for business hours in macros, triggers, and automations.
ticket.in_business_hours
For information see Using Liquid markup.Views based on business hours
You can create views based on business hours by using any of the "Hours since" conditions:
-
Hours since created
-
Hours since open
-
Hours since pending
-
Hours since on-hold
-
Hours since solved
-
Hours since closed
-
Hours since assigned
-
Hours since update
-
Hours since requester update
-
Hours since assignee update
-
Hours since due date (for tickets with the type set to Task)
-
Hours until due date (for tickets with the type set to Task)
-
Hours since last SLA breach
-
Hours until next SLA breach
Then, select one of the "(business)" options to calculate time based on your business hours.
If you are on an Enterprise plan and have multiple schedules, views based on business hours will use the schedule applied to the ticket.
For information about creating views, see Using views to manage ticket workflow.
Triggers based on business hours
You can create triggers based on business hours using the "Ticket: Within business hours" condition.
This enables you to build triggers that fire based on whether an event occurs during business hours or outside of business hours. For example, you might create a trigger to escalate a ticket filed by a VIP customer outside of business hours.
If you are on an Enterprise plan and have multiple schedules, triggers based on business hours will use the schedule applied to the ticket.
For information about creating triggers, see Creating triggers for automatic ticket updates and notifications.
Automations based on business hours
You can create automations based on business hours by using any of the "Hours since" conditions:
-
Hours since created
-
Hours since open
-
Hours since pending
-
Hours since on-hold
-
Hours since solved
-
Hours since closed
-
Hours since assigned
-
Hours since update
-
Hours since requester update
-
Hours since assignee update
-
Hours since due date (for tickets with the type set to Task)
-
Hours until due date (for tickets with the type set to Task)
-
Hours since last SLA breach
-
Hours until next SLA breach
Then, select one of the "(business)" options to calculate time based on your business hours.
If you are on an Enterprise plan and have multiple schedules, automations based on business hours will use the schedule applied to the ticket.
For information about creating automations, see Streamlining workflows with time-based events and automations.
Triggers based on holidays
You can create triggers based on holidays using the "Ticket: On a holiday?" condition. This enables you to build triggers that fire based on whether an event occurs during a holiday.
This condition is set to yes for the full day of the holiday, not just during your normal business hours that day. For example, if you have a Monday holiday and your normal business hours on Mondays are 9am to 5pm, the holiday is considered the full calendar day, including hours outside of your normal hours, such as 10pm.
If you are on an Enterprise plan and have multiple schedules, this condition respects the list of holidays set in the schedule applied to the ticket.
Creating triggers based on multiple schedule (Enterprise plans only)
If you are on an Enterprise plan and have created multiple schedules, you can create triggers based on multiple schedules.
Use the "Ticket: Schedule" condition to build triggers that fire based on the schedule applied to a ticket.
Use "Ticket: Within schedule" condition to build triggers that fire based on a selected schedule.
You can use the "Ticket: Set schedule" action to apply a schedule to a ticket. For more information, see Applying your schedules to tickets.
Reporting based on business hours
You can use Zendesk Explore to build reports based on business hours set in your schedule.
If you are on an Enterprise plan and have set up multiple schedules, reports based on business hours use the schedule that is set for the ticket (see Applying a schedule to your tickets). To find out which schedule is applied to a ticket, you can view that ticket's events (see Viewing a ticket's audit trail).
You can build reports based on business hours using any of the following Explore metrics:
- First reply time - Business hours - The duration between when the ticket was created and the first public agent reply on the ticket within business hours.
- First resolution time - Business hours - The duration between when the ticket was created and its first resolution within business hours.
- Full resolution time - Business hours - The duration in minutes between when the ticket was created and its latest resolution within business hours.
- Requester wait time - Business hours - The number of minutes a ticket spends in the New, Open, or On-hold status during business hours. This number is only measured after a ticket's status is changed from New/Open/On-hold to Pending/Solved/Closed
- On-hold time - Business hours - The total combined time in minutes that the ticket was in the on-hold status during business hours.
- Agent wait time - Business hours - The total combined time that the ticket was in the pending status within business hours. It measures how long agents were waiting for the customer replies within business hours.
For information about Explore see Zendesk Explore resources.
111 comments
Brandon (729)
Hi Rebecca Katz,
It sounds like maybe you don't have a Trigger associating that business schedule with the ticket. The conditions here would be
Ticket is Created
Status Less Than Solved
Action
Schedule is Support Schedule
As long as this Trigger runs above / before your Notification Trigger, those conditions should be met and the Trigger should run.
Brandon
0
Gui
Hi all,
How can I set a schedule for a particular ticket via webhook?
I couldn't find any reference on the following links:
https://developer.zendesk.com/api-reference/ticketing/tickets/tickets/#json-format
https://developer.zendesk.com/api-reference/ticketing/ticket-management/schedules/#json-format
My use case is to use 1 webhook with some logic instead of having to do using multiple Triggers.
Regards,
Gui
3
Dave Dezellem
Hello,
We added a second schedule and now the triggers we had in place, as well as the new ones we created for after-hours as well as for holidays are not working.
I've reread the articles on setting up the schedules as well as the triggers and I can't figure out why they will not fire. I've played with adding and removing conditions without any luck. I'm attaching images of the trigger as well as the schedule.
Any ideas why this will not fire? Thanks for any help

0
Brandon (729)
Hi Dave Dezellem
Try dropping the within schedule condition - since by definition both of these triggers are looking for tickets that are created not within the scheduled hours. Everything else looks right.
Brandon
0
Dave Dezellem
Hi Brandon,
Thanks for the suggestion. I had tried with and without that condition and still can't get the trigger to run. I've attached the weekly and holiday schedules. I moved back the start time for today to try and get the trigger to go, and also moved the start date for the holiday back a day without any luck.
Any other ideas of what I can look at? Thanks again
Dave Dezellem

0
Brandon (729)
Dave Dezellem
Thanks for the clarification. If you have more than one schedule defined, you will need a separate Trigger that associates this schedule with the ticket. Additionally, since Triggers run in order from top to bottom, the Trigger that sets the schedule would need to be above this one.
Brandon
0
Dave Dezellem
Hi Brandon,
What we have is a consumer team and a dealer team. Each has its own weekly and holiday schedule set up. I also have triggers set for both, one each for the weekly schedule and one each for the holiday schedule. I tried moving the position of the Dealer triggers without success. I've attached a screenshot of the current trigger order.
Thanks, appreciate the help
Dave
0
Brandon (729)
Hey Dave,
I think at this point we may need to spin this up into a ticket to have a member of the Zendesk Support Team get under the hood. I'll have someone from the Community Team open a ticket on your behalf. Best of luck in figuring this out!
Brandon
0
Gustavo Oliveira
Let's address this over the private ticket you've created.
Best regards,
0
Omar
I want to create a schedule in which, the reporting, in which the filter down to only one agent is applied.
E.g. a report/dashboard with all the metrics (requester wait time etc.) is filtered down to one name, 'Tom' (assignee) and then that is sent out as a schedule weekly only to that one person 'Tom'
So everyone doesn't see all the other assignee metrics, but they see just theirs in the schedule that has been sent out
0
Alex Zheng
If you are looking for something like a current user variable then this is currently not available but it is in development as described in this post. I would recommend you comment and follow to stay up to update on that post as it looks like it is set to be released this year based on the latest comment.
Best regards,
0
Jacqui T
Hi,
Is there a way to apply a schedule using the API?
Thanks.
1
Dave Dyson
I don't think there's a way to set the schedule via the API -- instead, you could use the API to set a tag on the ticket, and the create a trigger to detect that tag and set the schedule accordingly (and then remove the tag).
0
Ronit Gieske
Business hours by Group should be made available for the Professional Plan - Messaging. It is available for Chat and should be for Messaging as well. Different teams operate during different hours and Zendesk should accommodate for that.
Any plans to allow for varying business hours on the professional plan?
1
Dave Symonds
If we have agents that work varied times and days I assume we can cover this by creating a different schedule to cover each variation?
If there is no schedule then I assume BH values are based on a 24hr Business day
0
vincent solitario
Hello
Is this possible in trigger or automation?
What we wanted to happen is this.
Agent last reply> after 5 minutes (customer no feedback/reply) sent a message for follow > after 10 minutes (customer no feedback/reply) > sent a message to close the ticket then the ticket is automatic solved
automation or trigger after agent replies
0
Matt Goodall
Hi,
We have multiple schedules set up currently which can be applied to different tickets for the same group. Is there a way that I can report out which Schedule has been applied to the ticket? I've looked through the standard attributes and can't see the Schedule as an option but am not sure if I've missed something.
If not, I guess the only way to report which schedule is applied would be to add a tag in the trigger that sets the schedule?
Thanks
0
Ben Lebeau
When setting a holiday does it play the normal outside business hours reply? Can we set it so that all lines using that schedule will play a designated holiday message so we don't have to go in and change every one manually?
0
Brandon (729)
Hi Ben Lebeau -
That is correct. When 'in a holiday' the standard 'Outside of Business Hours Voicemail" will play. Unfortunately right now it is a manual lift to modify the greetings, but I'm working on a side project to address this issue (as I am also frustrated by the need to change these things manually).
Brandon
0
Christophe De Clercq (June)
Should the explore metrics based on business hours immediately be adjusted after updating a schedule? Or does it take a while to recalculate for past tickets?
0
Brandon (729)
Hey Christophe De Clercq (June) -
Explore data is delayed by an hour. That being said (and I haven't tested this), my gut tells me that recalculation will only occur for tickets that are still open. Once a ticket is closed the parameters are locked, and I believe this would include the posted business hours at the time the ticket was closed. This is my hunch because a) for long-term accounts it would be a herculean lift to update all of the historical data every time a condition is changed, b) schedules can be outright deleted and replaced and, most importantly c) safeguards are put in place to ensure bad actors aren't 'rewriting history' by temporarily increasing SLA hours or expanding hours of operation to artificially inflate the metrics.
If there is a strong need to recalculate these numbers, you could always pull historical data on timestamps from the update history dataset (time created, first reply time, etc.) and then calculate achievement by manually adjusting for the new business hours. Hope this helps!
0
Christophe De Clercq (June)
Thank you Brandon (729), that was helpful and makes sense. I guess there is no way to recalculate the metric for historical data 'on demand' ?
0
Gab Guinto
That's right, just as what Brandon explained above, there's no option to recalculate the metrics on demand.
If you need to recalculate the values of metrics on past tickets, then the recommendation provided by Brandon above is maybe the easiest workaround.
0
Angel Studios
Really hoping to see the option to set Holidays to start at specific times vs just dates. Was hoping to set everything up so we could have a specific message go out tonight that our team is out for the next week but I am unable to do it automatically. Our team ends at 8pm and I wouldn't be able to schedule it until tomorrow.
Unless someone has a work around that I can't think of. I have to turn the specific triggers on and off at certain times due to not being able to narrow down to the business hours & holiday.
0
Gab Guinto
I'm afraid this is not something that can be configured at this time. In your case, the only way to have an automated reply sent back to the user notifying them that the team will be out the following week is to manually activate the notification trigger when the business hours end at 8pm, and keep that same trigger active until your team is back online.
0
Jake Mahon
Hi - great article. We have triggers set up to set schedules for certain brands. However, we're having trouble testing because we can't see a way to determine what schedule a particular ticket has. How can you tell what schedule is applied to a ticket?
0
Brandon (729)
Jake Mahon - If a schedule is set - it will be visible in the ticket event logs.
As a more visible tracking method, you could have the Trigger that sets the schedule add a tag "x_schedule."
Hope this helps!
0
Jeremy
Any plans to allow customers on professional to have multiple schedules? It's incredibly difficult to have multiple brands and multiple channels and only have a single schedule. I really wish messaging/flow builder didn't use the same business hours as SLA/triggers.
2
A A
What's the purpose of having up to 5 brands if you can have only one schedule for non-enterprise plans?
0
Brandon (729)
Hello A A!
In our experience, we find oftentimes the brand feature is used primarily to delineate between content of different brands but that the agents that support those brands all work the same office hours.
That said, I know Zendesk is always listening to their users, and I would encourage you to cross-post your thoughts and use case under Feedback - Ticketing System (Support).
For non-enterprise clients that have multiple brands across time-zones, we generally recommend setting your business hours to cover the earliest availability of the first brand through the latest availability of the last brand, and then leveraging group routing and utilizing Unified Agent Status and Omni Channel Routing to help get customers to the right teams.
Hope this helps!
Brandon
0