▍ humdrum codex / soft
743 B raw
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import { z } from "zod";

export const CalendarConfig = z.object({
  mode: z.enum(["local", "ics"]).default("local"),
  calendars: z.array(z.string()).default([]), // local Calendar.app names to include
  urls: z.array(z.string().url()).default([]), // ICS URLs (ics mode)
  daysAhead: z.number().int().min(1).max(60).default(7),
});
export type CalendarConfig = z.infer<typeof CalendarConfig>;

export const CalendarPayload = z.object({
  events: z.array(
    z.object({
      summary: z.string(),
      start: z.string(),
      end: z.string().nullable(),
      location: z.string().nullable(),
      calendar: z.string().nullable(),
      allDay: z.boolean(),
    }),
  ),
});
export type CalendarPayload = z.infer<typeof CalendarPayload>;