# Planner

The Planner enables working with calendars, like scheduling a meeting or planning a callback appointment. The skill implements the Calendaring features of the DialoX platform. Developers could have a look [here](https://developer.dialox.ai/ref/planning/) for more details.

## Planning outcomes

The Planner skills can deliver the following type of outcomes

| Planner outcome | Description                                                                                                                               |
| --------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| **Event**       | An event is like any regular calendar event you would find in your Google or Microsoft calendars having  a date, start time and duration. |
| **Todo**        | A todo is modelled as a Note in the DialoX platform, but with a due date.                                                                 |

{% hint style="info" %}
When using todo's with external calendars, created apppointments may not show up in your external calendar. If you need them to show up there, **do not check** the "Create a note when an event is created".
{% endhint %}

## Determine availability

For the skill is able to support two different ways for determining which moments to allow to be scheduled. The availability of a certain moment in time can be determined according the following two strategies:

| Availability is based on… | Description                                                                                                                                                                                     |
| ------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Free/busy**             | Scheduling is based on free space in the calendar since there can only be one event on any given moment in time. Once planned, this moment in time is no longer available for planning.         |
| **Slots**                 | Scheduling is based on the predefined capacity for a certain moment in time, called a slot. This slot capacity depletes once all slots are planned causing this slot to be no longer available. |

## Planner configuration

The planner can be configured to either create events (by not creating notes) or by creating todo's (by creating notes).&#x20;

The planner will return availability based on either the free/busy or the slots strategy mentioned earlier.

Then there are two more settings.

* **Day limit**\
  This limits the amount of days a customer can plan ahead. E.g. for scheduling an appointment at a barbershop, we might want to have a much higher limit than for scheduling a callback appointment for pharmacies.&#x20;
* **Minutes from now**\
  This prevents users from scheduling appointments that take place shortly after making the appointment. E.g. for realtors you might need to prepare a lot for an appointment, so there should be at least 4 hours between now and the start of the appointment. For callback appointments of an ISP it might be much shorter.

## Conversation strategy options

This node allows for four different conversation strategies for eliciting the plan:

<table><thead><tr><th width="326">Strategy</th><th>Description</th></tr></thead><tbody><tr><td>directly suggest 1 option</td><td>The bot will directly propose the first available option to which the user only has to reply with yes or no. When answering no, the bot will propose the next available option.</td></tr><tr><td>directly suggest multiple options</td><td>The bot will directly propose a couple of options out of which the user can choose. The user can also ask for more options after which the bot will present the next couple of slots.</td></tr><tr><td>first ask before suggesting 1 option</td><td>The bot will ask for the user's preferred date and time first before proposing an option that comes closest to the user's preference. The user can then answer with either yes or no.</td></tr><tr><td>first ask before suggesting multiple options</td><td>The bot will ask for the user's preferred date and time first before proposing a couple of options that come close to the user's preference.</td></tr></tbody></table>

## Variables

In order to work with this data this skill is producing, the skill introduces the following variables to your Flow designer. They can be used to interpolate with your texts and questions in your Flow.

| Variable       | Description                                 | Example                   |
| -------------- | ------------------------------------------- | ------------------------- |
| Plan date      | Start date of the plan (friendly formatted) | Monday 5 January          |
| Plan ISO       | Start date and time in ISO format           | 2014-01-05T10:00:00Z      |
| Plan datetime  | Friendly formatted start date and time      | Monday 5 January at 10:00 |
| Plan day       | Name of the start date (relative)           | Tomorrow                  |
| Plan time      | Start time of the plan                      | 10:00                     |
| Plan until     | End time of the plan                        | 11:00                     |
| Plan until ISO | End date and time in ISO format             | 2014-01-05T11:00:00Z      |

You can also store the made appointment in a variable. This variable holds the entire planned appointment. This allows you to take a more custom approach on what to do with the result.&#x20;
