Calendar to Exchange Integration

The Alfresco Calendar to Exchange Integration module enables users to synchronise their folders from an Alfresco Share Calendar to a user's personal Exchange Calendar.

Features

  • Allows users to Subscribe to Calendars from Alfresco Share
  • This will synchronise to their main user calendar, so it is accessible via Outlook everywhere

Changelog

The change log for Exchange can be found here

Installation

The Exchange Integration comes with both a Share and Repo amp. Please follow our Installation guide on how to install this module.

Usage

Once you've followed the configuration steps below, you can subscribe from Alfresco Share:

  • Navigate to a site you are interested in subscribing to and open the calendar page.
  • Click the Subscribe button on the toolbar. You are now subscribed!
  • It may take a small amount of time for all events to show up in your calendar.
  • To Unsubscribe, click Unsubscribe on the toolbar. This will delete all events on your calendar for that site.

Configuring Alfresco

Setting properties

You will need to include the following 3 properties within your alfresco-global.properties file:

  • exchange.admin.username: The SMTP address of the user with correct calendar permissions
  • exchange.admin.password: The password of that user
  • exchange.admin.serviceURL: The Service URL for the EWS API.

Example properties

This is for a user with the email address user@example.com using Office 365:

exchange.admin.username=user@example.com
exchange.admin.password=password
exchange.admin.serviceURL=https://outlook.office365.com/EWS/Exchange.asmx

Service URL

You can find the Service URL from within any connected Outlook client, under Accounts - Advanced.

For Office 365, the URL is: https://outlook.office365.com/EWS/Exchange.asmx

Alternatively you can use this AutodiscoverTest program to discover it.

Adding Delegate Access

You will need to setup delegate access to each mailbox to give a user the ability to update calendars. You can do this via PowerShell.

This example script is an example with Office 365, but should work fine with Later versions of exchange.

Connecting to Office 365

You can connect to Exchange Online using a remote powershell window.

Allow remotely signed execution

You will get an error on import if you don't enable remote execution

Set-ExecutionPolicy remotesigned

Select Y at the prompt.

Set Your Credentials

You will receive a dialog box with this command

$UserCredential = Get-Credential

Enter in an admin username/password for Exchange. This is someone who has the ability to change permissions of User's mailboxes.

Import the Session

Specify the configuration you need for this power shell session.

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection

Execute the import

Import-PSSession $Session

Enabling Delegate Access on all Calendars

Run the script below to iterate through and set permissions per Calendar.

$allmailbox=get-mailbox -ResultSize Unlimited
Foreach ($item in $allmailbox){Add-MailboxFolderPermission –identity ($item.alias+’:\Calendar’) –user admin@example.com –Accessrights Editor}

Making sure to change admin@example.com to the smtp address of the user you've configured in Alfresco.