Preconditions
Fixture event has timezone, location, signed ICS secret, calendar link block, and empty-audience segment.
Happy path
Preview calendar providers.
Google, Outlook, Yahoo, and ICS links are visible.
Send calendar email.
Provider URLs use event metadata and signed ICS link.
Download ICS.
Guest click returns a valid calendar payload.
Failure modes
Send blocked on validation failure
Trigger: missing event time or invalid timezone.
Resolution: 400 blocks send and no email leaves.
Bounced recipient tracked and suppressed
Trigger: calendar email bounces.
Resolution: bounce is recorded and suppression honored.
Scheduled-message edit window
Trigger: scheduled calendar mailing edit is too late.
Resolution: 409 PAST_EDIT_WINDOW.
Retry on transient failure
Trigger: provider 5xx.
Resolution: same Idempotency-Key retry and one delivery.
Idempotency-key on test-send
Trigger: test-send double-click.
Resolution: one calendar test email is sent.
Recipient resolution empty
Trigger: calendar audience resolves to zero.
Resolution: 409 NO_RECIPIENTS with empty-audience copy.
Token rendering fallback
Trigger: optional location token is missing.
Resolution: fallback copy renders, calendar links remain valid.
Cancel scheduled before send
Trigger: scheduled calendar email is cancelled.
Resolution: queue drains and audit logs cancellation.
Signed ICS tamper
Trigger: guest changes ICS signature.
Resolution: public ICS endpoint returns 403.
Provider URL encoding
Trigger: event title/location includes special characters.
Resolution: provider URL remains encoded and usable.
Deployed-runtime gap
Trigger: deployed run on 2026-04-29 observed calendar mailing send 409 NO_RECIPIENTS, so ICS round-trip could not be exercised; the probe locks this in until the gap is closed.
Resolution: story expects 409 until deployed calendar send reaches a real recipient.
Stable test attributes
Visibility teeth. Each attribute must be effectively visible when active.
calendar-email-page | Page | Calendar email |
calendar-provider-preview | Preview | Provider links |
calendar-google-link | Preview | |
calendar-outlook-link | Preview | Outlook |
calendar-yahoo-link | Preview | Yahoo |
calendar-ics-link | Preview | ICS |
calendar-email-send-cta | Toolbar | Send |
calendar-email-warning | Page | Validation |
calendar-email-gap-panel | Page | Runtime gap |
Agent test plan
- calendar-email-renders
- calendar-provider-preview
- signed-ics-roundtrip
- deployed-runtime-gap