Sidebar

Combodo

iTop Extensions

Calendar invitations

name:
Calendar invitations
description:
Send a meeting request as an attachment of a mail notification
version:
1.1.0
release:
2024-08-07
itop-version-min:
2.7.0
code:
itop-icalendar-action
state:
stable
diffusion:
Client Store, iTop Hub
php-version-max:
PHP 8.3

This extension provides a new type of “Action” which can be associated with any trigger: Calendar Invitation

Features

  • Allow to send a calendar invitation (also known as meeting request) related to a Ticket or a Work Order.
  • For eg. this allow to book the slot in the email calendar of the agent, from the start date to the end date of a Work Order.
  • Later if the Ticket is modified,
    • The calendar invitation is updated with new dates and/or description
    • New people are automatically included in the invitation, as soon as additional contacts are added to the ticket
    • People primarily invited which are no more linked to the ticket, receive an invitation cancellation.
    • It is even possible to delete completely the calendar invitation from all recipients, for example if the Work Order was deleted or cancelled.
  • If no end date is provided, the default meeting duration is 1 hour.
  • Recipients are defined by an OQL query with placeholders as for any emails notification.

Revision history

Date Version Description
2024-08-07 1.1.0 Version included in Professional 3.2.0
* N°2039 - Add complementary name on child classes to avoid empty summary cards in iTop 3.1+
* N°7462 - On update cancel invitation for people no more in TO/CC since previous update
* N°7504 - Rework actions / events class labels
* N°7524 - Calendar invitations : Notification rejected by SMTP O365
* N°7692 - Update german translations thanks to @Attila0428
* N°7685 - Align Calendar invitation presentation to Email and add tooltip
2024-04-12 1.0.6 * N°2981 - Make the Reminder value configurable
* N°3484 - Calendar invitation : Set sender (reply to) display name / label in action email
* N°6589 - Crash of iTop if fields TO or CC are empty in PHP8.0
* N°6851 - Calendar invitations : Notification in wrong format
* N°7388 - Synchronize iTop objects with events in Outlook Calendar (creation/modify/suppress)
2020-03-11 1.0.5 * Add missing rights on some triggers and Actions for “Notification Manager” profile
2018-11-28 1.0.4 * Fix invitations when end date was prior to start date
* Handle empty start date
* Add Combodo license
2018-11-27 1.0.3 Add support for different data time formats
2018-08-28 1.0.2 Compatibility improvement for Outlook, Zimbra.
2016-02-09 1.0.1 First official release of the component. Includes a fix for building the attachments in “Test” mode.

Limitations

  • The 15min reminder added to the invitation does not seem to be taken into account.

Requirements

iTop 2.3.0 or above

Installation

Use the Standard installation process for this extension.
When prompted with the list of extensions to install, check Calendar Invitations.

Configuration

There is no configuration parameter for this extension in the iTop configuration file.

This extension requires the PHP parameter date.timezone to be set.

For instance date.timezone = Europe/Paris

Usage

This extension is used to create a new type of “Action” to be associated with Trigger. To create such an action go to “Admin Tools / Notifications”, in the “Actions” tab, click “New…” and pick “Calendar Invitation” from the list.

The following form will be displayed:

New Calendar Invitation

Field Meaning Sample Value
Name Name of the action. Any value that is meaningful to distinguish this action Invitation for implementing changes
Description A longer explanation about the purpose of this action. for information only.
Status Whether or not the action is active (= In Production), Being tested or Inactive. In Production
Test Recipient An email address for testing the notification. used when the status is “Being tested”. test@demo.com
From (address) The email address used as the sender of the email. Depending on its security settings, your mail server may block the email if the sender is not a valid email address itop@demo.com
From (label) A human readable label for the above email address. Will be used in the description of the invitation. ITop Change Management
Reply To The email address to which the replies must be addressed, if different from the “From (address)”.
To An OQL query which returns the list of the mandatory attendees to the meeting. Placeholders are supported, prefixed with a colon (:) SELECT Person WHERE id=:this->agent_id
CC An OQL query which returns the list of the mandatory attendees to the meeting. Placeholders are supported, prefixed with a colon (:) SELECT Person WHERE id=:this->changemanager_id
Subject The subject of the email. Placeholders are supported, surrounded by $. Invitation for implementing $this->ref$
Start Date/Time The start date and time of the meeting. The format is YYYY-MM-DD hh:mm:ss. Placeholders are supported, surrounded by $. $this->start_date$
End Date/Time The start date and time of the meeting. The format is YYYY-MM-DD hh:mm:ss. Placeholders are supported, surrounded by $. If this field is left blank, the meeting is assumed to have a duration of one hour.
Meeting Subject The subject of the meeting. Placeholders are supported, surrounded by $. If this field is left blank, the subject of the email will be used.
Meeting Description A longer description for the meeting. Placeholders are supported, surrounded by $. $this->hyperlink$
Meeting Location A location for the meeting. Placeholders are supported, surrounded by $.
Reminder duration Allow to specify in minutes, the reminder notice 15
Policy in case of previous invitations No (always send a new invitation): does not update any previously sent invitations past behavior
Update : will update the previously sent invitation
Cancel : will cancel the previously sent invitation

Don't forget to associate the action with a Trigger, otherwise it will never be activated.

Synchronize WorkOrder

Here is an example of how you could notify WorkOrder agent with a calendar invitation, which would be automatically updated when the workOrder dates are changed

Create a Trigger

Here we will use a On Object Update Trigger, but we could also have trigger it on Entering State.

We specified that if the dates are changed we want to update the agent in charge of doing the work.

Create the Action

Specifies the object dates which need to be mapped to the calendar invitation

Start date $this->start_date$
End date $this->end_date$

It is possible to have a single object, an Approved Change for eg. which would trigger multiple independent Calendar invitations. An invitation for the CAB and an invitation for the Change implementation. Each actions will refer different date attributes of the Change…

Meeting description $this->url$
Not every mail servers support HTML within the meeting request body, so we recommend to use placeholders like $this→url$ rather than $this→hyperlink$, and plain text rather than HTML

Q&A

Q: What happen if the agent as refused or deleted the invitation and an update is sent?
A: This is a mail server decision, in general a new invitation is presented to the agent.

Q: How can I trigger an event cancellation?
A: There must be an event or a particular object modification, which can be seen by a trigger to start a second “Calendar invitation” with a Policy in case of previous invitations set to Cancel. For the above WorkOrder example, the easiest might be to add a state and transitions to cancel, the WorkOrder, and such transition would trigger the invitation cancellation.

extensions/icalendar_invitations.txt · Last modified: 2024/08/26 15:12 (external edit)
Back to top
Contact us