diff --git a/app/api/calendar/route.ts b/app/api/calendar/route.ts index f6c8e3f..5f64bec 100644 --- a/app/api/calendar/route.ts +++ b/app/api/calendar/route.ts @@ -4,6 +4,12 @@ import { google } from 'googleapis' import * as fs from 'fs' import * as path from 'path' +function nextDayISO(date: string): string { + const d = new Date(`${date}T00:00:00Z`) + d.setUTCDate(d.getUTCDate() + 1) + return d.toISOString().slice(0, 10) +} + function getAuth(readonly = true) { const scopes = readonly ? ['https://www.googleapis.com/auth/calendar.readonly'] @@ -134,11 +140,11 @@ export async function POST(req: Request) { let start: any, end: any if (allDay) { - start = { date } - end = { date } + start = { date, dateTime: null } + end = { date: nextDayISO(date), dateTime: null } } else { - start = { dateTime: `${date}T${startTime}:00`, timeZone: 'Europe/Moscow' } - end = { dateTime: `${date}T${endTime}:00`, timeZone: 'Europe/Moscow' } + start = { dateTime: `${date}T${startTime}:00`, timeZone: 'Europe/Moscow', date: null } + end = { dateTime: `${date}T${endTime}:00`, timeZone: 'Europe/Moscow', date: null } } try { @@ -181,11 +187,11 @@ export async function PUT(req: Request) { let start: any, end: any if (allDay) { - start = { date } - end = { date } + start = { date, dateTime: null } + end = { date: nextDayISO(date), dateTime: null } } else { - start = { dateTime: `${date}T${startTime}:00`, timeZone: 'Europe/Moscow' } - end = { dateTime: `${date}T${endTime}:00`, timeZone: 'Europe/Moscow' } + start = { dateTime: `${date}T${startTime}:00`, timeZone: 'Europe/Moscow', date: null } + end = { dateTime: `${date}T${endTime}:00`, timeZone: 'Europe/Moscow', date: null } } try {