AI

This feature provides an AI agent for the Scheduler and SchedulerPro. It provides a chat panel that allows the user to send messages to the agent and see the responses. Which allows the user to use natural language to interact with the Scheduler in different ways. For example, the user can ask the agent to filter the data, sort it, or select specific records. The agent can also perform data manipulation operations such as adding, updating, deleting records.

To use this feature, you need to provide a promptUrl to which the agent will send the prompts. On the other end of this URL, there should be a service that adds credentials to the request and forwards the prompt to the LLM API of your choice.

You also need to configure a apiPlugin which ensures the prompt format matches the API you are using.

new Scheduler({
  features : {
     ai : {
        promptUrl : '/ai/prompt',
        apiPlugin : OpenAIPlugin,
     }
  }
})

This is the minimum configuration required to get started, but you may also want to configure the following:

  • model - Adds a model property to the prompt sent to the LLM API which is often required
  • chatButton - Change the appearance of the chat button and the chat panel
  • tools - Add custom tools to the agent's tool list, or remove existing unwanted tools
  • userSettings - Provide the current user's settings
  • userSettingsUpdate - To listen for changes to the user's settings and save them

And for voice input/output, check out:

But these are not all configurations available. Check out the demo linked in the right panel for a full configuration example. And make sure to read this documentation to learn more about all available configurations.

This feature is disabled by default

Configs

40

Common

disabledInstancePlugin
listenersEvents

Other

defaultRange: String= timeline

The date range to use for agent "conditions", when the user doesn't specify a given date range in the prompt. Available options are:

  • timeline - Use the current timeline date range
  • in-view - Use the current visible date range (scrolled in view)
  • all - Use the entire date range of the Scheduler

A configuration object containing the user's preferred AI feature settings. If there is a matching AI feature class config, the user setting will take precedence JSON.

tools: Object<String, AIToolConfig>

Use this to add custom tools to the AI model's tool list or to remove existing tools. Provide an object with the tool names as keys and configuration objects as values. Please note that modifying existing tools is not supported, only removing them.

Specific tools for Scheduler AI are:

  • getEvents - Used by agent to retrieve events from the store
  • updateEvents - Updates events in the store
  • deleteEvents - Deletes events from the store
  • addEvent - Add a new event to the store
  • filterEvents - Filters the EventStore
  • unfilterEvents - Removes all filters from the EventStore
  • selectEvents - Selects events in the timeline
  • highlightEvents - Highlights events in the timeline
  • unhighlightAll - Unhighlights all events in the timeline
  • copyEvents - Copies events to a new resource and/or date
  • assignEvents - Assigns events to new resources
  • unassignEvents - Unassigns events from resources. Only available if singleAssignment is false
  • changeTimeSpan - Changes the time span of the timeline
  • showCurrentTimeLine - Shows or hides the current time-line, requires the
  • scrollToDate - Scrolls the timeline to a specific date TimeRanges feature
  • getNextAvailableSlot - Returns the next available slot for certain resources and date settings
  • reloadScheduler - Reloads data. Only available if the Scheduler can be reloaded
  • reloadSchedulerPro - Reloads data. Only available if the SchedulerPro can be reloaded

Most tools from the Grid are also available. But those tools that are related to the Grid rows or records will in Scheduler and SchedulerPro be named according to the ResourceModel's $name property, or Resource if that is not defined.

Also, the tools from tools are available

Tool names will change according to your Scheduler's EventModel's $name property. For example, if your EventModel is named Meeting, the tool names will be getMeetings, updateMeetings, etc.

apiPluginAIBase
debugModeAIBase
modelAIBase
modelsAIBase
promptUrlAIBase
redoAIBase
timeoutAIBase
undoAIBase
voiceOnlyAIBase

Misc

clientInstancePlugin
localeClassLocalizable
localizableLocalizable

Properties

16

Common

disabledInstancePlugin

Class hierarchy

isAI: Boolean= truereadonly
Identifies an object as an instance of AI class, or subclass thereof.
isAI: Boolean= truereadonlystatic
Identifies an object as an instance of AI class, or subclass thereof.
isAIBaseAIBase
isEventsEvents
isInstancePluginInstancePlugin
isLocalizableLocalizable

Lifecycle

configBase

Misc

clientInstancePlugin
localeHelperLocalizable
localeManagerLocalizable

Other

Functions

28

Configuration

applyDefaultsstaticBase

Events

Lifecycle

destroystaticBase

Misc

doDisableInstancePlugin
initClassstaticBase
isOfTypeNamestaticBase
mixinstaticBase
optionalLstaticLocalizable

Other

LstaticLocalizable
onEvents
relayAllEvents
triggerEvents
unEvents

Events

6
catchAllEvents
destroyEvents
disableInstancePlugin
enableInstancePlugin

Event handlers

6
onDestroyEvents
onDisableInstancePlugin
onEnableInstancePlugin

Typedefs

7