Exchange Group Calendar version 3.0 - FAQ

A lot of issues have a obvious cause. You must however enable logging (log to text file in the gcadmin console) and maybe restart the EGC service to get more information about the problem. Once logging is enabled you will find the logs in the installation directory of the EGC service.

When trying to add a group calendar you get error "Unexpected end of XML document"

       Turn off .NET impersonation authentication on the EWS virtual directory and just leave Windows authentication.

When clicking "test credentials" you get "Autodiscover blocked a potentially insecure redirection to..."

       Maybe the gcadmin service account password expired after the standard 30 days period.
Make sure the account has permissions to use OWA and Web Services in the exchange system console.

How can I display the Group Calendar Public Folders on my Iphone, Ipad, Android device, Sharepoint or Joomla website?

       There's an Iphone app for that available here.

How to use the Master Category List so we see category colors in the Free/Busy viewer

       In the GCadmin console, in the right bottom corner click "category management" to open the master category list.  Create categories with the format "CategoryName-ColorNumber" and wait (up to 20 minutes) until the EGC software has updated the category list in all users' Outlook. Outlook must be closed and reopened to load the new list. Create some new items in the personal calendar and select a category from the Master Category List. Then open the Free/Busy viewer (non full screen view) to select the (right bottom) "show category color" option.
You need Exchange 2010 and Outlook 2007 or higher for central category management as well as displaying category colors in the Free/Busy viewer.

     gcadmin console credentials check error. ("impersonation" error or "The Autodiscover service couldn't be located error)

       Often the internal domain name is different from the external domain name. (example domain.local and
There are two things you can do.
1- Give the gcadmin account a primary email address in the internal domain. (gcadmin@domain.local) and match the User Principle Name (drop down box in the account tab of the mailbox) so it matches the primary email address.
2- Give the gcadmin account a primary email address in the external domain ( but make sure that the User Principle Name corresponds to that.
If the domain suffice is not available in the drop down box then you should add it in "UPN Suffices" in the AD domains and trusts tool. (right click the top tree object there to add it)

If this solution did not fix your problem it may be related to the complexity of the gcadmin user name. We had 2 support cases with a complex gcadmin user name (display name different from alias and email address or with dots and hyphens in the name). It turned out that creating a new service account with a simple username, display name and email address suddenly fixed the problem. We can only guess what the reason for this has been (http coding/conversion or even a bug in the Web services API)

Log file error: There was a problem connecting to the license server. Please make sure your firewall allows for connections to

       The software needs to be able to read the license from our license server over port 80 (standard HTML port) from IP Address  For tight security environments, be advised that the software can be installed on any computer that is able to connect to your exchange server. Another point of interest is that the software connects to the internet as the account that runs the " EGC-Service " service. When using a proxy server, you may have to change that account to a domain account that has permissions to use the proxy server.

Log file error:  Impersonation error for user abc@def,com : Invalid URI: The hostname could not be parsed.

       Check the email address of the user. It may be typed incorrectly in Gcadmin.exe. It may also help to match the User Principle Name (drop down box in the account tab of  the mailbox) so it matches the primary email address. If the suffice is not available then you should add it in "UPN Suffices" in the AD domains and trusts tool. 

Log file error: Unable to cast object of type 'System.Int32' to type 'System.Byte[]'.

       Was fixed after reinstalling service pack 3 of outlook 2003 on the client pc. Also seen on migrated calendar items created by Exmerge. Not fixable.

Log file error: Problem while trying to delete replica items: Object variable or With block variable not set.

       Make sure the user has author permissions in the groupcalendars that he/she is member of.

Gcadmin console error on Exchange 2007 about impersonation while trying to add a new groupcalendar path to the list

       This may be caused because the command that was entered in the Exchange shell did not set impersonation correctly on all required objects.

First try it with a exchange command shell command:

 Get-MailboxDatabase | Add-ADPermission -User gcadmin -extendedRights ms-Exch-EPI-May-Impersonate -InheritanceType none

If that does not fix it do the following to check and correct
a. Start AD Sites and Services
b. Click on the root node of the tree on the left hand pane and then choose View | Show Services Node (make sure it is checked).
c. Expand the Services node as follows:
Services/Microsoft Exchange/First Organization/Administrative Groups/Exchange Administrative Group/Servers/
d. Choose your CAS server (it should be a child of "Servers")
e. Right click on your CAS server and choose Properties and go to the Security tab on the property page.
f. Scroll through the list of users in the list box at the top and find your "gcadmin" account. If it isn't there, then the right wasn't stamped properly.
g. Assuming for a moment that the account is indeed there, select the "gcadmin" account in the upper list box and then scroll down the list of privileges until you get to "Exchange Web Services Impersonation". Make sure that is is checked (and not grayed out).
h. If the account was not there, then you need to add an ACE for that account. Click Add (under the groups/users list box), find the account and then go to step "g".

Do the same procedure from point C. for this path .. Services/Microsoft Exchange/First Organization/Information Store/First Storage Group/Mailbox Database
Right click on the Mailbox Data node in the left tree view and choose Properties and go to the Security tab. Find your "gcadmin" account just like before and make sure that the "Allow Impersonation to Exchange Personal information" is there and checked (and not grayed out).


Gcadmin console error on  Exchange 2007 : The server to which the application is connected cannot impersonate the requested user due to insufficient permission."

        Make sure you run the correct command shell command. There are two versions for 2007 (2 command lines) and 2010. The command must be one long line when you paste it in the shell. 

Gcadmin console error:  Unable to add a groupcalendar in the Gcadmin console. Message about exchange not supporting the version.

     When on Exchange 2007, tick the box under the Gcadmin account credentials and try again. When on 2010 it should work without the box ticked. If it works when you do tick the box then install service pack 1 of exchange 2010.

Service refuses to start after fresh install or update.

     Open RunEGCasService.ini and double check the paths. If the software is installed in c:\EGC then it should look like this

If you get error 5 in the log file (sc manager) it's a permissions issue. Start an elevated command prompt and run the INstallservice.bat from that.

"Error 401 Unauthorized" accessing Autodiscover url where server name is A.B.Com and OWA url is X.B.Com while having a valid SSL SAN certificates for both.

After it has been working fine for a while I added a lot of calendars and now the log is full of errors like "Impersonation error for user : The Autodiscover service returned an error.
logon error for " shows that Exchange 2010 now ships with throttling ON. So it limits resources that one user (or application) can use.
 This may be the problem as it is limiting the EGC application resources. To remove that limit for your gcadmin account run this in the shell:

New-ThrottlingPolicy EGCPolicy

Get-ThrottlingPolicy EGCPolicy | Set-ThrottlingPolicy -RCAMaxConcurrency $null

Set-Mailbox "gcadmin" -ThrottlingPolicy EGCPolicy

* Note that your service account may have a different name than gcadmin and you must change the command shell commands.

Running diagnostic commands in the Exchange System Shell results in error "cmdlet not recognized"

     Assuming that you are running the command using an account with exchange administrative permissions the problem may be that the exchange commands have not been registered anymore in the shell. To fix this run this command:
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010
in exchange 2007 that would be

Add-PSSnapin Microsoft.Exchange.Management.PowerShell.Admin

 The user names in the group calendar items are too long.

     Give the users an additional short email address. Remove the long address from the gcadmin console and add the short one. You can automate this in your Exchange server email policy

Private items from a mobile device

     From a mobile device the calendar software may not have the option to set an item as Private. To work around that add the string ### to the body of the appointment. After synchronization with Exchange server the appointment will appear as a Private item in your Outlook calendar.

How to schedule an import/refresh that runs at night.

     Download this Import.vbs script file (right click the link and save) and copy it to the installation folder where gcadmin.exe and config.ini are located.

The script stops the egc service, specifies a 14 days import range, issues the import command and starts the service.
Using the windows scheduler, schedule a job to run the Import.vbs file at 3 am in the morning.
This way it has 5 hours to import and refresh everything for the next morning.
Please open  the import.vbs file with notepad or better notepad++  to change 4 lines to include the full path to the installation folder.

writeini ".\config.ini", "Import", "PastDays", "0"
writeini ".\config.ini", "Import", "FutureDays", "14"
writeini ".\config.ini", "Import", "Users", ""
writeini ".\config.ini", "Import", "ImportNow", "True"

The above 4 lines will look like the four below if your installation folder is c:\groupcalendar
writeini "c:\groupcalendar\config.ini", "Import", "PastDays", "0"
writeini "c:\groupcalendar\config.ini", "Import", "FutureDays", "14"
writeini "c:\groupcalendar\config.ini", "Import", "Users", ""
writeini "c:\groupcalendar\config.ini", "Import", "ImportNow", "True"


Using office 365 we see a lot of restarts of the software and errors in the log about subscriptions.

     Add the following two lines to the config.ini file


On office 365 mailboxes are being moved by Microsoft to different servers all the time. This causes the software to restart which is not desirable. It knows how to deal with
those moved mailboxes and a reset is not needed.


How to make public folder calendars visible in OWA 2013.

Install CU10 for exchange 2013, or without CU10 :

  1. You need MS Outlook on the desktop for this. Browse to the group calendar in the public folders tree (you may need to click folder list first)

  2. Right click the Group Calendar that you want to see in OWA and 'add to favorites'

  3. In OWA (refresh with F5) look under "other calendars" to find your group calendar.


Errors in the log file saying: Exchange Web Services are not currently available for this request because none of the Client Access Servers in the destination site could process the request. (Specific to exchange 2013 and office 365.)

  Add the following to the bottom of the config.ini file and restart the egc service.

SMTP="smtp address of the public folder mailbox"

(Replace the quotes and text with the SMTP address of your public folder mailbox where the group calendar public folder is located. Note that this is not the smtp address of the public folder itself.)

You notice that there are meetings or appointments in the group calendars that have no indication of the user name in braquets in front of the subject. You may also notice that some meetings have multiple entries while other meeting items are correct and have all attendee names in just one item.

  The reason for this is that the user created the meeting directly in the group calendar as opposed to their personal calendar. Regular appointments can be created without duplication problems (either with or without the special indicators like #user-name# or * in the subject) but meeting items should only be created from the personal calendar.
There is a way to prevent users from creating meeting items in the group calendar using this macro.

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)

If InStr(Item.MessageClass, "IPM.Schedule.Meeting.Request") > 0 Then
Dim appoint As AppointmentItem
Dim ns As Outlook.NameSpace
Dim cal As Folder

Set ns = Application.GetNamespace("MAPI")
Set cal = ns.GetDefaultFolder(olFolderCalendar)
Set appoint = Item.GetAssociatedAppointment(True)

    If appoint.Parent <> cal Then
        Cancel = True
        MsgBox "please create meetings from your personal calendar"
    End If
End If
end sub

For this to work the code must be copied into the "thisOutlookSession" section of the outlook macro environment.
to get there you go to the "developer" section in outlook. It may not be visible yet.
enable it using this instruction and you will see the option as the top right outlook menu item.
So click Developer, visual basic, project1, thisoutlooksession, paste the macro code, save and close the window.

There is no official method for distributing the macro to other users. If users don't have any macro's you can simply copy your outlook macro file to them. If they do use macro's it will overwrite what they have but not many users have Macro's in their Outlook.
The macro file is in %appdata%\Microsoft\Outlook\VbaProject.otm (you can paste %appdata%\Microsoft\Outlook\ in the windows run box to open that folder)
and the file can be copied to the user's computers from your login script for example. Another method is to change the outlook shortcut for the user into this

outlook.exe /altvba \\myServer\myFolder\myFile.otm You then don't have to distribute the otm file but simply put it on a central server location..


If you also want to notify users that they should not creatie appointment items directly in the group calendar you can implement this macro

Private WithEvents inspectors As Outlook.inspectors

Private Sub inspectors_NewInspector(ByVal Inspector As Inspector)
On Error Resume Next
Dim Item
Set Item = Inspector.CurrentItem

If Item.MessageClass = "IPM.Appointment" Then
Dim folder As folder
Dim explor As Explorer
Set explor = Application.ActiveExplorer
Set folder = explor.CurrentFolder
Dim name As String
name =
Dim message As Boolean
message = False

Select Case name
Case "groupcalendar1 <- change this name to match your group calendar name"
message = True
Case "groupcalendar2"
message = True
Case "Everyone"
message = True
Case "groupcalendar4"
message = True
End Select

If message = True Then
MsgBox "Please do not create items directly in the group calendar"

End If

End If

End Sub

Private Sub Application_MAPILogonComplete()
Set inspectors = Me.Application.inspectors
End Sub