<style>p { margin: 0; }span.fr-emoticon.fr-emoticon-img { background-repeat: no-repeat !important; font-size: inherit; height: 1em; width: 1em; min-height: 20px; min-width: 20px; display: inline-block; margin: -0.1em 0.1em 0.1em; line-height: 1; vertical-align: middle; } span.fr-emoticon { font-weight: normal; font-family: "Apple Color Emoji", "Segoe UI Emoji", "NotoColorEmoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols"; display: inline; line-height: 0; } blockquote { border-left: solid 2px #5e35b1; color: #5e35b1; margin-left:0; padding-left:5px;}blockquote blockquote{ border-color: #00bcd4; color: #00bcd4;}blockquote blockquote blockquote{ border-color: #43a047; color: #43a047;} table.grid{ border-collapse: collapse;} table.grid td, table.grid th { border: 1px solid #ddd;} .fr-fic.fr-dib{ display: block; margin: 5px auto;}.fr-fic.fr-dib.fr-fir{ text-align: right; margin: 5px 0 5px auto;}.fr-fic.fr-dib.fr-fil{ text-align: left; margin: 5px auto 5px 0;}.fr-fic.fr-dii{ float: none; margin: 5px auto;}.fr-fic.fr-dii.fr-fil{ float: left; margin: 5px auto;}.fr-fic.fr-dii.fr-fir{ float: right; margin: 5px auto;}img.fr-dib.fr-fir { margin-right: 0; text-align: right;}img.fr-dib.fr-fil { margin-left: 0; text-align: left;}img.fr-dib { margin: 5px auto; display: block; float: none;}img.fr-bordered { box-sizing: content-box; border: solid 5px #CCC;}img.fr-shadow { box-shadow: 10px 10px 5px 0px #cccccc;}img.fr-rounded { border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; -moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box;}</style><style>
p {
margin: 0;
}
span.fr-emoticon.fr-emoticon-img {
background-repeat: no-repeat !important; font-size: inherit; height: 1em; width: 1em; min-height: 20px; min-width: 20px; display: inline-block; margin: -0.1em 0.1em 0.1em; line-height: 1; vertical-align: middle;
}
span.fr-emoticon {
font-weight: normal; font-family: "Apple Color Emoji", "Segoe UI Emoji", "NotoColorEmoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols"; display: inline; line-height: 0;
}
blockquote {
border-left: solid 2px #5e35b1; color: #5e35b1; margin-left: 0; padding-left: 5px;
}
blockquote blockquote {
border-color: #00bcd4; color: #00bcd4;
}
blockquote blockquote blockquote {
border-color: #43a047; color: #43a047;
}
table.grid {
border-collapse: collapse;
}
table.grid td,
table.grid th {
border: 1px solid #ddd;
}
.fr-fic.fr-dib {
display: block; margin: 5px auto;
}
.fr-fic.fr-dib.fr-fir {
text-align: right; margin: 5px 0 5px auto;
}
.fr-fic.fr-dib.fr-fil {
text-align: left; margin: 5px auto 5px 0;
}
</style><p><strong>In this guide we will cover:</strong></p><p><strong>- What is the Google Calendar Integration?</strong></p><p><strong>- Key Details</strong></p><p><strong>- Google Configuration </strong></p><p><strong>- Halo Configuration</strong></p><p><strong>- Deprecated Method </strong></p><p><br></p><p><br></p><p><strong><span style="font-size: 14pt;">What is the Google Calendar Integration?</span></strong></p><p>The Google Calendar integration can be used to link agent calendars within Halo to their Google calendar. This allows you to import appointment from Google calendars into Halo. </p><p><br></p><p><strong><span style="font-size: 14pt;">Key Details</span></strong></p><p>The new API Method dropdown for the Google Calendar integration uses the read and write capabilities of a service account in order to pull in appointments/ recurring appointments from Agent's calendars. This can be set on a recurring schedule via the Halo Integrator. The NHServer method is deprecated and should not be used. </p><p><br></p><p>Service accounts: If you are building an application that needs to access Google Calendar data on behalf of your own application rather than individual users, you can use service accounts. With service accounts, you can authenticate your application using a private key file instead of user credentials. This service account setup is required for the Halo Integrator connection type.</p><p><br></p><p><strong><span style="font-size: 14pt;">Google Configuration </span></strong></p><p><strong><span style="font-size: 12pt;">Project Setup </span></strong></p><p>Navigate to the Google Cloud Console <a data-fr-linked="true" href="https://console.cloud.google.com/">https://console.cloud.google.com/</a>, and create a new project.</p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjYxYWUwMjc0LTM5MGItNGY5Ni1hYTI5LWQ4ODI5ZWU5ZTk0OCJ9.5JNFeghWDB2I2V1bt0FpcUUF_TglGwGwRvTr_Y-Ms4A" class="fr-fic fr-fil fr-dib" width="684" style="width: 686px; height: 367.175px;" height="367"></p><p><strong><span style="font-size: 10pt;">Fig 1. Google Cloud Console.</span></strong></p><p><br></p><p>Select the new project.</p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjJlZTBiZDAzLTMxYWMtNDZlNi1hYWQxLTNkMmZmNjk1Y2IzYyJ9.EKj7NCECBC2oSKc_D6IOWgHXk02lZrav5V5MyFYvL-s" class="fr-fic fr-fil fr-dib" width="899" style="width: 901px; height: 565.305px;" height="565"><strong><span style="font-size: 10pt;">Fig 2. Selecting the new project.<br></span></strong></p><p><br></p><p>Enable the Google Calendar API.</p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3N2YzZmM0LWExZjItNGMxNS1iNmM2LWU5YjdmNTExZTEwZSJ9.qcsv9-d4WorbPtSajnqhpiZM7YkWW4XAZomYvnZ1Mvw" class="fr-fic fr-fil fr-dib" width="839" style="width: 841px; height: 427.992px;" height="428"></p><p><strong><span style="font-size: 10pt;">Fig 3. Google calendar API</span></strong><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImZkMjlkMGE4LTE0YzgtNGM4ZS04OTY1LTBlMmVlNWQ4NTUyMSJ9.b3oAynn4UW3pGat39rRdR6Snt_gA6F41QSdW3MmHotg" class="fr-fic fr-fil fr-dib" width="641" style="width: 643px; height: 341.695px;" height="342"></p><p id="isPasted"><strong><span style="font-size: 10pt;">Fig 4. Enabling the API.</span></strong></p><p><br></p><p>Now you will need to create credentials for a service account. To do this, first click on "Create Credentials" in the Google Calendar API area.</p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJhY2E5YjFiLTFmNTAtNDEyMS1iMDkzLWEwYTg1NTYyYjZkMCJ9.t3nepkk5RpHIeTxB46Cfs1CFE8AOelc3XkJ-UMrKXzU" class="fr-fic fr-fil fr-dib" width="1375" style="width: 1377px; height: 468.782px;" height="469"><strong><span style="font-size: 10pt;">Fig 5. Create credentials.</span></strong></p><p><br>Then you will prompted to choose which credential type to use, choose the Application Data option (this will prompt you to create a service account).</p><p><img data-fr-image-pasted="true" src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImZhNjBiZDdjLTJiYzUtNDU2Yy1hMjRhLTIzYjIxNGY4YTI0YiJ9.jX1ScvPe1x7iqCAVi4slnXlfV0EoPGDipv-GZ8v325o" width="763" height="500" style="box-sizing: inherit; border-style: none; cursor: pointer; padding: 0px 1px; user-select: none; text-align: left; color: rgb(0, 0, 0); font-family: sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; width: 765px; height: 500.492px; max-width: none !important;" id="isPasted" class="fr-fil fr-dib"><br><strong><span style="font-size: 10pt;">Fig 6. Application data credential type </span></strong></p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImYxZTUwM2I3LWYzMGYtNGMzMy1iNzNmLTg5OGI5OTVjM2ZlOSJ9.Epy1g9Hpt0_WpG0DhLZ97VucT7q-rI2rP32-laVPA9E" class="fr-fic fr-fil fr-dib" width="695" style="width: 697px; height: 511.913px;" height="512"><strong><span style="font-size: 10pt;">Fig 7. Creating a service account.</span></strong></p><p><br>Add in the role "Service Account Token Creator".</p><p><br><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY4MjNhZDM4LTEyOTItNGUyOC04NDMxLTZiNzQ4MTAxNjBjMCJ9.HJXVIAmsZyEBDnGE_6YhGFojWMoIc1n-uAJlKSjZW0A" class="fr-fic fr-fil fr-dib" width="777" style="width: 779px; height: 576.773px;" height="577"><strong><span style="font-size: 10pt;">Fig 8. Adding the role.</span></strong></p><p><br></p><p><span style="font-size: 11pt;">Then save the account.<br></span></p><p><strong><span style="font-size: 10pt;"><br></span></strong></p><p>Now head to menu > IAM and Admin > service accounts > select the service account you have just created. Here, you will see the details of this account. Copy the email address of this service account. </p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjI5NWQxNjY2LWNkMGYtNDI2ZC1iYTJlLWUzNmIxM2M1N2VhYyJ9.mjPsMXgWQQxl6dzUMxHUEhIFX-3GMjYmtXOw8vPyCbY" class="fr-fic fr-fil fr-dib" width="1233" style="width: 1235px; height: 700.157px;" height="700"></p><p><strong><span style="font-size: 10pt;">Fig 9. Service accounts menu.</span></strong></p><p><br></p><p>Now you will need to share the calendar with the service account. As a service account doesn’t have calendar, we must share the actual user calendar with the service account to send an event. Navigate to an actual user account email calendar, find a calendar in the bottom left you would like to share > hover over it and click the three dot menu > settings and sharing . Here, scroll to the 'shared with' section and add people and groups. Enter the email ID of the service account you created. Ensure this is shared with the permission 'Make changes to events'.</p><p><br><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6Ijc5Zjc1ZjNhLWJmY2MtNDNlMi1iNDgzLWJjYzAyOTU1NDZiNyJ9.pgdG5X7k0OPtfu7c_isLr7Zrjf-_zrEQ8DjRnahmpoc" class="fr-fic fr-fil fr-dib" width="1213" style="width: 1215px; height: 663.564px;" height="664"><strong><span style="font-size: 10pt;">Fig 10. Add people and groups.</span></strong></p><p><br></p><p>Add in the service account email address.<br><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImVhNmQzYjMwLTI1ZjMtNGJkMC1iOTRmLWQ2ZjdkZGEzOGRiNyJ9.Hm3i4skh9vo2L4vmrA5cce88MNZ9ql0Lh2rEsAY4qhs" class="fr-fic fr-fil fr-dib" width="617" height="292"></p><p><strong><span style="font-size: 10pt;">Fig 11. Adding the email.</span></strong></p><p><br></p><p><strong><em>IMPORTANT: The Agent's calendar that you are connecting to, must correspond to the email address of an admin agent in Halo, without this the calendar will not connect.</em></strong></p><p><br></p><p><strong><span style="font-size: 12pt;">Enable Domain Wide delegation<br></span></strong></p><p>Domain-wide delegation requires Google Workspace admin credentials to enable. It is required for the Google Calendar API because it allows a service account, which is an account representing an application rather than an individual user, to access the resources of a user within a G Suite domain.</p><p><br></p><p>By using domain-wide delegation, the service account can act on behalf of users within the domain and access their calendars. This is crucial in scenarios where an application needs to manage and interact with calendars of multiple users within an organization.</p><p><br></p><p>Navigate to <a data-fr-linked="true" href="https://admin.google.com/">https://admin.google.com/</a> and login with admin credentials. Go to Security > Access and Data Control > API Controls > Domain-wide Delegation > MANAGE DOMAIN WIDE DELEGATION.</p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJiOThjMmNhLTQxYzEtNGIzNS1iOTZmLTIzNTQyMjBmMjFmOCJ9.4ysMEKBG37sFPDxNXhDoL-7d_PVZDucN-h2_hnF0MK4" class="fr-fic fr-dii" style="width: 1518px; height: 673.221px;" width="1516" height="673"><br><strong><span style="font-size: 10pt;">Fig 12. API Controls menu.</span></strong></p><p><br></p><p>Add a new Client by clicking "Add new". Get client ID from service account. Unique ID available under the service account</p><p><br></p><p><strong>Add all the below scopes by copying and pasting and then authorize:</strong></p><p><br></p><ul><li style="font-style: italic;"><em>https://www.googleapis.com/auth/calendar</em></li><li style="font-style: italic;"><em>https://www.googleapis.com/auth/calendar.events</em></li><li style="font-style: italic;"><em>https://www.googleapis.com/auth/admin.directory.resource.calendar</em></li><li style="font-style: italic;"><em>https://www.googleapis.com/auth/userinfo.profile</em></li><li style="font-style: italic;"><a data-fr-linked="true" href="https://www.googleapis.com/auth/userinfo.email" id="isPasted"><em>https://www.googleapis.com/auth/userinfo.email</em></a></li></ul><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjFkZmRmZjc4LThkMWEtNDFjMy1iMWZkLTFlNzdjMmVkNmQyYyJ9.A-wnosmSyvyiJ2sSNraVrDiJyCrccdTcS87zIibVLG4" class="fr-fic fr-fil fr-dib" width="708" height="616"><strong><span style="font-size: 10pt;">Fig 13. Adding a client ID.</span></strong></p><p><br></p><p><span style="font-size: 11pt;">Once you have added all the scopes hit 'authorise'. </span></p><p><br></p><p><span style="font-size: 12pt;"><strong>Generate Service account Key</strong></span><strong><span style="font-size: 12pt;"><br></span></strong></p><p>Head back to the Google cloud console and add a Key to the Service Account. IAM & Admin > Service Accounts > *your service account* > Keys tab. </p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6Ijk5NmYzM2E4LThjNjYtNDRhNC05YWYyLWU5YzI1MzdiYTI0ZCJ9.0Ih319kPulzPCwlIkTogZJSxkNLfU0NvcJXGVzF29aM" class="fr-fic fr-fil fr-dib" width="1010" style="width: 1012px; height: 440.33px;" height="440"></p><p><strong><span style="font-size: 10pt;">Fig 14. Add key to service account</span></strong></p><p><br></p><p><span style="font-size: 11pt;">Choose JSON as the key type. <br></span></p><p><br><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6Ijk0ZWI2YWE4LTlkNTAtNGU2ZS1hM2Q2LTczOTIxOTlkM2M4MCJ9.7BD3VRaE0ML8IAoU9l9bmWyfRsx4HiyYfCgYxBx4aHc" class="fr-fic fr-fil fr-dib" width="564" height="328"><strong><span style="font-size: 10pt;">Fig 14. Creating a private key.</span></strong></p><p><br>It will download the JSON file with the Service Account Private Key and other details. <br><br></p><p>Grab the JSON from the file which has been downloaded (this can be viewed in a notepad) (this may be easier to view in a code editor such as vs code). Your JSON will look something like below:<br><br><em>{ <br> "type": "service_account",<br> "project_id": "xxx-1231",<br> "private_key_id": "xxx",<br> "private_key": "xxx",<br> "client_email": "test.iam.gserviceaccount.com",<br> "client_id": "xxx",<br>"auth_uri": "https://accounts.google.com/o/oauth2/auth",<br>"token_uri": "https://oauth2.googleapis.com/token",<br>"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",<br>"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/test.iam.gserviceaccount.com",<br> "universe_domain": "googleapis.com"<br>}</em></p><p><br></p><p><strong><span style="font-size: 14pt;">Halo Configuration</span></strong></p><p><span style="font-size: 11pt;">Head into Halo, go to configuration > integrations > google calendars, enable the module using the '+' icon. </span></p><p><span style="font-size: 11pt;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImYwNzlhMmI3LTQzOGItNGJhYS05OGY0LWUyZTFmN2JkZWRiYSJ9.OGfKD1erqBk-92EyKdXWqLyd43VmhUiQDiXvi-BjAxY" class="fr-fic fr-fil fr-dib" width="183" height="150"></span><strong><span style="font-size: 10pt;">Fig 15. Enable integration module</span></strong></p><p><br></p><p>Here, choose the API Method to be 'Halo integrator'. Then paste the JSON we just obtained into the 'Google Service User JSON' field. </p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImQ3NGZlYTE2LWI4ODYtNGYyMi04ZTJiLWM4MWVlZTdmY2RkOSJ9.a1FtvBlONQoapeE192wJueKFBZJSoNHBD5aviiXdoa4" class="fr-fic fr-fil fr-dib" width="1240" style="width: 1242px; height: 456.181px;" height="456"></p><p><br><strong><span style="font-size: 10pt;">Fig 16. Adding the JSON and API method.</span></strong></p><p><br></p><p><span style="font-size: 11pt;">Once pasted, hit 'Sign in with Google' to connect. Once connected additional configuration options will appear. </span></p><p><span style="font-size: 11pt;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjdjMGI5MGQ5LWFkYjEtNGUwOC05ZGFkLTE2Y2U4YWYxZDZkNiJ9.VdTpNC-ytAJiK6vJTBEjwxPrmnlJV9j9Qc5gAejxwMk" class="fr-fic fr-fil fr-dib" width="1175" style="width: 1177px; height: 717.643px;" height="718"></span></p><p><strong><span style="font-size: 10pt;">Fig 17. Configuration after connecting </span></strong></p><p><br></p><p>To check which agents calendars are accessible hit 'Update Calendar access', this will provide a list of all connected agents. </p><p><br></p><p><em><strong>Note: Agents will only show here if the email against their agent account matches the email against their google account (used for calendars). If the emails do not match they will not show in the list here but appointments will still be imported as the service account still has access to all calendars in the directory. </strong></em></p><p><br></p><p>Now you will have the connection to Google and all connected calendars will pull through to Halo. You can connect the Halo Integrator to the calendar so that appointments are pulled through on a recurring schedule.</p><p><br><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6Ijg2YWY0ZWMyLWY5MzktNGZmOS1hNWViLTYzYzczNjEzNjM5ZSJ9.isQGOupLhRCipfVXa1FNUPXISGFspOzq3pLSw8ad95k" class="fr-fic fr-fil fr-dib" width="1218" style="width: 1220px; height: 311.937px;" height="312"><strong><span style="font-size: 10pt;">Fig 18. Enabling the Halo integrator.</span></strong></p><p><strong><span style="font-size: 10pt;"><br></span></strong></p><p>Appointments and recurring appointments can also be imported manually using the 'Import Appointments' and 'Import Recurring Appointments' buttons.</p><p><br><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImUwOTFjYmE4LWQ0NDgtNDk0OC1hMzEzLTFlOWY3MTdlZjcwNCJ9.gPKt691oCoQ6RwIGUk2oE7uqLELfk2XBUNgmvAub6Qo" class="fr-fic fr-fil fr-dib" width="1219" style="width: 1221px; height: 193.484px;" height="193"><strong><span style="font-size: 10pt;">Fig 19. Importing appointments.</span></strong></p><p><br></p><p>If appointments are out of the agents working hours, you will be given a popup not during the import: "Done - Please note that part or all of this Appointment falls outside the Agents working hours."<br><br></p><p>You will then see the imported appointments on the agents calendar.</p><p><br><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjdkYjIyOGJmLTAwZWQtNDZhMC05ZTAxLTIwZTk4NWY1YzQwNiJ9.aLecS5dIYtLRFKw2yxwnJfY7CByDj4sj-_oQDpa_BXo" class="fr-fic fr-fil fr-dib" width="1214" style="width: 1216px; height: 661.214px;" height="661"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjEzNTJiZGJmLThkMWEtNDk1YS04ZWVlLTRmYmI3ODc5MTJlZCJ9.o8DXjYdmVZASDvFqEESp27l73stOxiZAyxFJaT_2Zls" class="fr-fic fr-fil fr-dib" width="2"></p><p><strong><span style="font-size: 10pt;">Fig 20. Imported appointments.</span></strong></p><p><br></p><p><span style="font-size: 14pt;"><strong>Deprecated Method</strong></span></p><p id="isPasted"><strong><span style="font-size: 12pt;">General Configuration </span></strong></p><p>To enable the Google Calendar integration in Halo, go to Configuration > Integrations > Communications, and enable the module. Once the module has been enabled, click the menu icon for the module to begin configuring it.</p><p><br></p><p><strong><span style="font-size: 11pt;">Setting up a Google Calendar App</span></strong></p><p>Login to https://console.cloud.google.com</p><p><br></p><p>Select New Project from the Select a Project menu or Create Project from the Dashboard.</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjA5YWQ2YzE5LWIzOWQtNGU2Zi05OWQ3LTgzYzZhMTM0ODYyNCJ9.XrDcIRm4eVHXgxajNef9LR3iRVeSG2-H4EGiafQ45co" class="fr-fic fr-fil fr-dib" style="width: 501px;" width="501" height="237"></p><p><strong><span style="font-size: 10pt;">Fig 21. Selecting a project.</span></strong></p><p><br></p><p>Give the project a name and create it. Search for and select API and Services.</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6Ijk4OWU3OTFjLWFiMGEtNGFiNy1iZTIxLWQxZjk2MWY4YmUyOCJ9.ouw0T5Zt5b1meVpOiV1ip5yTGdfa5AA2ycsU96Yv_ns" class="fr-fic fr-fil fr-dib" style="width: 498px; height: 192.054px;" width="498" height="192.054"></p><p><strong><span style="font-size: 10pt;">Fig 22. Finding the API and Services area.</span></strong></p><p><br></p><p>Select Enable APIS and Services.</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImU1MDQ0ZGQyLWU0YzMtNGJmZS1iZThhLTQ5YzRlMzMxMDI4MCJ9.swZegsSCvSI40Td4W2j6IncSOGPQYP7y69mAQqS4pes" class="fr-fic fr-fil fr-dib" style="width: 458px; height: 180.099px;" width="458" height="180.099"></p><p><strong><span style="font-size: 10pt;">Fig 23. Enabling API and services.</span></strong></p><p><br></p><p>Search for Google Calendar API and enable the API for use.</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjNhZjBiZDJjLWUwNjktNDQzMS1hOGI0LWU0YWMzYTM2NWM5YSJ9.DYh-8fkfcoHhDW1R6Om0XYJhWr7B5iscAgyDgkTgsTc" class="fr-fic fr-fil fr-dib" width="419" style="width: 419px; height: 279.132px;" height="279.132"></p><p><strong><span style="font-size: 10pt;">Fig 24. Enabling the API.</span></strong></p><p><br></p><p>Go to OAuth consent screen.</p><p><br></p><p><strong><span style="font-size: 11pt;">Workspace user client setup</span></strong></p><ul><li>Select internal.</li><li>Add email information.</li><li>Click save and continue</li><li>Click add scope.</li><li>Add Google calendar API scope.</li></ul><p><br></p><p><strong><span style="font-size: 11pt;">Non-workspace user client setup</span></strong></p><ul><li>Select external.</li><li>Add email information.</li><li>Click save and continue</li><li>Click add scope.</li><li>Add Google calendar API scope.</li></ul><p><br></p><p>Because this is an external app you will now need to add all mailboxes which you want to be accessed into the Test Users section</p><p><br></p><p><strong>Create Credentials</strong></p><ul><li>Go to credentials.</li><li>Click Create Credentials</li><li>Select OAuth client ID.</li><li>Select Web Application for the application type and enter "https://auth.haloservicedesk.com/externalauth" (change this depending on the version of Halo you are using, i.e. if using HaloITSM rather than HaloServiceDesk, use link "https://auth.haloitsm.com/externalauth") as the authorised redirect URI. </li><li>Once created copy the Client ID and Client secret. These will be needed when setting up the Web App connection.</li></ul><p><br></p><p><strong><span style="font-size: 12pt;">Setting up in Halo</span></strong></p><p><strong>Connect to Google.</strong></p><ul><li>Go to Config > Integrations > Google Calendars.</li><li>Add the client id copied from the previous step</li><li>Add the client secret copied from the previous step.</li><li>Click Sign In With Google to authorise access to the app.</li></ul><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjQ2NmJhOWE1LWE0ZTctNDZkZi05OWE5LTM3NTczMGFkOGM3NSJ9.jAzqKzoDnJtfdXj8GP8cVXI_wWPPzpH46Gk280cdWxk" class="fr-fic fr-fil fr-dib" style="width: 420px;" width="420" height="231"></p><p><strong><span style="font-size: 10pt;">Fig 24. Connecting to Google.</span></strong></p><p><br></p><p>Once completed you should be redirected back to the Google calendar integration setup screen. If the authorisation was successful the Sign In button will have changed to a disconnect button.</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImU1YmY1NGI0LTU3NWQtNGUyYS05M2FmLTFhMDViOGRjY2MyZCJ9._LxTQZo9S4MqNarLll4owcVBRA9CjnVEPVZ1Rykk0oU" class="fr-fic fr-fil fr-dib" style="width: 502px;" width="502" height="508"></p><p><strong><span style="font-size: 10pt;">Fig 25. Successful connection.</span></strong></p><p><br></p><p><strong>Agent calendars </strong></p><p>Use the check calendars option to confirm which of your technicians calendars are accessible via your connected account. When clicked, a list of all technicians calendars that are accessible will be displayed. If you cannot access any technician calendars, you will be notified of this.* </p><p><br></p><p><strong>On-Prem Customers using NHServer </strong></p><p>If you have your own On-Prem version of Halo and are using NHServer to process mail, please contact the Halo support team for assistance enabling the appointment sync in NHServer. You must be using NHServer version 13.18.01 or above for this feature to work.</p><p><br></p><p><em><strong>Note: For the authorizing account, ensure that the account has shared access such that it can read and create calendar entries in the individual agents accounts from within Google. This can be configured from within Google Calendars itself, where you define shared calendar access between agent accounts. The authorizing account will also need to 'subscribe' to each of the agent's calendars, so they they appear in the list of selectable calendars on the left, when the authorizing account views their calendar. Case will also need to be matched between the Gmail email address and the Halo agent email address (usually all lowercase).</strong></em></p><p><br></p><p id="isPasted"><strong><span style="font-size: 12pt;">Adding Additional Agents to an Appointment</span></strong></p><p>When the Google Calendar integration is enabled, additional agents assigned to a ticket will have their email auto-populated in the "Other Attendees" field alongside the main assigned agent when creating an appointment from that ticket.</p><p><br style="box-sizing: inherit;"></p><p>For instance here, Leah is the assigned agent, and Amir is the additional agent, and both have populated here.</p><p><br style="box-sizing: inherit;"></p><p><img data-fr-image-pasted="true" src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImM4MjE2ODc2LTA3MmItNDMyYi1hOWRkLWY2ZGM2NWMyMzg4YyJ9.F3ntRjLYtlXD2A_cDQl7hl4UaQjeLztjs3ieGvIhy5o" width="525" height="440" style="box-sizing: inherit; border-style: none; text-align: left;" class="fr-fil fr-dib"></p><p><strong><span style="font-size: 10pt;">Fig 26. Additional agent invite.</span></strong></p>