Installation procedure for Exchange Group Calendar

Use the Graph version for Microsoft 365 / Office 365. Use the EWS version only for on-prem Exchange environments.

Graph versionFor Microsoft 365 / Office 365
EWS versionFor on-prem Exchange Server
SupportFree installation support via chat, email, phone or remote session
The software can be installed on any Windows server or computer that is switched on during working hours. A new Graph installation automatically starts as a 50 users / 30 days trial version.

Office 365 / Microsoft 365 installation

Estimated installation time: 3 minutes. Use EGC_GRAPH.zip for Microsoft 365 / Office 365.

Before you start

For a Microsoft 365 installation, make sure these three things are available.

  • A Windows computer or server that is switched on during office hours, plus someone who is allowed to install software on it.
  • A user who can access Entra / Azure and knows the Microsoft tenant ID.
  • A Microsoft 365 mailbox that can be used only by EGC to host the group calendars.

Download and extract

Download EGC_GRAPH.zip and extract it to a normal writable folder, for example C:\EGC_GRAPH or D:\EGC_GRAPH. Do not install it under Program Files, because EGC needs write access to subfolders.

Create or reuse the GCADMIN mailbox

For a new installation, create a dedicated Microsoft 365 mailbox in the Office 365 admin console. A normal Microsoft 365 license is required. We recommend using GCADMIN as the username. Group calendars will be located under this mailbox default Outlook calendar.

Migrate an older installation

If you already use Exchange Group Calendar, stop the existing EGC service first and copy the existing config.ini into the EGC_GRAPH root folder. The current configuration will be used automatically.

Start gcadmin.exe

Run gcadmin.exe. You may want to create a desktop or Start menu shortcut for it.

Register EGC in Entra / Azure

Enter the customer Tenant ID and use the registration button in GCADMIN. This creates the EGC app registration in the customer Microsoft tenant and grants the required Graph permissions.

Validate the GCADMIN mailbox

Enter the GCADMIN mailbox email address and click Validate. EGC checks whether it can access the mailbox, open the calendar, create a test item and remove it again.

Create a first test group calendar

After Tenant registration and mailbox validation the other options become active. For a basic test, add one group calendar and one user email address. Select both and click Make member.

Set permissions and filters

With the group calendar selected, configure whether it is hidden or visible by default, who may see it, who may administer it, and which Outlook items should be included.

Install and start the service

Click Install Service and then Start Service. Open Outlook, check that the group calendar is visible, add a few items to your personal calendar and verify that they replicate to the group calendar.

Overview of the settings in the GCADMIN console

These settings cover setup, service control, group calendars, users, permissions, filters, privacy, import and category management.

Initial setup
Tenant ID
The Microsoft Entra/Azure tenant ID for the customer environment.
Register EGC in Entra/Azure
Creates the EGC app registration in the customer Microsoft tenant and grants the required Graph permissions.
Remove EGC Azure registration
Removes the EGC app registration when a customer wants to clean up or start over.
GC admin email address
The licensed mailbox that hosts the group calendars.
Validate gcadmin
Checks whether EGC can access the GCADMIN mailbox, open the calendar, create a test item and remove it again.
Support and service
Buy license
Opens the EGC license purchase page.
Open log
Opens the current EGC service log for support and diagnostics.
Chat with support
Opens live support directly from the console.
Install service
Installs the EGC-GRAPH Windows service.
Start / Stop / Restart
Controls the background processing service.
Uninstall
Removes the Windows service registration.
Group calendars and users
Group calendars
The shared Outlook calendar folders that EGC maintains.
Add groupcalendar
Creates a new group calendar under the GCADMIN mailbox.
Delete selected
Deletes the selected group calendar folder and cleans up its configuration.
Purge
Empties selected group calendars without touching user calendars.
Users
The mailboxes that EGC can scan and synchronize.
Add user(s)
Adds users manually, from the GAL or by distribution list. Users can also have a second short email address.
Delete selected
Removes selected users from the EGC configuration.
Make selected user(s) member of selected groupcalendar(s)
Adds selected users to selected group calendars.
Remove selected member(s) from selected groupcalendar
Removes selected members from the selected group calendar.
Members of selected groupcalendar
Shows whose calendar items may be copied into the selected group calendar.
Permissions
Groupcalendar hidden
Normal users cannot see the calendar unless explicitly allowed.
Groupcalendar visible
Normal users can open and read the group calendar.
Groupcalendar visible list
Selects users who may see a hidden group calendar.
Admins
Selects users who may create, change and delete items in the group calendar.
Load all users
Expands the permission list beyond current members.
Save permissions
Writes the selected permissions directly to Outlook/Graph folder permissions.
Filters
Text / category filters
Controls which items are included based on subject, body text or Outlook category.
Mode
Choose no filter, show only matching items, or hide matching items.
Subject contains
Matches words in the appointment subject.
Body contains
Matches words in the appointment body.
Categories
Matches exact Outlook category names.
Busy / OOF / Working elsewhere / OOF + Else
Includes only items with the selected Outlook availability status.
Hide free time
Excludes items marked as free.
Result
Shows in plain English what the current filter combination will do.
Show subject only
Copies only the subject, not the full item details.
Hide body text
Removes body text from group calendar copies.
Include domain attendees
Always includes meetings when selected people or domains are invited.
Open domain attendee list
Opens the email/domain list used by the domain attendee filter.
Advanced settings
Moderators
Sends email notifications to selected moderators when new items appear.
Meeting prefix
Sets the word EGC uses when marking meetings in group calendar subjects.
Disable 2-way sync
Copies user calendar items to the group calendar, but ignores changes made in the group calendar.
Process future only
Only processes items that start in the future.
User subfolder name
Uses a named calendar subfolder instead of the user default calendar when available.
Remove items older than 60 days
Cleans old group calendar items to improve Outlook loading speed.
Use user timezone
Helps when user calendars are in a different timezone than the server.
Log files
Sets how many log files are kept.
Save settings
Saves group calendar settings.
Privacy, import and categories
Do nothing
Treats private Outlook items like normal items.
Hide
Does not copy private items into group calendars.
Hide details and change subject into
Shows that the user is busy, but hides the private details.
Import
Rebuilds group calendar content from existing user calendars.
Days past / Days future
Defines the import date range.
Start import / Stop import
Starts or cancels an import job.
Category management
Defines Outlook categories and colors for EGC.
Add / Edit / Delete
Manages EGC category definitions.
Delete all categories but defined list
Replaces users Outlook categories with the managed EGC category list.

On-prem Exchange Server installation

Use the EWS version only for on-prem Exchange environments. Request EGC_EWS.zip by email.

Create the GCADMIN account

Create a new user account in Active Directory, for example GCadmin, and assign it a mailbox. Membership of Domain Users is sufficient. In Exchange Management Console, check the Account tab and Email Addresses tab. The primary email address of GCADMIN must be in the local domain if that differs from the internet domain.

Assign impersonation rights

Run this command in the Exchange Management Shell:

New-ManagementRoleAssignment -Name:EGCimpersonation -Role:ApplicationImpersonation -User:gcadmin

Download and extract the software

Request EGC_EWS.zip. After you receive the ZIP file by email, extract it to a folder on any 64-bit Windows computer or server that remains switched on while Exchange is being used. Request a test license; the EWS version will not work without a license.

Test the connection

Start GCADMIN.EXE, enter the GCADMIN account email address and password, and click Test Credentials. The status output at the bottom of the console should show a successful logon to Exchange.

Create group calendar folders

Create one or more calendar folders in the Public Folders section of Microsoft Outlook. If Public Folders are not available yet, create a Public Folder tree first. Do this in Outlook, not in Exchange Management Console or Exchange Shell, because those tools create mail folders. Press CTRL + 6, locate Public Folders, create a new folder and choose Contains Calendar Items.

Set public folder permissions

Open the permissions of the newly created group calendar. Add the GCADMIN account as Owner. Admin users should also be Owner. Normal users usually need Author permissions. To hide the group calendar for a user, add that user and remove Folder Visible. Right-click the calendar and add it to Favorites so it appears in the normal calendar section of Outlook.

Add group calendars and users

In GCADMIN.EXE, add group calendars using this path format:

/folder/subfolder/subsubfolder

The first slash represents the level below Public Folders / All Public Folders. For example, Public Folders / All Public Folders / groupcal becomes /groupcal. Add all user email addresses that need calendar synchronization. Users who only need to view a group calendar do not need to be added to the user list.

Assign users to group calendars

A user can be a member of one or more group calendars. Membership means that personal calendar items can replicate to the group calendar, and group calendar items may replicate back to the user calendar. Select both the user and the group calendar, then click the button to make the selected user a member of the selected group calendar.

Primary Group Calendar

If you use Primary Group Calendar functionality, select the checkbox in the group calendar members list to designate the selected group calendar as the user Primary Group Calendar.

Install the service

Edit RunEGCasService.ini in the folder where you extracted the software. Make sure CommandLine and WorkingDir match the installation folder.

CommandLine = C:\GroupCalendar\ExchangeGroupCalendar_EWS.exe
WorkingDir = C:\GroupCalendar

Run InstallService.bat. If this produces an error, run it from an elevated command prompt after navigating to the installation folder.

Enable logging and verify operation

In GCADMIN, enable logging to a text file. Open egclog1.txt after the EGC service has started. Check that the license works, the Exchange connection works, and there are no permission problems. If you do not see messages containing error, exception or problem, everything is working as expected.

Additional configuration in config.ini

These options are mainly for larger or on-prem installations where configuration is managed manually or by script.

Bulk user import
Export users from Exchange
You can edit config.ini manually or by script. To export all email addresses, run the Exchange Shell command below and send the list with your config.ini to support, or use Excel to create a numbered list yourself.
Import existing calendar items
[Import]
Set ImportNow=True and define PastDays, FutureDays and optional Users to rebuild group calendar content from existing user calendars. If Users is empty, items from all user calendars are imported.
Cleanup settings
[CleanUp]
By default, items older than 60 days are removed from group calendars. Set RemoveOlderThan60Days=False to disable this.
Second GCADMIN account
[GCAMIN2]
For Office 365 EWS installations with more than 20 group calendars, you may need a second GCADMIN account. Do not correct the spelling of GCAMIN2.
User calendar subfolder
[UseSubFolderCalendar]
FolderName=MySubfolder creates and uses a sub-calendar under each user default Outlook calendar.
Timezone and future-only processing
[TimeZone]
UseUserTimeZone=True uses the user timezone.
[ProcessFutureOnly]
Value=True processes only items that start in the future.
Password encryption
[EncryptPassword]
After setting Value=True, save config.ini, open gcadmin.exe, enter the password again and click away from the password field. The password is replaced by ******.
Use GCADMIN calendar as group calendar root
[GcadminCalendarIsGcroot]
Set Value=True when you do not want to use Public Folders. The software uses the default Calendar folder in the GCADMIN mailbox as the root location. Use /foldername when adding a group calendar.

Example snippets

Get-Mailbox -ResultSize Unlimited | Select-Object DisplayName,ServerName,PrimarySmtpAddress, @{Name="EmailAddresses";Expression={$_.EmailAddresses | Where-Object {$_.PrefixString -ceq "smtp"} | ForEach-Object {$_.SmtpAddress}}} > c:\temp\export.txt

[Import]
ImportNow=True
PastDays=30
FutureDays=30
Users=a@b.com;c@b.com;d@b.com

[CleanUp]
RemoveOlderThan60Days=False

[GCAMIN2]
EmailAddress=
Password=

[UseSubFolderCalendar]
FolderName=MySubfolder

[TimeZone]
UseUserTimeZone=True

[ProcessFutureOnly]
Value=True

[EncryptPassword]
Value=True

[GcadminCalendarIsGcroot]
Value=True