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.
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