#764 MS Exchange plugin

Parent Category:
Calendar plugins
Last Updated:
Allon Moritz, Tuesday, 02 May 2023 15:48
Thursday, 01 May 2014 18:03

This feature is part of the DPCalendar Premium subscription.
SubscribePHP 7.4PHP 8Joomla 3.10Joomla 4.4Joomla 5


The Microsoft Exchange calendar plugin integrates events from your corporate Exchange server into Joomla. It uses the Exchange Web Service (EWS) API to access the events. Please check the requirements list below if DPCalendar can work on your infrastructure.

Microsoft 365 (formerly Office 365) calendars should be imported with the Microsoft plugin. It is much faster and uses keys instead of username and password for better security.


There are some requirements which must be fulfilled to make the exchange integration work:

EWS Activated

On the Exchange server the EWS service must be activated. This service enables API access to the MS Exchange server.

To test if the Exchange API is enabled you can open the following url in your browser https://{{my-host}}/EWS/Exchange.asmx (replace {{my-host}} with your server address).

Curl version

Curl must be installed with a version higher than 7.23.0. As NTLM is only available since that version. Otherwise a 401 error will be thrown. On the Joomla server run the following command to find out which curl version do you have installed:

php -i | grep "cURL Information"

You should see then an output like:

cURL Information => 7.28.1


The NTLM option must be activated in the curl setup. On the Joomla server run the following command to find out if NTLM is activated:

php -i | grep "NTLM"

You should see then an output like:

NTLM => yes

Open HTTPS connection

The MS Exchange server must be reachable from the Joomla server on port 443 with https connections. The same url must accessible by the Joomla server. A common command to test the url is with wget:

wget https://{{my-host}}/EWS/Exchange.asmx --no-check-certificate

You should see then an output like:

--2018-06-20 06:15:29--  https://{{my-host}}/EWS/Exchange.asmx
Connecting to {{my-host}}:443... connected.
WARNING: cannot verify {{my-host}}'s certificate, issued by `/CN=Foo':
  Unable to locally verify the issuer's authority.
    WARNING: certificate common name `Foo' doesn't match requested host name `{{my-host}}'.
HTTP request sent, awaiting response... 401 Unauthorized
Authorization failed.

The important part is that wget could establish a connection to the Exchange server as shown on line number 2. The authentication warnings can be ignored.

Microsoft 365

If you really want to use this plugin for Microsoft 365 (formerly Office 365), then please use the following settings in the DPCalendar Exchange plugin:

  • Host:
  • Username: Microsoft 365 username
  • Password: Microsoft 365 password

Attachment support

The plugin supports inline attachments of your Exchange events. These attachments are extracted out of the event description and stored in a cache folder in /cache/plg_dpcalendar_exchange/attachments. There are no file permissions set as the server should set the correct permissions. If the folders do have the wrong permissions, please double check if the folder is in the open_basedir list. Be careful with this setting as it can lead to security issues if defined wrongly.

DPCalendar Options

These settings are the same for every calendar configured in the plugin.

Host [Type: Text]
The host of the Exchange server.
Username [Type: Text]
The Exchange username.
Password [Type: Password]
The Exchange password.
Calendar Name [Type: Text]
The name of the Exchange calendar, if empty, the default calendar will be used.
Server Version [Type: List] [Default: Default]
The server version.
The following options are available:
  1. Default
  2. 2007
  3. 2010

Plugin Options

Caching [Type: List] [Default: Joomla]
Select whether to cache the calendar data.
The following options are available:
  1. Joomla
  2. Database
  3. Never
Cache Time [Type: Text] [Default: 900]
The time for the cache in sec.
Sync Start [Type: Text] [Default: -3 year]
The relative start date to sync from.
Sync End [Type: Text] [Default: +3 year]
The relative end date to sync from.
Sync Steps [Type: Text] [Default: 1 year]
The sync steps.

Comments (0)

We use cookies on our website. Some of them are essential for the operation of the site, while others help us to improve this site and the user experience (tracking cookies). You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.