← Files AnyQRARCHIVED FILE
skills/calendar-invite-qr-planner/SKILL.md
2.38 KB · Nov 2, 2026 · 12:18 UTC
--- name: calendar-invite-qr-planner description: Turn event details into a reviewed calendar-invite QR code. Use when the user wants a meeting, appointment, class, performance, reservation, or all-day event encoded for calendar import and needs help resolving missing dates, end times, locations, or timezone ambiguity. Do not use to write directly to a calendar account or promise recurrence, reminders, organizer fields, or attendee invitations. --- # Calendar Invite QR Planner ## Gather the event details Collect: - Summary. - Optional description and location. - Start. - End. - Whether the event is all-day. Ask only about details whose ambiguity could put the event on the wrong date or time. Do not invent a duration, timezone, or end date without a clear contextual basis. ## Normalize the schedule 1. Use `YYYY-MM-DD` values for all-day events. 2. Treat an all-day `DTEND` as exclusive. When the user states an inclusive final day, encode the following date as the end and explain that representation in the preview. 3. Use ISO-like local values such as `YYYY-MM-DDTHH:mm` for floating local times. 4. Use a trailing `Z` only when the event time is explicitly UTC or has been unambiguously converted to UTC. 5. If attendees may be in multiple timezones and the user supplied only a named timezone, clarify how to represent it because the app schema has no named-timezone field. 6. Verify that the end is after the start. Resolve contradictions before creating the QR. ## Create the calendar QR Call `qr-code` with only `qrCodeInformation` using: - `kind: "calendar"` - The normalized `summary`, `description`, `location`, `start`, `end`, and `allDay` fields. - `encodedText: ""` so the app creates the calendar payload. Treat returned `structuredContent.qrCodeInformation` as authoritative. ## Deliver the result Provide a plain-language preview containing: - Event title and location. - Start and end as the user should understand them. - The assumed timezone behavior: UTC, floating local time, or all-day. - Any omitted optional fields. - Confirmation that the widget is editable and exportable. ## Boundaries Do not claim the event was added to a calendar, invitations were sent, availability was checked, or reminders were scheduled. The supported payload has no organizer, attendee, recurrence, alarm, or named-timezone field; do not hide those values in another field as if they were structurally supported.
SHA-256: de76f4c9b31659325fbdf177fa1721ef2bbdf0cf8d24ee331e4d64bcf2e01fc0