Manage contact center schedules and integrate with NICE CXone Studio
The Calendar API is a powerful tool for managing your contact center's business hours and holidays. By centralizing schedule management, you can ensure consistent handling of business hours across all your customer touchpoints. The API integrates seamlessly with NICE CXone Studio, allowing you to automate schedule-based routing and messaging without manual updates.
Whether you need to set regular operating hours, manage seasonal schedules, or handle unexpected closures, our Calendar API provides a simple yet flexible solution for contact centers of all sizes.
Define regular operating hours for each day of the week with support for multiple time ranges per day. Set different schedules for different departments or service lines.
Create and manage holidays, special events, and temporary closures. Choose from a pre-populated list of common holidays or add custom dates specific to your business.
Check current open/closed status in real-time with a simple API call. Get time remaining until next status change, upcoming holidays, and detailed schedule information.
Integrate directly with NICE CXone Studio to automate call routing based on business hours. Automatically route calls to after-hours messaging or alternate queues when outside operating hours.
Import business hours and holidays from external calendar systems like Google Calendar, Outlook, or iCal feeds. Export your schedule to standard calendar formats for sharing with other systems.
Manage different schedules for multiple locations or departments. Support for different time zones and region-specific holidays across your global operations.
Follow these steps to set up and use the Calendar API:
Set up your business schedule:
Create an API key to access your calendar data:
Connect your calendar to NICE CXone Studio:
Verify and maintain your integration:
GET /api/calendar/status/{your-uri}
Returns the current status of your business hours:
{ "isOpen": true, "currentTime": "2023-06-30T14:25:30-04:00", "nextStatusChange": "2023-06-30T17:00:00-04:00", "nextStatus": "closed", "timeRemaining": { "hours": 2, "minutes": 34, "seconds": 30 }, "timezone": "America/New_York", "holidayToday": false }
GET /api/calendar/holidays/{your-uri}
Returns upcoming holidays and special events:
{ "holidays": [ { "name": "Independence Day", "date": "2023-07-04", "isFullDay": true }, { "name": "Company Event", "date": "2023-07-15", "isFullDay": false, "hours": { "closed": [ { "start": "13:00:00", "end": "17:00:00" } ] } } ], "upcomingCount": 2, "nextHoliday": { "name": "Independence Day", "date": "2023-07-04", "daysUntil": 4 } }
GET /api/calendar/schedule/{your-uri}
Returns your full business hour schedule:
{ "schedule": { "monday": [ { "open": "09:00:00", "close": "17:00:00" } ], "tuesday": [ { "open": "09:00:00", "close": "17:00:00" } ], "wednesday": [ { "open": "09:00:00", "close": "17:00:00" } ], "thursday": [ { "open": "09:00:00", "close": "17:00:00" } ], "friday": [ { "open": "09:00:00", "close": "16:00:00" } ], "saturday": [], "sunday": [] }, "timezone": "America/New_York", "effectiveDate": "2023-06-01" }
Scenario: Automatically route calls to voicemail or an after-hours message when your contact center is closed.
// Studio code example (pseudocode) var response = WebServices.Call("GET", "https://cxtools.xyz/api/calendar/status/your-company") var isOpen = response.isOpen if (isOpen) { // Route to normal queue RouteCall("main-queue") } else { // Get time until opening var nextStatus = response.nextStatus var timeRemaining = response.timeRemaining if (nextStatus == "open") { // Play closed message with time until opening PlayPrompt("We're currently closed. We will open in " + timeRemaining.hours + " hours and " + timeRemaining.minutes + " minutes.") } else { // Play general closed message PlayPrompt("We're currently closed. Please call back during regular business hours.") } // Route to voicemail RouteCall("voicemail") }
Scenario: Inform customers about upcoming holidays or special hours before they reach an agent.
// Studio code example (pseudocode) var response = WebServices.Call("GET", "https://cxtools.xyz/api/calendar/holidays/your-company") var hasUpcoming = (response.upcomingCount > 0) if (hasUpcoming && response.nextHoliday.daysUntil < 7) { // Announce upcoming holiday PlayPrompt("Please note that we will be closed on " + response.nextHoliday.date + " for " + response.nextHoliday.name) } // Continue with regular call flow ContinueCallFlow()
Optimizing your Calendar API implementation:
Tips for effective calendar maintenance:
Best practices for NICE CXone Integration:
Pro tips for complex implementations:
Calendar data is updated in real-time. Any changes you make to your business hours or holidays are immediately reflected in API responses. There is no delay or caching on our end, ensuring that your IVR systems always have the most up-to-date information about your operating hours.
Yes, Pro users can create separate calendars for different locations, departments, or service lines. Each calendar gets its own API endpoint and can have unique business hours, holidays, and settings. This allows you to route calls differently based on which location or department the caller is trying to reach.
While our API maintains 99.9% uptime, we recommend implementing fallback logic in your Studio scripts. If the API call fails, your script can default to a specific behavior (such as routing to live agents during expected business hours). Pro users can also set up redundant endpoints and notification alerts for any API disruptions.
Yes, our Calendar API supports importing holidays and business hours from external calendar systems including Google Calendar, Microsoft Outlook/365, and any system that provides iCal format exports. Pro users can configure automatic syncing to keep calendars updated from corporate scheduling systems.
Explore other tools for enhancing your NICE CXone Studio implementation.
Learn how to manage API keys for secure access to CX Tools services.
Integrate calendar status checks into your AI-generated IVR flows.
Convert calendar data between different formats for integration with other systems.