# VIP event email status and sends

These operations support private invitation events and invitation-capacity VIP meals,
including breakfasts, lunches, and dinners. The caller must manage the event.

* `GET /api/agents/v1/vip_event_emails/list`: requires `meetup_token`.
  Optionally filter by `client_token`; paginate using `limit` (maximum 100)
  and `offset`. Returns all ten attendee lifecycle types even when unavailable:
  invitation, confirmation, waitlist, cancellation, five_day_reminder, day_before,
  day_of, check_in, survey, and survey_results.
* `GET /api/agents/v1/vip_event_emails/preview`: requires `meetup_token`,
  `client_token`, and `message_type`. Returns the exact stored sent copy or
  current template with send eligibility.
* `POST /api/agents/v1/vip_event_emails/send`: requires the same three fields
  and `confirm: true`. Sends only that attendee's selected unsent email.
  A repeated send returns `email_not_sendable` (HTTP 409); it never resends a
  delivered type. In-progress and unknown outcomes also block retries.

The catalog includes `sent`, `sent_at`, `mail_log_token`, `delivery_state`,
`delivery_label`, `applicable`, `sendable`, `blocked_reason`, and event timezone.
`sent` means provider acceptance, while `delivery_label` separately reports
provider delivery, bounce, or complaint evidence. Invitation sends made externally
remain in the invitation ledger and do not falsely count as a platform email.

Day-before emails may be triggered throughout the previous event-local date,
including 7 PM for an 8 AM breakfast. Automatic delivery normally begins at the
same local time the previous day and expires at event-local midnight.
Day-of emails require the event's local date and close one hour before start.
An 8 AM event has an automatic window from 6 AM until 7 AM, exclusive.
A final timing check runs immediately before the provider call to prevent stale
queued reminders crossing midnight or the advance-notice cutoff.

Invitation, confirmation, and waitlist messages require a future event.
Check-in follow-up requires check-in and the existing follow-up window.
Survey emails require the event to have ended and an open, unanswered survey;
results require available community results and the recipient's email preference.

A named organizer invitation to the same address establishes email eligibility
for that VIP event. It does not change account verification. Bounce, complaint,
workspace email-disable, and applicable subscription rules still apply.
