INNER CODE UNIT · TypeScript

bookingsOn

rowboatlabs/rowboat · apps/harbor/packages/server/src/connectors/cal/index.ts:109

async function bookingsOn(api: CalApi, from: string, toExclusive: string, empty: string, heading: string): Promise<string> {
  const me = await api.profile();
  const afterStart = zonedToUtc(`${from}T00:00:00`, me.timeZone).toISOString();
  const beforeEnd = zonedToUtc(`${toExclusive}T00:00:00`, me.timeZone).toISOString();
  const bookings = (await api.bookings({ status: 'upcoming', afterStart, beforeEnd, limit: 50 }))
    .filter((b) => b.start < beforeEnd)
    .sort((a, b) => a.start.localeCompare(b.start));
  if (bookings.length === 0) return empty;
  return [heading, ...bookings.slice(0, 20).map((b) => bookingLine(b, me.timeZone))].join('\n');
}

const today = (tz: string) => dateInZone(new Date(), tz);
const DATE = /^\d{4}-\d{2}-\d{2}$/;

const commands: Command<CalApi>[] = [
  {
    name: 'today',
    summary: "today's bookings",

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…