Fix Outlook & Zoom creating events in UTC (#7283)

* Apply utc offset to time strings

* Zoom, create events in proper time zone
This commit is contained in:
Joe Au-Yeung authored and GitHub committed 2023-02-23 17:18:49 -07:00
1 parent 676254e96b
commit 944ff68463
2 files changed
+6 -3

No files matched your search

@@ -1,5 +1,6 @@
import type { Calendar as OfficeCalendar, User } from "@microsoft/microsoft-graph-types-beta";
import dayjs from "@calcom/dayjs";
import { getLocation, getRichDescription } from "@calcom/lib/CalEventParser";
import { handleErrorsJson, handleErrorsRaw } from "@calcom/lib/errors";
import logger from "@calcom/lib/logger";
@@ -239,6 +240,7 @@ export default class Office365CalendarService implements Calendar {
};
private translateEvent = (event: CalendarEvent) => {
const utcOffset = dayjs(event.startTime, event.organizer.timeZone).utcOffset() / 60;
return {
subject: event.title,
body: {
@@ -246,11 +248,11 @@ export default class Office365CalendarService implements Calendar {
content: getRichDescription(event),
},
start: {
dateTime: event.startTime,
dateTime: dayjs(event.startTime).utcOffset(utcOffset).format(),
timeZone: event.organizer.timeZone,
},
end: {
dateTime: event.endTime,
dateTime: dayjs(event.endTime).utcOffset(utcOffset).format(),
timeZone: event.organizer.timeZone,
},
attendees: event.attendees.map((attendee) => ({
@@ -196,11 +196,12 @@ const ZoomVideoApiAdapter = (credential: CredentialPayload): VideoApiAdapter =>
};
const recurrence = getRecurrence(event);
const utcOffset = dayjs(event.startTime, event.organizer.timeZone).utcOffset() / 60;
// Documentation at: https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meetingcreate
return {
topic: event.title,
type: 2, // Means that this is a scheduled meeting
start_time: event.startTime,
start_time: dayjs(event.startTime).utcOffset(utcOffset).format(),
duration: (new Date(event.endTime).getTime() - new Date(event.startTime).getTime()) / 60000,
//schedule_for: "string", TODO: Used when scheduling the meeting for someone else (needed?)
timezone: event.organizer.timeZone,