!!! This Microsoft (MS) Exchange Integration feature is free-of-charge but needs to be separately licensed. Once the information within this document has been verified on your end, please confirm and request the "MS Exchange" option to be enabled on your license from supportATfarmerswife.com. !!!
NOTE: These instructions are created by using a basic Entra ID configuration. It's possible that in addition to these steps, there are other policies, etc. you might need to create or modify.
Use this integration to update user's events from farmerswife 7.1 and later with MS Exchange365 / Office365 user account's calendar.
By using this feature, farmerswife will update the schedule changes to the user's own Exchange Calendar.
The updated Events are read-only in the user's Outlook Calendar.
Users as well as Resources can be configured to use this feature – Resources do not need to have a Web User license enabled, but need a Web Permission Profile assigned which has the setting "Microsoft Exchange Calendar Sync" enabled.
Once this is configured, the Exchange Integration in farmerswife will be using a token from the then existing "Microsoft Entra ID Connector" settings.
Register the Application in Microsoft Entra:
Sign into the Microsoft Entra Admin Center: Microsoft Entra Admin Center.
Navigate to Identity > Applications > App registrations.
Click + New Registration.
Provide the following details:
Name: Enter a descriptive name for your app, e.g. "fwEventsToExchange365UsersOwnCalendarsApp".
Supported account types: Select Accounts in this organizational directory only (MSFT only - Single tenant). If you have specific requirements for other account types please contact supportATfarmerswife.com.
Redirect URI: Leave this blank.
Click Register to create the application.
See more details and screen shots here: farmerswife Entra ID Connector with OpenID Connect integration
Configure API Permissions
After registration, you will be redirected to the application's overview page.
In the left menu, go to API permissions.
Click + Add a permission and select Microsoft Graph.
Choose Application permissions (for server-to-server communication).
Search for and add the following permission:
Calendars.ReadWrite: Allows the app to read and write all users’ calendars.
Click Add permissions.
After adding permissions, click Grant admin consent for [Your Tenant Name].
Confirm your action to grant consent for the entire Tenant.
See more details and screen shots here: farmerswife Entra ID Connector with OpenID Connect integration
Generate and Configure Client Secrets
Go to the Certificates & secrets section in the app registration.
Under Client secrets, click + New client secret.
Provide a description (e.g. "fwEventsToExchange365UsersOwnCalendarsApp Secret") and set an expiration period (e.g., 12 months, 24 months).
Click Add.
Copy the Value of the client secret immediately and save it securely. You will not be able to view it again.
See more details and screen shots here: farmerswife Entra ID Connector with OpenID Connect integration
Note the Application Details
Return to the Overview page of the application registration.
Copy and save the following details:
Application (client) ID: This is your client ID.
Directory (tenant) ID: This is your tenant ID.
Summary of needed info from Entra to be used on fw Server side
From Entra ID | fw Server app > Setup > Users > Microsoft Exchange Settings |
Valid Entra Email | Exchange User Primary Email For Impersonation Test |
From Entra ID > App registrations | fw Server app > Setup > Users > Microsoft Entra ID Connector |
Application ID: | App Client Id: |
Client Secret Value | App Secret Key: |
OAuth 2.0 token endpoint (v2) | Oauth 2.0 Token Endpoint: |
https://graph.microsoft.com | MS GRAPH API Endpoint: |
Configuration fw Server app > Microsoft Exchange Settings
Go to: fw Server app > Setup > Users > Microsoft Exchange Settings:
Enabled: Yes
Web Services Port: 0
Web Services URL: https://
Exchange Admin User To Authenticate With: ... leave empty ...
Password: ... leave empty ...
Debug: Yes (disable after the exchange integration is confirmed to be working)
Exchange User Primary Email for Impersonation Test: ... leave empty ...
Event State: Busy
Time Zone (Only For Exchange 365): (UTC+... this is the fw server app host timezone.
Use MS Entra ID Auth: Yes
Configuration fw Server app > Microsoft Entra ID Connector
Go to: fw Server app > Setup > Users > Microsoft Entra ID Connector:
Enabled: No - Set to "Yes" in order to configure it, once done, this can be disabled again.
App Client Id: 12345678~1234~1234~1234~123456789012
App Secret Key: 12345~1234567890123456789012345678901234
Oauth 2.0 (v1) Token Endpoint:
https://login.microsoftonline.com/abc45678~abc4~abc4~abc4~abc456789012/oauth2/token
MS GRAPH API Endpoint: https://graph.microsoft.com
The fw Client app side configurations:
In the Web Permissions: To grant access Users/Resources need to have a Web Profile assigned that has "Microsoft Exchange Calendar Sync".
In fw Client app > Toolbox > Settings:
In fw Client app > Toolbox > Settings > Web Share Settings > External Calendars / Schedule Changes Email Sendout / XML Export ... the "External Calendars" refers to the Exchange Integration:
- Update Time: Set here the time interval for each update. In production, Every 30 min. is recommended.
- Update Now button, use this button after setting the previously mentioned settings, to trigger the first update.
- Days Before: 0 or 7 . To choose how many days should be synced into Exchange
- Days After: 7, 14, 30, 60, 90, 180
Note: On the MS Exchange / Outlook > Calendar older Events will not be updated, but remain in the state of their last update.
We recommend to first try it out with a small group of users, before rolling it out to all users.
farmerswife "11 events" collection on the Hourline:The same 11 events updated on Outlook Calendar:
Related links which might be useful:
Exchange Online Admin portal: https://admin.exchange.microsoft.com
Entra Portal: https://entra.microsoft.com/
Outlook Calendar: https://outlook.office.com
Microsoft 365 Online login: https://login.microsoftonline.com/