The Calendar Sync takes place around every 1 min.
It will not check for existing events, but will start syncing new events created after correct configuration, i.e. once the new Sync rule is “active”.
Events deleted from synced calendars on “Google Calendar” or “MS Outlook > Calendar” will not get synced again.
Requirements farmerswife:
Licensing: The farmerswife side is free of charge, no licensing needed.
Version: 7.2 Beta 4 and later.
Configuration effort: Around 15 to 30 min. within farmerswife; this depends on how many Calendar Rules you need to configure and how familiar you are with either or both of the two platforms Google Calendar or MS Outlook > Calendar.
Requirements Google Calendar:
Google: Business Account in order to use Google API + Oauth and Access Credentials as a “Super Admin”
Configuration effort: 15 min. and longer due to the “Certificate” creation part.
Requirements EntraID / Outlook:
MS Outlook: Entra ID, Graph API App Registration, Exchange: mailbox registrations and possibly licenses needed, “Super Admin” access on 2 MS platforms (https://entra.microsoft.com/ and https://admin.microsoft.com/).
Understanding Service Accounts on Google & Microsoft Entra ID:
A Service Account is a special type of account used for automated, server-to-server authentication. Unlike user accounts, Service Accounts do not have passwords and instead use cryptographic keys or OAuth tokens for authentication.
In context of the Calendar Sync in farmerswife, a Service Account allows secure programmatic access to manage calendar events on behalf of users or resources.
Service Accounts in Google Cloud Platform (Google Calendar Sync)
For Google Calendar Sync, a Service Account is required to access and manage calendar events via the Google Calendar API.
Key Requirements:
- A Google Business Account (Google Workspace).
- An OAuth 2.0 Service Account created via Google Cloud Console.
- Impersonation permissions to act on behalf of users.
- A private key (JSON file) used to authenticate requests.
How It Works:
- The Service Account is granted permission to access Google Calendar events.
- The Service Account impersonates a real user (Super Admin) to manage calendar events.
- The authentication is done using OAuth 2.0 and a private key.
- Events are synced automatically without requiring a user to log in.
Where to Configure It:
- Google Cloud Console → IAM & Admin → Service Accounts
- Assign Calendar API permissions to allow read/write access.
Service Accounts in Microsoft Entra ID (Outlook Calendar Sync)
For Microsoft Outlook Calendar Sync, a Service Account is required to authenticate with Microsoft Graph API.
Key Requirements:
- A Microsoft 365 account with Exchange Online.
- A Service Account (Azure AD Application) registered in Microsoft Entra.
- Proper API permissions (Application: Calendars.ReadWrite).
- Application Administrator or Global Admin role to grant access.
How It Works:
- The Service Account is registered in Microsoft Entra ID as an App registration.
- It authenticates via Microsoft Graph API using Client ID, Tenant ID, and Client Secret.
- It is granted permissions to read/write calendar data.
- It syncs events without requiring each user to manually authenticate.
Where to Configure It:
- Microsoft Entra Admin Center → Identity → Applications → App registrations
- Assign Graph API permissions to allow access to Outlook Calendar.
- Microsoft Admin 365 > Users & Resources, more info below.
Configuring Calendar Sync Rules in farmerswife
Please use the following steps to start using this new Feature.
Step 1: Enable Calendar Sync
Go to fw Client desktop app > Toolbox > Settings > Server Setup > "Enable Calendar Sync" and check this new setting to enable it:
Step 2: Access the Calendar Sync Setup
Then go to the new Calendar Sync section at the bottom in fw Client app > Toolbox > Settings > Server Setup > Calendar Sync: and click on the new button “Setup”.
Step 3: Create a Sync Rule
On the Calendar Sync Settings window click on the sub-menu icon:
Select one of the following 3 options depending on the to be used Provider!
"New Rule:"
This option is designed for syncing a very limited set of "Room" or "Equipment" Object-specific Event Types like Project Bookings, Task Bookings and Personnel events.
IMPORTANT: farmerswife offers 13 different Event Types which also have different appearance within farmerswife:
On the synced 3rd party Calendars these properties are not supported and the synced events all look the same.
See this comparison example where 11 of the 13 available Event Types are booked on the farmerswife’s Hourline compared to how they show up on Outlook web > Calendar on a users Calendar:
We recommend to focus on first using the here listed examples and keep the configuration as simple as possible!
Provider: Usable with Google Calendar and Outlook Calendar.
"New Rule (Users & Resources):"
This option is designed for syncing all users and Resources (on farmerswife DemoDB called “Suites/Workstations”, “Equipment/Machines”, “Facility”), instead of having to manually select all users and Resources, you can just use this option. And any added or removed Objects get automatically updated.
Provider: Only use with Google Calendar; see more info on below Step 5.
"New Exclude Rule:"
This rule allows to create an exclusion rule for specific Objects or event types, preventing them from being synced to the calendar.
Provider: Only use with Google Calendar; see more info on below Step 5.
Step 4: Configuring a new Sync Rule for Provider: Outlook Calendar
- On the Calendar Sync Settings window > sub-menu icon > select "New Rule":
- Click on the “Select” button set the Provider to “Outlook Calendar”.
- Click on the “0 Selected” button for “Event Types” and from these 13 Event Types:
- Click on Project Booking, Task Booking and Personnel events Inactive, Sick and Vacation one after the other to move them from the Not Selected pane on the left to the Selected pane on the right side and click “OK” to complete the Event type selection:
- Click on the “0 Selected” button for “Objects” and select the Object(s) you wish to sync; in this example the user "Daniel" is selected:
IMPORTANT: See the 3 main uses cases below on how different configuration will show the synced events or the information of Involved Objects in different ways on Outlook > Calendar.
Latest now you need to use configuration information from your MS Entra > App Registration process, in order to populate the "Settings" window with the necessary credentials to authenticate with the Microsoft Graph API:
For detailed configuration info see Appendix: Microsoft Entra
Fill in the:Tenant ID:
Client ID:
Client Secret:
Calendar Owner Email: This refers to the email address associated with the user or resource that “owns” the calendar.
Event Status: Set this either "Busy" or "Free".
Save the rule by clicking OK.
Validate the Outlook Calendar Configuration
Right after properly creating a new Sync rule the Sync Status column will show "Pending":
This will change at the moment you create a first "event" on farmerswife to be synced to the Outlook Calendar.
Create a Task Booking on the user Object "Daniel" with the Calendar Owner Email "daniel@your-entra/exchange/outlook-email.com".
The Calendar Sync automatically takes place around every 1 min.
After the first successful sync it will look like this and show in Sync Status: Synced:
Use the “View” button to see the logs for that specific Sync Rule:
This "Info" pop-up window will also contain "error debug" information.
Use Cases: Calendar Sync in farmerswife and Outlook Calendar
Each Calendar Sync Rule in farmerswife exports events from one or multiple fw objects (users or resources) to a single external Outlook calendar.
There is a 1:1 relationship between a Sync Rule and an Outlook Calendar ID - you cannot sync a rule to multiple Outlook calendars.
Use Case 1: Syncing a Single User’s Calendar
Goal: Sync a farmerswife user’s events to their personal Outlook calendar.
Use Case: Each user gets their own dedicated sync rule to ensure only their Bookings appear in their Outlook account.
Setup:
- Create a Sync Rule per user.
- Provider: Outlook Calendar.
- Objects: Select the user (e.g., “Daniel”).
- Event Types: Project Bookings, Task Bookings, Personnel Events (e.g., Sick, Vacation).
- Calendar Owner Email: The user’s personal Outlook email (e.g., [email protected]).
Outcome: The user sees their scheduled events from farmerswife in their Outlook calendar.
Use Case 2: Syncing Multiple Users or Resources to a Single Shared Outlook Calendar
Goal: Sync events from multiple users or resources into one shared Outlook calendar (e.g., a department-wide calendar).
Use Case: A company wants to see the schedules of all editors, all workstations, or all meeting rooms in one shared calendar.
Setup:
- Create a Sync Rule for multiple users/resources.
- Provider: Outlook Calendar
- Objects: Select multiple fw users or resources (e.g., all editors or all studios).
- Event Types: Choose relevant events (Project Bookings, Task Bookings, etc.).
- Calendar Owner Email: The email of the shared Outlook calendar (e.g. [email protected], [email protected], [email protected]).
Outcome: All selected Objects’ events are visible in one shared Outlook calendar.
Example Scenarios:
- All studio bookings sync into [email protected].
- All editors’ schedules sync into [email protected].
On farmerswife side create a new Calendar Sync > Outlook Calendar Rule per each of the 3 Objects:
Provider: Outlook Calendar
Event Types: Project Booking
Objects: Studio x
Settings > Calendar Owner Email: here use the Email of each Room.
Use Case 3. Syncing a Single Resource’s Calendar (e.g., Room, Equipment, Machine)
Goal: Sync bookings for a specific resource (e.g., Studio 1, Camera 3) into its own Outlook calendar.
Use Case: A dedicated resource calendar allows multiple users to check the availability of a room or machine.
Setup:
- Create a Sync Rule per resource.
- Provider: Outlook Calendar
- Objects: Select one specific resource (e.g., Studio 1).
- Event Types: Project Bookings, Task Bookings.
- Calendar Owner Email: Assign a dedicated Outlook resource calendar (e.g., [email protected]).
Outcome: Users can subscribe to this Outlook resource calendar to see its availability.
Important: Microsoft 365 requires you to create resource mailboxes in Admin Center > Resources > Rooms & Equipment.
Key Takeaways on Syncing with Outlook
1:1 Relation Between Sync Rule and External Calendar.
A Sync Rule can export multiple farmerswife Objects (users or resources) but only to a single Outlook Calendar ID.
Users & Resources Can Be Combined in One Sync Rule.
You can sync multiple users or resources into one shared Outlook calendar if needed.
Each Resource Can Have Its Own Dedicated Calendar.
If preferred, you can sync each resource (e.g., a studio, workstation, or machine) into its own separate Outlook calendar.
IMPORTANT > Not Supported:
One Sync Rule syncing to multiple Outlook calendars.
On farmerswife side create a new Calendar Sync > Outlook Calendar Rule per each of the 3 Objects:
IMPORTANT > work in progress:
These feature request are work in progress and will become available during the next 7.2 Beta versions:
- A "Rule Name" field for fast identification of each Rule.
- Be able to see selected Objects.
- Be able to set Active: Yes/No on a Rule.
- Be able to duplicate a Rule (+ reset some stuff )to be used when multiple similar rules with only Calendar Owner Email change needs to get created.
Microsoft Entra and Microsoft Admin platform configuration
For the new Calendar Sync > Outlook Calendar functionality to work by using the Microsoft Graph API, you need to be able to sign in as a "Super admin" into:
- Microsoft Entra Admin Center:https://entra.microsoft.com/
- Microsoft 365 Admin Center: https://admin.microsoft.com/
Here do an App Registration and configure its Permissions to access users’ calendars.
Register the Calendar Sync > Outlook Calendar Application on Microsoft Entra ID
Sign in to the Microsoft Entra Admin Center
- Sign in here as a "Super Admin": Microsoft Entra Admin Center:https://entra.microsoft.com/
- Navigate to: Identity > Applications > App registrations.
- Click on: + New Registration.
Provide the following details:- Display name: Enter a descriptive name for your app (e.g. "fw-CalendarSync-OutlookCalendar").
- 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.
Configure API Permissions
After registration, you will be re-directed to the Application's Overview page.
- Go to the API permissions section on the App registration page.
- Click on: + Add a permission and select in Microsoft APIs > Microsoft Graph.
- Choose Application permissions (this is required for server-to-server communication).
- Search for and add the following permissions:
Calendars.ReadWrite: Read and write calendars in all mailboxes. - Click on Add permissions.
- After adding this permission, click on Grant admin consent for [Your Tenant Name] then use Yes to confirm your action to grant admin consent for the entire Tenant.
Generate and Configure Client Secrets
- Go to the Certificates & secrets section on the App registration page.
- Then go to the Client secrets section and click on + New client secret.
- Provide a description (e.g., "fw CalendarSync Secret") and set an expiration period (e.g. 12 months or 24 months) and click on Add.
- Copy the Value of the new Client Secret immediately and save it securely; you need this on fw Client app side and you will not be able to view it again after closing your Entra session!
Assign Roles to Grant Calendar Access
To allow a "Service Account" (user or resource) to manage calendars across your organization you need to ensure it has the appropriate access to calendars.
Go to the Microsoft 365 Admin Center: https://admin.microsoft.com/
- Navigate to Users > Active Users > ... you now have multiple options:
- Create a fw Calendae Sync > Outlook Calendar Rule per each user. Used on small set-ups.
- Create a "Service Account" user with a license and with Role: Application Administrator
- Create in
… e.g. “fwOutlookCalendar” … or each specific user or resource Object on entra.
Assign the Service Account the necessary roles (e.g., Global Administrator (DH too strong?) or Application Administrator) if required.
Ensure that the Service Account (find missing info on EntraID) has the necessary Directory Roles (e.g. Application Administrator) to allow proper access.
2025-02-05: => While creating the "service account user” use in “Create new user > Assignments > Role > Application Administrator”
Collect the needed Application Details
Summary:
Calendars.ReadWrite
Type: Application
Description: Read and write calendars in all mailboxes.
Admin consent requested: Yes
Status: Granted for MSFT
<screen shot?>
Return to the Overview page of the application registration.
Copy and save the following details together with the Client Secret Value from the previous step:
- Application (client) ID: This is the fw Client-side "Client ID".
- Directory (tenant) ID: This is the fw Client-side "Tenant ID":
Client Secret:
Calendar Owner Email: This refers to the email address associated with the user or resource that “owns” the calendar.
Configuring new Rules for Provider: Google Calendar
<this part is still under construction>
New Rule (Users & Resources):
This option is designed for syncing all users and Resources (on farmerswife DemoDB called “Suites/Workstations”, “Equipment/Machines”, “Facility”), instead of having to manually select all users and Resources, you can just use this option. And any added or removed Objects get automatically updated.
Provider: Only use with Google Calendar; see more info below.
For example, you could now disable the existing functionality “Google Invites” (if it was in use before) and replace it by doing the following steps:
- Create a “New Rule (Users & Resources)”
- Select “Google Calendar” as Provider.
- Select “Project Bookings” in the “Select Event Types” window.
Click “Settings” for this new rule and tick the checkbox ”Booking Objects Accept/Decline”.
<screen shot creation work in progress>
New Exclude Rule:
This rule allows to create an exclusion rule for specific Objects or event types, preventing them from being synced to the calendar.
Provider: Only use with Google Calendar; see more info below.
- Set the Provider to Google Calendar.
- Choose the desired Event Types.
- Select the Objects you wish to sync.
- Latest now you need to use configuration information from your Google Cloud Service account!
See down below: Appendix: Google Cloud Platform <coming soon>. - Fill in the necessary details:
- Calendar ID: Enter the Google Calendar ID.
- Impersonation Email: Provide the email used to authenticate with Google Calendar.
- Specify whether booking Objects can Accept/Decline Invites by toggling the appropriate check-box.
<screen shot creation work in progress> - Set the Event Status (e.g., "Busy" or "Free").
- Save the rule by clicking OK.