// Meetings & calendar module function MeetingsPage({ persona }) { const [selected, setSelected] = React.useState(null); return (
Calendar

Meetings & 1:1s

Your first week of meetings, automatically scheduled by People Ops. Decline anything that doesn't work — we'll find another time.

Week of May 11 – May 15

All times in Pacific Time (PT)

{["8 AM","9","10","11","12 PM","1","2","3","4","5","6"].map((t, i) => (
{t}
))}
{MEETINGS.map((d, di) => (
{d.day}
{d.date.split(" ")[1]}
{d.items.map((m, mi) => { const top = parseHour(m.time) - 8; const bot = parseHour(m.end + (m.end.includes("M") ? "" : (m.time.includes("PM") ? " PM" : " AM"))) - 8; const dur = bot - top; return (
setSelected({ ...m, dayLabel: d.day + " " + d.date })} >
{m.title}
{m.time}
); })} {/* hour rules */} {Array.from({ length: 11 }).map((_, i) => (
))}
))}
{selected ? setSelected(null)}/> : }
); } function CalStat({ label, value, sub, tone }) { return (
{value}
{label}
{sub}
); } function parseHour(s) { // accepts e.g. "11:00 AM" "12:30 PM" "1:30" — defaults AM/PM by surroundings. const m = s.match(/(\d{1,2}):?(\d{2})?\s*(AM|PM)?/i); let h = parseInt(m[1], 10), min = parseInt(m[2] || "0", 10); const ap = (m[3] || "").toUpperCase(); if (ap === "PM" && h !== 12) h += 12; if (ap === "AM" && h === 12) h = 0; if (!ap && h <= 7) h += 12; // if it's like "1:30" assume PM in our day return h + min / 60; } function MeetingDetails({ m, onClose }) { return (
{m.dayLabel} · {m.time} – {m.end}

{m.title}

With {m.with}
{m.loc === "Zoom" ? : }
{m.loc}
RSVP: {m.status === "accepted" ? "Accepted" : "Tentative"}
Agenda
  1. Welcome & introductions
  2. Team structure and current priorities
  3. Your goals for the first 30 days
  4. Communication norms & 1:1 cadence
  5. Q&A — anything on your mind
{m.loc === "Zoom" && }
); } function UpcomingHighlight({ m, day }) { return (
Coming up next
{m.time} – {m.end}

{m.title}

1:1 with {m.with}
Zoom · meet.convoso.com/aarav
We'll remind you 5 minutes before
); } function RsvpCard() { const pending = [ { title: "Team welcome lunch", day: "Mon · 12:30 PM", host: "Aarav Mehta" }, { title: "Lunch & Learn · Convoso AI", day: "Wed · 12:30 PM", host: "Whole company" }, { title: "Friday social", day: "Fri · 4:30 PM", host: "Whole company" }, ]; return (
Pending RSVP
{pending.map((p, i) => (
{p.title}
{p.day} · {p.host}
))}
); } window.MeetingsPage = MeetingsPage;