diff --git a/packages/features/settings/outOfOffice/CreateOrEditOutOfOfficeModal.tsx b/packages/features/settings/outOfOffice/CreateOrEditOutOfOfficeModal.tsx index 15d884cf9c..843856a19d 100644 --- a/packages/features/settings/outOfOffice/CreateOrEditOutOfOfficeModal.tsx +++ b/packages/features/settings/outOfOffice/CreateOrEditOutOfOfficeModal.tsx @@ -104,8 +104,8 @@ export const CreateOrEditOutOfOfficeEntryModal = ({ ? currentlyEditingOutOfOfficeEntry : { dateRange: { - startDate: dayjs().utc().startOf("d").toDate(), - endDate: dayjs().utc().add(1, "d").endOf("d").toDate(), + startDate: dayjs().startOf("d").toDate(), + endDate: dayjs().startOf("d").add(2, "d").toDate(), }, offset: dayjs().utcOffset(), toTeamUserId: null, diff --git a/packages/features/settings/outOfOffice/OutOfOfficeEntriesList.tsx b/packages/features/settings/outOfOffice/OutOfOfficeEntriesList.tsx index 7d57c823f6..07f37e6018 100644 --- a/packages/features/settings/outOfOffice/OutOfOfficeEntriesList.tsx +++ b/packages/features/settings/outOfOffice/OutOfOfficeEntriesList.tsx @@ -126,13 +126,14 @@ export const OutOfOfficeEntriesList = () => { data-testid={`ooo-edit-${item.toUser?.username || "n-a"}`} StartIcon="pencil" onClick={() => { + const offset = dayjs().utcOffset(); const outOfOfficeEntryData: BookingRedirectForm = { uuid: item.uuid, dateRange: { - startDate: item.start, - endDate: dayjs(item.end).subtract(1, "d").toDate(), + startDate: dayjs(item.start).subtract(offset, "minute").toDate(), + endDate: dayjs(item.end).subtract(offset, "minute").startOf("d").toDate(), }, - offset: dayjs().utcOffset(), + offset, toTeamUserId: item.toUserId, reasonId: item.reason?.id ?? 1, notes: item.notes ?? undefined, diff --git a/packages/trpc/server/routers/loggedInViewer/outOfOffice.handler.ts b/packages/trpc/server/routers/loggedInViewer/outOfOffice.handler.ts index 43f427ad0c..992c3dea58 100644 --- a/packages/trpc/server/routers/loggedInViewer/outOfOffice.handler.ts +++ b/packages/trpc/server/routers/loggedInViewer/outOfOffice.handler.ts @@ -155,8 +155,8 @@ export const outOfOfficeCreateOrUpdate = async ({ ctx, input }: TBookingRedirect if (existingOutOfOfficeEntry) { throw new TRPCError({ code: "BAD_REQUEST", message: "booking_redirect_infinite_not_allowed" }); } - const startDateUtc = dayjs.utc(startDate).add(input.offset, "minute"); - const endDateUtc = dayjs.utc(endDate).add(input.offset, "minute"); + const startTimeUtc = dayjs.utc(startDate).add(input.offset, "minute").startOf("day").toISOString(); + const endTimeUtc = dayjs.utc(endDate).add(input.offset, "minute").endOf("day").toISOString(); // Get the existing redirected user from existing out of office entry to send that user appropriate email. const previousOutOfOfficeEntry = await prisma.outOfOfficeEntry.findUnique({ @@ -181,8 +181,8 @@ export const outOfOfficeCreateOrUpdate = async ({ ctx, input }: TBookingRedirect }, create: { uuid: uuidv4(), - start: startDateUtc.startOf("day").toISOString(), - end: endDateUtc.endOf("day").toISOString(), + start: startTimeUtc, + end: endTimeUtc, notes: input.notes, userId: ctx.user.id, reasonId: input.reasonId, @@ -191,8 +191,8 @@ export const outOfOfficeCreateOrUpdate = async ({ ctx, input }: TBookingRedirect updatedAt: new Date(), }, update: { - start: startDateUtc.startOf("day").toISOString(), - end: endDateUtc.endOf("day").toISOString(), + start: startTimeUtc, + end: endTimeUtc, notes: input.notes, userId: ctx.user.id, reasonId: input.reasonId,