GroupCalendar Installation steps.
Use the chat button on this website for free installation support.
Share your screen if you want us to guide you

To uninstall the 30 days trial version, all you have to do is run uninstallservice.bat and delete the folder where it was installed.

Global overview of the installation procedure:
1- create a service account and give it permissions
2- put the extracted zip file anywhere on a 64 bit windows machine
3- Create a public folder calendar in Outlook and add the full path to the gcadmin console
4- Type in some user email addresses, the service account credentials and the licensekey
5- Edit the config file that is required to run the software as an NT service and start the service.

Detailed installation procedure

1-      LOCAL EXCHANGE SERVER: Create a new user account (suggested name: GCadmin) in the active directory and give it a mailbox. This is the service account that we will refer to as “the Gcadmin” or “the Gcadmin account”
Membership of the group Domain Users is all it needs.
Check the mailbox properties of the gcadmin account, open the ACCOUNT tab and see what the domain name is there, open the EMAIL ADDRESSES tab and set the reply address to the same domain name. So the primary email address of the gcadmin account must be in the local domain, not the internet domain if that is different.
OFFICE 365: Create a new mailbox for user GCADMIN. Just a regular user account.

2-      Depending on your exchange version run one of the following two commands.

For Exchange 2007 run the following commands in the Exchange Shell:  
Note You will  have to adjust the commands If you use another service account name than GCADMIN
Note2: Make sure the command that you paste in the shell is one long line. You may want to copy it into notepad first.

Get-ExchangeServer | where {$_.IsClientAccessServer -eq $TRUE} | ForEach-Object {Add-ADPermission -Identity $_.distinguishedname -User (Get-User -Identity gcadmin| select-object).identity -extendedRight ms-Exch-EPI-Impersonation}
and after that run
Get-MailboxDatabase | Add-ADPermission -User gcadmin -extendedRights ms-Exch-EPI-May-Impersonate -InheritanceType none


For Exchange 2010, 2013, 2016 or office 365 (*) you run the following command in the Exchange Shell :  

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

(*) Note: For Office365 you first start a remote PowerShell using these commands from the windows powershell on your computer
$LiveCred = Get-Credential  (log in with your administrative credentials)
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri -Credential $LiveCred -Authentication Basic -AllowRedirection
Import-PSSession $Session



  1. Download the file and extract it to a folder on any 64 bit computer or server that will not be shut down while Exchange server is being used.
    You can copy it to the Exchange server itself but that is not a requirement. Also acquire a test license because without that the software will not work.

  2. Start the GCADMIN.EXE.
    The console’s only purpose is to compose a config.ini file for the processing part of the application. (You may edit the ini file manually too, for instance to copy a list of user email addresses to the [Users] section. See 12.
    If you are going to use the software with Office 365, close the gcadmin.exe and open the config.ini file. At the bottom of the config.ini paste the following 2 lines;


    lose config.ini and start gcadmin.exe again. now enter your license key and email address at the bottom of the console.

  3. Now you can begin your configuration of the software. Enter the gcadmin account email address and password at the top and click the “Test Credentials” button. 
    At the bottom of the console you will see what happens and if all goes well you will be notified there that you logged on to your server successfully. Read on at 6.

If you can not log on and get an Autodiscover error:
This can be caused by a problem with the certificates on your exchange server but first make sure that the gcadmin UPN and Email address is identical. (This is the most frequent issue that people run in to. Check the mailbox properties of the gcadmin account, open the ACCOUNT tab and see what the domain name is there, open the EMAIL ADDRESSES tab and set the reply address to the same domain name)

To check for issues with your certificates use the following.
To test the services from the Exchange shell you can run the following command:
Test-OutlookWebServices |FL >c:\test.txt
This creates a test.txt file in the root of the c drive. Look for errors related to your certificates and if there are errors you may find this video usefull:

In the gcadmin console are some additional options to help you find the reason for the errors you may get. The [test SCP in AD] button locates the service point in the Active Directory which holds the information of you AutoDiscover URL. To test if you have a certificate problem you can try to [test credentials] with “ignore certificate errors” checked. And to overrule the URL that your autodiscover service returns you can manually set the url to the exchange services. That url has a format of
The three test options are there for trouble shooting only. Use them only to fix the errors that prevent the [Test credentials] button from logging on correctly.

If you can not get it to work with autodiscovery but the manual url fixed the "test-credentials" issue then you can override autodiscovery by adding the following to the bottom of the config.ini file. (close gcadmin.exe first)

* the part "server.domain" has to be adjusted to match your server name and your domain name. For example

For Office365 the url is the same for every office 365 user so simply copy and paste this into the config.ini


  1. Create one or more groupcalendar folders in the public folders section of MS Outlook. (In Office365 you must first create a public folder tree if it's not there yet)
    You can not create the group calendar public folder calendar with the exchange management console or command shell because that can only create email folders so you must do this with outlook.
    The account you use to run Outlook must have permissions to create public folders. To get to the public folders section in Outlook you click the tiny icon at the bottom left that says "folder list" and a tree with all your email folders opens up. At the bottom you can now find the public folders where you create a new folder and make sure to select CALENDAR ITEMS in the dialog so it will be a calendar folder.
    When you open the properties/permissions of your newly created group calendar in Outlook you will see that you are the owner. It is vital that the gcadmin account is (also) designated as an OWNER of that group calendar. Admin users can be given the Editor role while normal users must have Author permissions so they can edit their own items but can not modify other items. For Users that are not a member of a group calendar the “folder visible” permission can be removed. Note: All members must have their mailbox on the server or group of servers that are being processed by the EGC software.

    You can add every individual user to the calendar and give them permissions but you can also use groups (distribution lists) and add all users with the same role to the same group in your active directory. Instead of defining permissions for individual users you can simply give the DEFAULT group Author permissions and add a couple of individual users who may act as Admin users with EDITOR or OWNER permissions.


  1. In the GCADMIN.EXE add the Group Calendars to the list with a path in the form of “/folder/sub folder/sub sub folder”. Note that the first slash (/) indicates the level under “pulic folders/all pubic folders/” so if your groupcalendar is at level “pulic folders/all pubic folders/groupcal” you only enter /groupcal.

  2. Add all the user email addresses. You only have to add users that need to have their calendar items shared * in the group calendar. Any user that only needs to see the content of a groupcalendar does not have to be added to the list. You can use the ENTER key after typing an email address to add the user. The user list is sorted, select a user in the list and type the first character of the name to jump to the name that starts with that character. You can not add groups/distribution list names here (yet). Add every individual email address or see step 12 to enter in bulk.(* or in case of event publishing, the users that will receive events pushed from the group calendar to their calendar)
  3. Assign users to your groupcalendars. A user can be a member of one or more group calendars. Being a member means that the calendar items in the personal calendar can replicate (if filters permit) to the group calendar and the group calendar items may replicate back to the user calendar.

  4. If you need the functionality of Teams communicating with each other by the use of their PGC tick the checkbox in the group calendar members list to designate the selected group calendar as the Primairy Group Calendar (PGC) for that user. (read the concepts section for more info)

  5. Install the processing component (service) that will be using the config.ini file to do the work. Browse to the folder where you copied the extracted zip file (from the console of that machine/server, not over the network) and edit the file RunEGCasService.ini.
    In that ini file you see
    command line and workingdir. Make sure that the path matches the install location of the ExchangeGroupCalendar_EWS.exe and close/save the file.
    So if you unpacked everything in c:\GroupCalendar then you should have in your RunEGCasService.ini the following:
    CommandLine = c:\GroupCalendar\ExchangeGroupCalendar_EWS.exe
    WorkingDir = c:\GroupCalendar

    Run InstallService.bat and you’re done.
    (if installservice.bat produces an error,run it from an elevated command shell after navigating to the folder).

    In the gcadmin console (bottom right) is an option to enable logging to text file. Please enable that option to monitor the work that the service is doing. Open that egclog1.txt file when the EGC-service has started so you can check if the license is working, if the connection to exchange is working and if there are no permissions problems. If you see nothing that says "error" or "exception" or "problem", everything is working as it should.

    Some additional information below.
  6. You can edit the config.ini file manually or from a script without using the Gcadmin console. This can be useful if you need to add hundreds of names to the console.
    To export all email addresses to a txt file execute this command in the exchange shell:
    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

    You can send us that list together with your config.ini and in 10 minutes you will have your config.ini back with all the users from your txt file. Or do it yourself by using Excel to create a numbered list for your config.ini
    If you want to copy a list of user email addresses to the [Users] section, make sure they all have a unique index ( / etc) and in the [Indexes] section make sure that UserIndex=  corresponds to the last user number that was used in the [Users] list.
    More info about indexes:
    under [Indexes]
    Gcindex= number of groupcalendars
    MemberIndex(number) = number of members of the groupcalendar with that number
    PGC-(number)= number of users that have groupcalendar (number) as PGC
    under [PGC-number]
    number =number ; first number is just a counter, second number is the unique user number.

    Another thing you can do with the INI file (from a script) is to import the existing items of one or more users. The processing component will look for the following:
    Under the header [Import] you can see

    It's obvious that when you set False to True, that the import will start. If there are user email addresses in list with a “;” as separator it will import the items from their calendars. If no user names are specified then all user calendar items will be imported.


  7. There are some settings available that you can do directly in the config.ini file if you need some specific functionality:

    By default anything older than 60 days will be removed from the Group Calendars. To change this add tot the bottom of the config.ini

    To prevent the sofftware from processing items that have an end date in the past.


    To force the items in the groupcalendar to be created in the same time zone as the user.


    To work from a sub calendar located under your normal outlook calendar.

    So  - items created for a user (from the group calendar) will go into that sub calendar and
          - only items that the user creates in the sub calendar will go into the group calendar.

    mysubfolder is the name that you prefer to use as the calendar under the normal calendar.
    Adding this to the config.ini will create the subfolder calendar for everyone in their outlook. When you use rooms and other resource calendars and have their items copied to a group calendar you must create a subfolder with the same name but not of type calendar but type "email items" under the resource's default calendar. Otherwise the software will no longer see the items of the resources. When it sees a subfolder with the same name but it's not a calendar then it uses the standard outlook calendar.
    The same is true for users that don't want to work from a sub calendar but prefer their default Outlook calendar. Create a non-calendar folder under their Outlook calendar and the software uses their default Outlook calendar.

    When working from a mobile device, add ### to the body of the appointment and it will be a private item after sync with Exchange server.

    Test Scenario’s:
    With regards to testing, do not use the Gcadmin account mailbox/calendar as test user!

    The basics

    -          Create a normal item in the personal calendar of user 1

    -          See it replicate to all of the groupcalendars that user 1 is a member of.

    -          Change the subject of the item in the personal calendar of user 1

    -          See the changed subject replicate to all of the groupcalendar that user 1 is a member of

    -          Change the subject of the item in the groupcalendar (make sure to have public folder permissions to do that)

    -          See the changed subject replicate to the item in the personal calendar of user 1

    -          Add *X to the subject of the item in the group calendar

    -          See the item being deleted from user calendar and all groupcalendars.


    Admin tasks 

    -          Create an item in the groupcalendar with a * in the subject

    -          See it replicate to all user calendars who are a member of this groupcalendar

    -          Move the item in the groupcalendar to another time or change the subject

    -          See the changes replicate to all personal calendars who are a member of this groupcalendar

    -          Look in the groupcalendar to check what the exact name is of another user. (say John)

    -          Create an item in your personal calendar OR in the group calendar with this subject
    #john# test

    -          Notice that it gets removed from the calendar where it was created (moved to John’s calendar)

    -          See that it shows up in the group calendar as [john] test

    -          Open the item in the groupcalendar and see that your name and the time of creation is logged.


    Demonstrate that users can not change Admin items

         -          Move the item in one of the user calendars (or change the subject or delete it).

    -          See the user changes being undone and the original item properties being restored


    Team tasks 

    -          Create a normal item in the personal calendar of user 1 with a * in the subject.

    -          See the item being replicated to the groupcalendar that is this users’ PGC

    -          See that the subject has [.] in front of it to indicate a team item in the PGC

    -          Check the user calendars of the other team members and see the item there as well with a dot in front of the subject to indicate a team item.

    -          In any of the team members’ personal calendars, change the subject of the item and add a * to the subject

    -          see the changed subject in all other team members’ calendars.

    -          Admin only: Move the item in the PGC to another start time to see the item move in all personal calendars of the team too.

    -          In any of the team members’ personal calendars or in the PGC (as admin), add *X to the subject and see the item being removed from all team members’ personal calendars as well as their PGC.