diff --git a/assets/images/calendar-graphic.png b/assets/images/calendar-graphic.png
new file mode 100644
index 0000000000..668c32968e
Binary files /dev/null and b/assets/images/calendar-graphic.png differ
diff --git a/changes/27458-update-calendar-events b/changes/27458-update-calendar-events
new file mode 100644
index 0000000000..664ce08844
--- /dev/null
+++ b/changes/27458-update-calendar-events
@@ -0,0 +1 @@
+* Update Google Calendar event bodies and relevant previews in the Fleet UI
diff --git a/frontend/pages/policies/ManagePoliciesPage/components/CalendarEventPreviewModal/CalendarEventPreviewModal.tsx b/frontend/pages/policies/ManagePoliciesPage/components/CalendarEventPreviewModal/CalendarEventPreviewModal.tsx
index 3cdfc1b265..a33b0bc37d 100644
--- a/frontend/pages/policies/ManagePoliciesPage/components/CalendarEventPreviewModal/CalendarEventPreviewModal.tsx
+++ b/frontend/pages/policies/ManagePoliciesPage/components/CalendarEventPreviewModal/CalendarEventPreviewModal.tsx
@@ -1,5 +1,7 @@
import React, { useContext } from "react";
+import { TRANSPARENCY_LINK } from "utilities/constants";
+
import { AppContext } from "context/app";
import Modal from "components/Modal";
import Button from "components/buttons/Button";
@@ -76,12 +78,37 @@ const CalendarEventPreviewModal = ({
: policy.description}
- What we'll do
+ Maintenance required
- {showGenericPreview
- ? "During this maintenance window, you can expect updates to be applied automatically. Your device may be unavailable during this time."
- : policy.resolution}
+ {showGenericPreview ? (
+
+ -
+ Click the{" "}
+
+ Fleet
+ {" "}
+ icon in your computer's menu and select{" "}
+ My device
+
+ -
+ Navigate to the Policies tab
+
+ -
+ Follow instructions to resolve any policies marked{" "}
+ {`"No"`}
+
+ -
+ Click Refetch
+
+
+ ) : (
+ policy.resolution
+ )}
@@ -103,7 +130,7 @@ const CalendarEventPreviewModal = ({
) : (
<>
Why it matters and{" "}
- What we'll do are populated by the
+ Maintenance required are populated by the
policy's Description and{" "}
Resolution respectively.
>
diff --git a/frontend/pages/policies/ManagePoliciesPage/components/CalendarEventPreviewModal/_styles.scss b/frontend/pages/policies/ManagePoliciesPage/components/CalendarEventPreviewModal/_styles.scss
index 6dfa54fd34..33382c21eb 100644
--- a/frontend/pages/policies/ManagePoliciesPage/components/CalendarEventPreviewModal/_styles.scss
+++ b/frontend/pages/policies/ManagePoliciesPage/components/CalendarEventPreviewModal/_styles.scss
@@ -61,7 +61,16 @@
align-self: stretch;
&__text__user-text {
- white-space: pre-wrap;
+ ul {
+ padding-left: 20px;
+ margin-top: $pad-xxsmall;
+ }
+ a {
+ color: $core-fleet-black;
+ font-weight: normal;
+ text-decoration: underline;
+ }
+ white-space: pre-wrap;
}
}
diff --git a/frontend/pages/policies/ManagePoliciesPage/components/CalendarEventsModal/CalendarEventsModal.tsx b/frontend/pages/policies/ManagePoliciesPage/components/CalendarEventsModal/CalendarEventsModal.tsx
index 1b0642611a..55b1cfa948 100644
--- a/frontend/pages/policies/ManagePoliciesPage/components/CalendarEventsModal/CalendarEventsModal.tsx
+++ b/frontend/pages/policies/ManagePoliciesPage/components/CalendarEventsModal/CalendarEventsModal.tsx
@@ -15,7 +15,7 @@ import Modal from "components/Modal";
import Icon from "components/Icon";
import { IPaginatedListHandle } from "components/PaginatedList";
import CalendarEventPreviewModal from "../CalendarEventPreviewModal";
-import CalendarPreview from "../../../../../../assets/images/calendar-preview-720x436@2x.png";
+import CalendarPreview from "../../../../../../assets/images/calendar-graphic.png";
import PoliciesPaginatedList, {
IFormPolicy,
} from "../PoliciesPaginatedList/PoliciesPaginatedList";
diff --git a/frontend/utilities/constants.tsx b/frontend/utilities/constants.tsx
index b121b5b948..b97e6c6fba 100644
--- a/frontend/utilities/constants.tsx
+++ b/frontend/utilities/constants.tsx
@@ -62,6 +62,7 @@ export const GITHUB_NEW_ISSUE_LINK =
/** website links */
export const FLEET_WEBSITE_URL = "https://fleetdm.com";
+export const TRANSPARENCY_LINK = `${FLEET_WEBSITE_URL}/better`;
export const SUPPORT_LINK = `${FLEET_WEBSITE_URL}/support`;
export const CONTACT_FLEET_LINK = `${FLEET_WEBSITE_URL}/contact`;
export const LEARN_MORE_ABOUT_BASE_LINK = `${FLEET_WEBSITE_URL}/learn-more-about`;
diff --git a/server/fleet/calendar.go b/server/fleet/calendar.go
index b5edacc676..3b2865e19e 100644
--- a/server/fleet/calendar.go
+++ b/server/fleet/calendar.go
@@ -13,7 +13,10 @@ const (
CalendarBodyStaticHeader = "reserved this time to make some changes to your work computer"
CalendarEventConflictText = "because there was no remaining availability "
CalendarDefaultDescription = "needs to make sure your device meets the organization's requirements."
- CalendarDefaultResolution = "During this maintenance window, you can expect updates to be applied automatically. Your device may be unavailable during this time."
+ CalendarDefaultResolution = (`• Click the Fleet icon in your computer's menu and
select My device
+• Navigate to the Policies tab
+• Follow instructions to resolve any policies marked "No"
+• Click Refetch`)
)
type DayEndedError struct {
diff --git a/server/service/calendar/calendar.go b/server/service/calendar/calendar.go
index dbc7e98876..8d4f64f63a 100644
--- a/server/service/calendar/calendar.go
+++ b/server/service/calendar/calendar.go
@@ -83,7 +83,7 @@ Please leave your device on and connected to power.
Why it matters
%s
-What we'll do
+Maintenance required
%s
`, orgName, fleet.CalendarBodyStaticHeader, conflictStr, host.HostDisplayName, description, resolution), tag
}