Calendar
Team appointments with a date and time: customer callbacks, technical visits, meetings, training sessions and presentations. Each appointment can start from a conversation, alerts the assignee in the panel and on WhatsApp, reminds the customer on WhatsApp at the chosen lead time and can be mirrored in the assignee's Google Calendar, with a Google Meet room.
What the Calendar is for
Much of what gets agreed on WhatsApp has a day and a time: "I'll get back to you tomorrow at 10 a.m.", "the technician will stop by Thursday afternoon", "let's schedule the presentation for Wednesday". The Calendar records these arrangements so nothing depends on the memory of whoever handled the conversation. At an internet service provider (ISP), the typical use is customer callbacks and field visits; in sales teams, meetings, training sessions and demos.
The screen is in the side menu, in the support section, under Calendar, with the subtitle Callbacks, visits, meetings and training sessions booked by the team, with alerts for the assignee and for the customer. Every logged-in user can open the screen and sees appointments according to the rules in Who sees and who edits.
| Piece | What it does |
|---|---|
| Appointment | Title, type, date and time (or all day), assignee, team, location, link, customer, other people, notes and alerts. |
| Type | Template for the appointment: color, default duration, default alerts, immediate confirmation and Meet room. The appointment can change all of it at booking time. |
| Assignee alerts | Card with sound in the panel and a message on the assignee's (or the team's) WhatsApp before the time. |
| Customer reminders | WhatsApp message to the customer and to the other people in the appointment, with the text defined in Settings. |
| Google mirror | Copy of the appointment in the assignee's Google Calendar, optional and per user. |
The Calendar screen
Summary cards
At the top, four cards summarize the situation. Clicking one of them switches the view to show exactly those appointments.
| Card | What it counts | On click |
|---|---|---|
| Today | Scheduled appointments that take place today. | Opens the Day view on today. |
| This week | Scheduled appointments from Monday to Sunday of the current week. | Opens the Week view. |
| Not completed | Appointments whose time has already ended and that nobody completed or canceled. | Opens the List starting 30 days ago. |
| My upcoming | Scheduled appointments from now on where you are the assignee. | Opens the List filtered by Mine. |
Views
The selector at the top of the calendar switches between Day, Week, Month and List. The choice is saved in the browser; on a phone, the screen opens in List by default. The Today, Previous and Next buttons move through time.
- Day and Week: time grid. All-day appointments appear in their own strip at the top. Click a free time slot to book an appointment already set to that time (clicking the lower half of the hour starts at the half hour).
- Month: monthly calendar. Click the empty space of a day to book an appointment at 09:00 on that day; when the day has more appointments than fit, a count indicator takes you to the day view.
- List: the appointments in the period, in order, with start and end times.
The sentence Select an available time to schedule an appointment. appears as a hint above the calendar. The count next to it shows how many appointments are in the displayed period.
Sidebar
- A mini calendar to jump to any date.
- The In this period block, with a short list of the displayed appointments (date, time, title and assignee).
- The Types block, with the color legend. Clicking a type filters the calendar by it.
Filters
| Filter | Options |
|---|---|
| Search appointment | Searches the title, the customer's name and phone number, the location and the notes. |
| Assignee | All, Mine or Unassigned. |
| Type | All types or a specific type. |
| Status | Not canceled (default: scheduled and completed), Scheduled, Completed or Cancelled. |
| Go to a date | Takes the calendar to the chosen date. |
When any filter is applied, the Clear filters button appears. The screen refreshes on its own every minute while it is visible.
In the grid, each appointment appears in its type's color. An appointment past its time without being completed gets the Past due, not completed mark.
Book an appointment
- Click New appointment at the top of the Calendar, or a free time slot in the calendar.
- Enter the Title and choose the Type. When you change the type, the duration, alerts, customer confirmation and Meet room take that type's defaults.
- Adjust Start, Duration or check All day.
- Choose the Assignee and, if applicable, the Team.
- Fill in customer, location, link and notes, review the alerts and click Save. The confirmation is Appointment booked.
Fields
| Field | What it does |
|---|---|
| Title | What the appointment is, up to 160 characters. Required. |
| Type | Category of the appointment, which brings color and defaults. |
| Assignee | Who takes care of the appointment, or Unassigned. The form starts with you. Users without the Manage the calendar permission can only book for themselves or leave it unassigned. |
| Start | Date and time, in 5-minute steps. With All day, it becomes a date only. |
| Duration | From 15 minutes to 8 hours in the list, plus the type's default duration. Disabled for all-day appointments. An appointment can last at most 30 days. |
| All day | Takes up the whole day, with no time. In the texts to the customer, the "at {hora}" part disappears on its own. |
| Team | Department of the appointment, or No team. When unassigned, the alerts go to the team, and team members can take over and edit it. |
| Location | Address or meeting point (up to 255 characters). It goes into the texts to the customer. |
| Link | Online meeting address (Meet, Teams, Zoom). It goes into the reminder sent to the customer. It must be a full address, starting with https:// (Invalid link: enter the full address, starting with https://). |
| Create a Google Meet room | Appears when the Google integration is available. See Google Meet room. |
| Customer | Customer name. |
| Customer WhatsApp | Number that receives the confirmation and the reminders. It is also through this number that the appointment shows up in that customer's conversations. An invalid number is rejected with Invalid WhatsApp number. |
| Other people | Other numbers that also receive the confirmation and the reminders (the customer's manager, their technicians). Enter name and number and click Add. Up to 20 people per appointment. |
| Notes | Internal details of the appointment, up to 5000 characters. |
| Alerts | The Alert the assignee and Remind the customer sections and the Send confirmation to the customer now switch, described in Alerts and reminders. |
Time in the past
Booking an appointment with a time that has already passed is not an error: it lets you record a visit that already happened. The system just asks for confirmation with The time entered has already passed. Book it anyway? Alerts whose time has already passed are not scheduled.
See the text before saving
The See the text the customer receives button shows, with the data in the form at that moment, how the confirmation and the reminder will look. When one of the texts is empty in Settings, the preview warns Empty text in Settings: sending to the customer is off.
Appointment from a conversation
The most common path is to book the appointment during the conversation with the customer.
- With the conversation open, click More actions (three dots) in the chat header and choose Book appointment. The option also exists in closed conversations, to book the callback after closing. Another path is the plus button in the Calendar block of the customer panel.
- The form opens with the Linked conversation card (protocol, name and phone) and with Customer and Customer WhatsApp already filled in from the conversation.
- Complete it and save.
With the link, the conversation starts recording what happens to the appointment, always as internal lines the customer does not see, as long as the conversation is not closed:
- Appointment booked: followed by the title, type, weekday, date and time;
- Appointment rescheduled: when the time changes;
- Appointment completed:, Appointment cancelled: and Appointment reopened:;
- Appointment confirmation sent to the customer and Appointment reminder sent to the customer, with the lead time or the name of whoever sent the manual reminder.
The conversation timeline also receives these events. In the appointment details, the Open the conversation button takes you back to the chat.
Calendar block in the customer panel
On the side of the conversation, the Calendar block lists that customer's appointments (looked up by WhatsApp number, with and without the ninth digit): upcoming ones first, then recently completed ones, with type and status. Click an item to open its details. With no appointments, the block shows No appointments booked with this customer. In the dedicated support mode, the Calendar tab of the side rail brings the full calendar without leaving the screen.
Alerts and reminders
Each appointment has two sets of lead times, chosen as chips in the form: Alert the assignee and Remind the customer. You can select several chips in each one. The available lead times are:
5 min 10 min 15 min 30 min 1 h 2 h 3 h 1 day 2 days 7 days
The initial values come from the type. Without a type, the assignee is alerted 15 minutes before and the customer gets no reminder.
Alert the assignee
Alert in the panel (with sound) and on the assignee's WhatsApp, with the chosen lead time. Without an assignee, the team is alerted.
- In the panel: a card appears in the corner of the screen with the title, type, time, lead time and customer, with the View (opens the appointment) and Link (when there is a meeting link) buttons. The Calendar reminder sound alert plays along with it. The card disappears on its own after 2 minutes and is not repeated in other tabs of the same browser. The panel checks reminders every 30 seconds, so the card appears for whoever has ChatISP open at that moment or in the following minutes.
- On WhatsApp: Calendar reminder: (title, type, customer, location and link) starts in (lead time). It applies to users with a verified WhatsApp and Receive WhatsApp alerts turned on in My account; for the team, users on a break are skipped.
- An appointment with no assignee and no team generates no assignee alert.
Besides the reminders, the assignee receives on WhatsApp Appointment booked for you: when someone books an appointment for them, and Appointment rescheduled to when the time of one of their appointments changes. Users who book for themselves do not receive their own notice.
Remind the customer
WhatsApp message to the customer and the other people, with the text set in Settings. Each selected lead time generates one message to the customer's WhatsApp and one to each person in Other people.
- If the appointment is linked to a conversation, the customer reminder goes out through it and stays in the history.
- Without a link, the reminder goes out through the most recent conversation with that number; if there is no conversation at all, it is sent as a standalone message from the provider's connected number.
- With the reminder text empty in Settings, no reminder is sent to the customer, and the form says so in place of the explanation.
Immediate confirmation
The Send confirmation to the customer now switch makes the customer (and the other people) receive, on save, the confirmation with date, time and details. It comes on for types that ask for confirmation and is disabled when the confirmation text is empty in Settings. When editing an appointment, turn the switch on again to resend the confirmation with the new data.
Manual reminder
In the details of a scheduled appointment that has a customer WhatsApp or other people, the Send reminder now button sends the reminder text right away. The system confirms with Reminder sent to (number) contact(s).
How alerts are scheduled
- The alert queue is rebuilt on every save: changing the time, assignee, lead times or people reschedules everything that has not been sent yet.
- Only alerts whose time is still in the future are scheduled.
- Completing or canceling the appointment deletes the pending alerts; reopening schedules them again.
- The system checks the queue continuously and marks each alert before sending, so the same alert is never sent twice.
The appointment details show the Alerts list, with target (Assignee or Customer), recipient, lead time, trigger time and status: Scheduled, Sent, Failed or Cancelled. Hover over the status of a failed alert to see the reason.
Texts sent to the customer
The confirmation and reminder texts are the same for the whole installation and are in Settings, Calls and calendar tab, Calendar card: Texts sent to the customer on WhatsApp when booking an appointment and before the time. Empty turns the sending off.
| Field | When it is sent |
|---|---|
| Confirmation on booking | Sent right away when the agent turns on "Send confirmation to the customer" in the appointment. |
| Reminder before the time | Sent at the lead times chosen in "Remind the customer" in the appointment (or the type default), and by the Send reminder now button. |
Variables
| Variable | Becomes |
|---|---|
{nome} | Customer name or, for other people, the name entered for each one. With no name, it becomes "customer". |
{titulo} | Appointment title. |
{tipo} | Type name. |
{data} | Weekday and date, for example "Wednesday, 09/16/2026". |
{hora} | Start time. In an all-day appointment, it disappears together with the "at" that comes before it. |
{responsavel} | Assignee name. |
{local} | Appointment location. |
{link} | Meeting link. |
{detalhes} | Ready-made sentence with "Location: ..." and "Join: ..." depending on what is filled in; empty when there is neither location nor link. |
Both texts come already written in a new installation. The factory text for the confirmation is:
Hi {nome}! We confirm your booking: {titulo}, on {data} at {hora}. {detalhes}We will send a reminder before the time. If you need to reschedule, just reply here.Hi {nome}! Just a reminder about our appointment: {titulo}, on {data} at {hora}. {detalhes}If you need to reschedule, just reply here.To turn off messages to the customer for good, delete the corresponding text and save. Alerts to the assignee keep working normally.
Appointment details
Click an appointment in any view to open its details. They show date, time and duration, type, status, customer and other people, location, link (with Copy link), notes, outcome, the alert list and, on the side, Assignee, Team, the Google Calendar status and the record data (Booked by, Booked on, Source, Completed on, Cancelled on).
The Source shows where the appointment came from: Conversation (booked from a conversation), Calendar (booked on the screen itself) or Assistant (booked by the Copilot).
Actions
| Action | What it does |
|---|---|
| Complete | Opens Complete appointment with the Outcome field (How did it go? The note stays in the appointment history.). Pending alerts no longer apply. |
| Edit | Reopens the form with all fields. Changing the time alerts the assignee and records the rescheduling in the linked conversation. |
| Send reminder now | Sends the reminder to the customer and the other people right away. |
| Cancel appointment | Asks for the reason (Reason for cancelling. Pending reminders will no longer be sent.) and removes the event from Google Calendar, if any. |
| Reopen | For a completed or canceled appointment, returns it to Scheduled and reschedules future alerts. |
| Delete | Deletes the appointment for good, together with its alerts and Google mirror (Delete this appointment for good? Alerts and the Google Calendar mirror are removed too.). Available to whoever booked the appointment and to users with Manage the calendar. |
Prefer completing or canceling over deleting. With the outcome recorded, the customer history shows what was agreed and how it ended.
Appointment types
Users with the Manage the calendar permission see the Appointment types button at the top of the Calendar. Each type carries a default duration, colour and alerts; the appointment can change all of it when booking. Changes are recorded in the system audit log.
| Field | What it does |
|---|---|
| Name and Description | Identification of the type (name up to 80 characters). |
| Default duration (min) | From 5 to 1440 minutes. |
| Colour | Color of the appointment in the calendar and in the legend. |
| Alert the assignee | Default lead times for the assignee alert. |
| Remind the customer | Default lead times for the customer reminder. |
| Confirmation to the customer on booking | Leaves the Send confirmation to the customer now switch on by default. |
| Create a Google Meet room | Appointments of this type start with a video room in the assignee's Google calendar (requires a connected account). |
| Order and Active | Position in the list and availability for new appointments. The first active type comes selected in the form. |
Deleting a type that already has appointments only makes it inactive (Type in use: set to inactive.), so older appointments remain readable.
Types that come preloaded
| Type | Duration | Alerts the assignee | Reminds the customer | Immediate confirmation |
|---|---|---|---|---|
| Meeting | 60 min | 15 min before | 1 h before | Yes |
| Customer callback | 15 min | 10 min before | No | No |
| Technical visit | 60 min | 30 min before | 1 day and 1 h before | Yes |
| Training | 90 min | 30 min before | 1 day and 1 h before | Yes |
| Presentation | 60 min | 15 min before | 1 day and 1 h before | Yes |
Meeting, Training and Presentation also come with the Google Meet room turned on.
Google Calendar
Each user can connect their own Google account so that appointments where they are the assignee also appear in their Google Calendar: Appointments where you are the assignee also show up in your Google Calendar (one way only: ChatISP is the source). The connection is optional and individual; users who do not connect keep using the Calendar normally.
Connect the account
- Open My account and find the Google Calendar card. The card only appears when the integration is available in your installation.
- Click Connect my Google account. A new tab opens on the Google authorization page, and the panel shows Waiting for the authorization in the Google account tab...
- Choose the account and authorize the ChatISP app to access the calendar.
- Back in the panel, Google account connected. Your upcoming appointments will be mirrored. appears and the card starts showing the account's email with the Account connected badge.
The authorization goes through the Ravi Systems central connector, which stores the Google credential; the installation keeps only the account link. If the authorization is canceled on Google, the panel warns Authorization canceled. Nothing was changed. When you connect, the scheduled appointments where you are the assignee are queued to be mirrored.
What is synchronized
The mirror works in one direction only: from ChatISP to Google. Changing or deleting the event directly in Google does not change the appointment in ChatISP.
| In ChatISP | In Google Calendar |
|---|---|
| Title | Event title. |
| Start and end (or all day) | Event time, in the system time zone. |
| Location | Event location. |
| Type, customer and phone, protocol, team, link and notes | Event description. |
| Lead times from Alert the assignee | Google's own notification reminders (up to 5). |
| Appointment rescheduled or edited | Event updated. |
| Appointment canceled or deleted | Event removed. |
| Assignee changed | The event leaves the previous assignee's calendar and goes into the new one's (if they have a connected account). |
In the appointment details, the Google Calendar field shows the status: Mirrored in the assignee's Google account, Waiting to mirror in Google Calendar, Failed to mirror in Google Calendar (with the reason) or Not mirrored (the assignee has not connected a Google account). A failure never prevents the appointment from being saved: the system retries the mirror on its own in the background.
Reconnect and disconnect
- If access expires or is revoked in the Google account, the card shows the warning Access to the Google account expired or was revoked: reconnect in My account. and the Reconnect button.
- Disconnect asks for confirmation: Disconnect the Google account? Events already created stay there; upcoming appointments will no longer be mirrored.
- When you reconnect the same account, the system recognizes the events it created before and reuses them, without duplicating.
Google Meet room
With the Create a Google Meet room switch on in the appointment, the event created in the assignee's Google Calendar starts with a Meet room, and the room address fills the Link field on its own: The room is created in the assignee's Google calendar on save and its address fills the Link field. Only applies while the link is empty.
- The room is created before the confirmation is sent to the customer and the alert to the assignee, so the link already goes out in those messages (through the
{link}or{detalhes}variable). - The assignee must have a connected Google account. If they do not, the form warns right away: The chosen assignee has not connected a Google account in My account: the room will not be created.
- If you type a link in the field, it takes precedence: no room is created.
- In the details, the link created by Google appears with the label Room created by Google Meet.
- Canceling the appointment, or deleting the event, invalidates the room; reopening the appointment creates a new room.
- If Google takes a while to return the room address, the system fetches it again on its own shortly after.
The switch only appears in the form when the Google integration is available in the installation.
Who sees and who edits
What a user can do in the Calendar depends on the Manage the calendar permission, granted in the access profile: Sees and edits the whole team's appointments, books for anyone and manages appointment types. Without it, the agent sees their own appointments, their team's and the unassigned ones.
| Action | Without the permission | With Manage the calendar |
|---|---|---|
| See appointments | Those where they are the assignee or that they booked, those of the teams they belong to, and those with no assignee and no team | All |
| Book for | Themselves or unassigned | Any active person |
| Edit, complete, cancel, reopen and send reminder | Those where they are the assignee or that they booked, and the unassigned ones of their team | All |
| Delete | Only those they booked | All |
| Manage types | No | Yes |
To book an appointment from a conversation, you must be able to see the conversation. The texts sent to the customer are edited in Settings, by users with the Settings permission.
Calendar through the Copilot
The Copilot looks up and operates the Calendar at the user's request: it lists appointments, books an appointment (including with a Google Meet room) and completes or cancels an appointment. Appointments booked by it show Assistant in Source. The AI that talks to customers does not book appointments on its own. See Copilot.
Common cases
Arrange a technical visit with the customer
- In the conversation, use More actions and Book appointment.
- Choose the Technical visit type, adjust the Start, choose the technician as Assignee (or leave it unassigned with the field service Team) and fill in the Location.
- Leave Send confirmation to the customer now on and save. The customer receives the confirmation right away, a reminder the day before and another one an hour before; the technician is alerted 30 minutes before.
- After the visit, the technician opens the appointment and uses Complete with the outcome.
The customer did not receive the reminder
- Check in the appointment's Alerts list whether the customer reminder was scheduled and what its status is. An alert whose time had already passed at save time is not scheduled.
- Check that the Reminder before the time text is not empty in Settings.
- Check the Customer WhatsApp and whether there is a connected provider number to send from.
- Failed status: hover over it to see the reason and use Send reminder now after fixing it.
The appointment did not show up in Google
- The mirror only goes to the Assignee's account; an unassigned appointment is not mirrored.
- Check the status in the Google Calendar field of the details. Waiting to mirror resolves on its own in moments; Failed with an expired access warning requires Reconnect in My account.