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:
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,
|
||||
|
||||
Reference in new issue
Block a user