[{"data":1,"prerenderedAt":2152},["ShallowReactive",2],{"$fp-rOOnce7HPNUtPcdzeThQtCkMXnKIn3xRULGti4dac":3,"$fsexf-vCxdSb06sW5uDHiWGgOsb2WEszNSePSpVQHY5U":175},{"blueprints":4},[5,22,38,51,63,75,84,94,106,116,124,134,146,154,165],{"slug":6,"title":7,"summary":8,"category":9,"logo":10,"cover":11,"tags":12,"stats":15,"publishedAt":21},"bookmark-manager","Bookmark Manager","A private library of links you save yourself, from browser, phone or a browser's export, filed and tagged, with your own AI agent suggesting tidying.","productivity","\u002F_blueprints\u002Fbookmark-manager.logo.svg","\u002F_blueprints\u002Fbookmark-manager.cover.webp",[13,14],"agentic","single-user",{"entities":16,"capabilities":17,"journeys":18,"scenarios":19,"rules":20},7,15,3,37,18,"2026-10-07T14:20:29+03:00",{"slug":23,"title":24,"summary":25,"category":26,"logo":27,"cover":28,"tags":29,"stats":33,"publishedAt":21},"code-snippet-sharing","Code Snippet Sharing","Keep code snippets with their language, description and tags, share them by unlisted link or in public, fork others' public snippets, and revise code with kept history.","dev-tools","\u002F_blueprints\u002Fcode-snippet-sharing.logo.svg","\u002F_blueprints\u002Fcode-snippet-sharing.cover.webp",[30,31,32],"ai-assisted","multi-user","public",{"entities":34,"capabilities":35,"journeys":36,"scenarios":37,"rules":35},4,9,1,26,{"slug":39,"title":40,"summary":41,"category":9,"logo":42,"cover":43,"tags":44,"stats":45,"publishedAt":50},"content-feed-reader","Content Feed Reader","Follow feeds, catch up and keep worthwhile items in a private web or mobile library, and publish read-only collections for the web.","\u002F_blueprints\u002Fcontent-feed-reader.logo.svg","\u002F_blueprints\u002Fcontent-feed-reader.cover.webp",[32,14],{"entities":46,"capabilities":47,"journeys":48,"scenarios":49,"rules":17},6,20,2,39,"2026-08-04T15:46:50+03:00",{"slug":52,"title":53,"summary":54,"category":55,"logo":56,"cover":57,"tags":58,"stats":59,"publishedAt":21},"event-rsvp","Event RSVP","Create an event, share one invitation link, collect going, maybe and not going answers without guest accounts, keep a waitlist once it is full, and message the guests.","community","\u002F_blueprints\u002Fevent-rsvp.logo.svg","\u002F_blueprints\u002Fevent-rsvp.cover.webp",[30,31,32],{"entities":60,"capabilities":35,"journeys":48,"scenarios":61,"rules":62},5,33,11,{"slug":64,"title":65,"summary":66,"category":67,"logo":68,"cover":69,"tags":70,"stats":71,"publishedAt":21},"flashcard-app","Flashcard App","Build flashcard decks, study what is due with spaced repetition on the web or a phone, draft cards from pasted notes, and share decks for others to copy.","education","\u002F_blueprints\u002Fflashcard-app.logo.svg","\u002F_blueprints\u002Fflashcard-app.cover.webp",[30,31],{"entities":34,"capabilities":72,"journeys":48,"scenarios":73,"rules":74},14,29,13,{"slug":76,"title":77,"summary":78,"category":55,"logo":79,"cover":80,"tags":81,"stats":82,"publishedAt":21},"form-and-survey-builder","Form & Survey Builder","Build a form or survey, share it through a public link, collect answers from people without accounts, and review, summarize and export what came back.","\u002F_blueprints\u002Fform-and-survey-builder.logo.svg","\u002F_blueprints\u002Fform-and-survey-builder.cover.webp",[30,31,32],{"entities":46,"capabilities":20,"journeys":36,"scenarios":83,"rules":20},34,{"slug":85,"title":86,"summary":87,"category":9,"logo":88,"cover":89,"tags":90,"stats":91,"publishedAt":21},"habit-tracker","Habit Tracker","Define habits on a daily, chosen-day or weekly schedule, check them off, follow their streaks, pause one without losing it, and read an optional weekly reflection.","\u002F_blueprints\u002Fhabit-tracker.logo.svg","\u002F_blueprints\u002Fhabit-tracker.cover.webp",[30,14],{"entities":60,"capabilities":92,"journeys":48,"scenarios":93,"rules":17},12,30,{"slug":95,"title":96,"summary":97,"category":98,"logo":99,"cover":100,"tags":101,"stats":102,"publishedAt":21},"kanban-board","Kanban Board","Plan and track a small team's work on shared boards of columns and cards, with stalled work flagged and an AI agent proposing the next cards.","collaboration","\u002F_blueprints\u002Fkanban-board.logo.svg","\u002F_blueprints\u002Fkanban-board.cover.webp",[13,31],{"entities":35,"capabilities":103,"journeys":36,"scenarios":104,"rules":105},23,44,32,{"slug":107,"title":108,"summary":109,"category":9,"logo":110,"cover":111,"tags":112,"stats":113,"publishedAt":21},"notes-app","Notes App","Capture quick notes into an inbox, file them into notebooks, tag and link them, find them again, and let your own AI agent suggest where they belong.","\u002F_blueprints\u002Fnotes-app.logo.svg","\u002F_blueprints\u002Fnotes-app.cover.webp",[13,14],{"entities":46,"capabilities":74,"journeys":36,"scenarios":114,"rules":115},31,17,{"slug":117,"title":118,"summary":119,"category":98,"logo":120,"cover":121,"tags":122,"stats":123,"publishedAt":21},"polls-and-decisions","Polls & Decisions","Put a question to the team as a poll, vote and argue while it is open, and keep the outcome as a decision the team can look up.","\u002F_blueprints\u002Fpolls-and-decisions.logo.svg","\u002F_blueprints\u002Fpolls-and-decisions.cover.webp",[30,31],{"entities":60,"capabilities":62,"journeys":36,"scenarios":73,"rules":74},{"slug":125,"title":126,"summary":127,"category":26,"logo":128,"cover":129,"tags":130,"stats":131,"publishedAt":21},"public-status-page","Public Status Page","Publish a public page of your components and their current status, keep visitors informed through incidents and scheduled maintenance, and email confirmed subscribers every update an operator posts.","\u002F_blueprints\u002Fpublic-status-page.logo.svg","\u002F_blueprints\u002Fpublic-status-page.cover.webp",[30,31,32],{"entities":16,"capabilities":72,"journeys":36,"scenarios":132,"rules":133},28,19,{"slug":135,"title":136,"summary":137,"category":67,"logo":138,"cover":139,"tags":140,"stats":141,"publishedAt":21},"quiz-builder","Quiz Builder","Build quizzes of multiple-choice, true\u002Ffalse and short-answer questions, share them by link or with a class, score each learner's one attempt, and practice what was missed.","\u002F_blueprints\u002Fquiz-builder.logo.svg","\u002F_blueprints\u002Fquiz-builder.cover.webp",[30,31],{"entities":142,"capabilities":143,"journeys":48,"scenarios":144,"rules":145},10,22,45,24,{"slug":147,"title":148,"summary":149,"category":67,"logo":150,"cover":151,"tags":152,"stats":153,"publishedAt":21},"study-planner","Study Planner","Set dated study goals with estimated topics, get a schedule built around your weekly hours, log what you study, and let your AI agent propose revisions.","\u002F_blueprints\u002Fstudy-planner.logo.svg","\u002F_blueprints\u002Fstudy-planner.cover.webp",[13,14],{"entities":46,"capabilities":115,"journeys":48,"scenarios":83,"rules":103},{"slug":155,"title":156,"summary":157,"category":98,"logo":158,"cover":159,"tags":160,"stats":161,"publishedAt":21},"team-wiki","Team Wiki","Keep a team's knowledge in permissioned spaces of nested pages with revision history, find it by search, and let members' AI agents answer from it and suggest updates.","\u002F_blueprints\u002Fteam-wiki.logo.svg","\u002F_blueprints\u002Fteam-wiki.cover.webp",[13,31],{"entities":162,"capabilities":163,"journeys":48,"scenarios":164,"rules":47},8,16,41,{"slug":166,"title":167,"summary":168,"category":26,"logo":169,"cover":170,"tags":171,"stats":173,"publishedAt":21},"url-shortener","URL Shortener","Turn long addresses into short links on the web or through an API, disable them or let them expire, and see how often and where they are followed.","\u002F_blueprints\u002Furl-shortener.logo.svg","\u002F_blueprints\u002Furl-shortener.cover.webp",[172,32,14],"api",{"entities":46,"capabilities":142,"journeys":174,"scenarios":47,"rules":92},0,{"blueprint":176},{"slug":52,"publishedAt":21,"reportDigest":177,"logo":56,"cover":57,"report":178,"source":2149},"27b5a2b48be007897b2b2c18ec34ada96cf6a2ed50f3e1edfed145ad956e212b",{"schemaVersion":179,"id":52,"title":53,"summary":54,"description":180,"category":55,"authors":181,"license":184,"intent":185,"supportingSections":186,"references":187,"referenceProfile":193,"tags":194,"languages":195,"generatedAt":197,"generator":198,"counts":201,"limitations":202,"model":211,"coverage":2144},"19.0.0","A small invitation product for people holding a gathering. A host creates an\nevent with its time, its place or online link and how many people it can take,\nand shares one public invitation link. Anyone holding the link answers going,\nmaybe or not going without an account, with a plus-one where the host allows\nit, and can change that answer later. Once the event is full, new yes answers\njoin a waitlist that moves on its own as spots open. The host sees who is\ncoming, removes an answer that should not be there, messages the guests, and\nchanges or cancels the event.",[182],{"name":183},"pdd-kit","MIT","Holding a gathering means chasing replies across messages, counting heads by\nhand and turning people away when the room is full. Inviting should be as light\nas sharing a link and answering as light as choosing one of three replies:\nguests never need an account, the host always knows who is coming, and the\nevent's capacity holds without the host having to police it.",[],[188],{"kind":189,"role":190,"target":191,"title":192},"research","context","https:\u002F\u002Fgithub.com\u002Fitai-gendler\u002Fpdd-kit\u002Fblob\u002Fmain\u002Fblueprints\u002Fevent-rsvp\u002Freferences\u002Fassumptions.md","Event RSVP assumptions","portable",[30,31,32],[196],"en","2026-10-12",{"name":199,"version":200},"pdd-kit-cli","0.34.1",{"interfaces":36,"experiences":48,"screens":60,"domains":18,"entities":60,"capabilities":35,"capabilityScenarios":93,"journeys":48,"journeyScenarios":18,"businessRules":62,"variations":174},[203,204,205,206,207,208,209,210],"Guests answer without accounts. A guest is known only by the name and email they give, and anyone holding the invitation link can answer.","The host never adds a guest or changes an answer; the guest list holds the answers guests give, and the host may only remove one.","Each event has one host and happens once. There are no co-hosts and no recurring series.","Events are never deleted; cancelling one closes its invitation and keeps its guest list.","The Product does not sell tickets, take payments or check guests in at the door.","Messages to guests go out by email in one direction and are never changed or deleted once sent; guests do not reply inside the Product.","A language model drafts a message's wording from the event's details and may be wrong. The host edits and decides what is sent, and messaging works while it is unavailable.","Hosts sign in with an existing account; signing up and managing accounts are not part of this product.",{"taxonomies":212,"interfaces":226,"experiences":242,"screens":266,"domains":425,"entities":446,"capabilities":557,"capabilityScenarios":631,"journeys":1782,"journeyScenarios":1805,"businessRules":1934,"variations":2143},{"scenarioKinds":213},[214,218,222],{"id":215,"name":216,"description":217,"colorSlot":46},"edge","Edge case","An uncommon but expected path with a distinct observable outcome.",{"id":219,"name":220,"description":221,"colorSlot":36},"primary","Primary","The expected observable behavior path.",{"id":223,"name":224,"description":225,"colorSlot":18},"validation","Validation","Input the Product refuses while preserving the Actor's work.",[227],{"id":228,"title":229,"description":230,"type":231,"actorIds":232,"entryPoints":235,"languages":238,"intent":239,"supportingSections":240,"references":241},"rsvp-web","Event RSVP web application","The supported browser Interface for hosts and their guests. Creating and\nlooking after events requires a Host session; opening an invitation and\nanswering it does not.","web",[233,234],"guest","host",[236],{"type":231,"path":237},"\u002F",[],"",[],[],[243,255],{"id":244,"title":245,"description":246,"actorIds":247,"interfaceIds":248,"accessMode":249,"entryPoints":250,"intent":239,"supportingSections":253,"references":254},"rsvp-web::hosting","Hosting","The signed-in context in which a Host creates events, changes or cancels them,\nfollows who has answered, removes an RSVP, and messages guests. Every event,\nguest list and message here belongs to the signed-in Host.",[234],[228],"authenticated",[251],{"type":228,"path":252},"\u002Fevents",[],[],{"id":256,"title":257,"description":258,"actorIds":259,"interfaceIds":260,"accessMode":32,"entryPoints":261,"intent":239,"supportingSections":264,"references":265},"rsvp-web::responding","Responding","The context reached through an event's invitation link or a guest's personal\nlink. It shows one event's invitation and takes an answer without an account,\nand nothing about other guests or the host's other events.",[233],[228],[262],{"type":228,"path":263},"\u002Fi\u002F:invitationCode",[],[],[267,331,346,363,386],{"id":268,"title":269,"description":270,"capabilityIds":271,"entities":279,"capabilityScenarioIds":309,"journeyScenarioIds":324,"entryPoints":326,"intent":239,"supportingSections":329,"references":330},"rsvp-web::hosting::event","Event","One event the Host holds, opened to look after it. It presents the event's\ndetails and invitation link to share, lets the Host change the details or\ncancel the event, and shows the guest list: who is going with how many\nplus-ones, who might come, who cannot, and who is waiting in order, with the\ntotal going against capacity, and removes an RSVP once the Host confirms. It\nlists the messages already sent and starts a new one.",[272,273,274,275,276,277,278],"cancel-event","create-event","edit-event","message-guests","promote-from-waitlist","remove-rsvp","view-guest-list",[280,294,301],{"entityId":281,"shows":282,"collects":293},"event",[283,284,285,286,287,288,289,290,291,292],"Capacity","Description","Ends at","Invitation link","Online link","Place","Plus-ones allowed","Spots left","Starts at","Title",[283,284,285,287,288,289,291,292],{"entityId":295,"shows":296,"collects":300},"message",[297,298,299],"Recipients","Sent at","Subject",[],{"entityId":302,"shows":303,"collects":308},"rsvp",[304,305,306,307],"Email","Name","Plus-one","Responded at",[],[310,311,312,313,314,315,316,317,318,319,320,321,322,323],"cancel-an-event","change-the-time-of-an-event","create-an-in-person-event","create-an-online-event","give-an-open-spot-to-the-next-guest","lower-capacity-without-removing-guests","message-every-going-guest","raise-the-capacity-of-a-full-event","refuse-changing-a-cancelled-event","refuse-removing-an-rsvp-once-the-event-has-started","remove-a-going-rsvp-from-a-full-event","remove-an-rsvp","see-an-event-nobody-has-answered","see-who-answered",[325],"invite-guests-and-see-who-is-coming",[327],{"type":228,"path":328},"\u002Fevents\u002F:eventId",[],[],{"id":332,"title":333,"description":334,"capabilityIds":335,"entities":336,"capabilityScenarioIds":340,"journeyScenarioIds":341,"entryPoints":342,"intent":239,"supportingSections":344,"references":345},"rsvp-web::hosting::events","Events","Lists the events a Host holds, soonest first, with whether each is scheduled\nor cancelled, opens one to look after it, and starts a new one.",[273],[337],{"entityId":281,"shows":338,"collects":339},[291,292],[],[312,313],[],[343],{"type":228,"path":252},[],[],{"id":347,"title":348,"description":349,"capabilityIds":350,"entities":351,"capabilityScenarioIds":355,"journeyScenarioIds":357,"entryPoints":358,"intent":239,"supportingSections":361,"references":362},"rsvp-web::hosting::new-event","New event","Takes a Host through creating an event: what it is called and what guests\nshould know, when it starts and ends, where it happens in person, online or\nboth, how many people it can take, and whether guests may bring a plus-one.\nThe Host can leave before creating it without an event being made.",[273],[352],{"entityId":281,"shows":353,"collects":354},[],[283,284,285,287,288,289,291,292],[312,313,356],"refuse-an-event-that-ends-before-it-starts",[325],[359],{"type":228,"path":360},"\u002Fevents\u002Fnew",[],[],{"id":364,"title":365,"description":366,"capabilityIds":367,"entities":368,"capabilityScenarioIds":376,"journeyScenarioIds":380,"entryPoints":381,"intent":239,"supportingSections":384,"references":385},"rsvp-web::hosting::new-message","New message","Takes a Host through writing an email to an event's guests: choosing which\nanswers it goes to and seeing how many guests that reaches, writing a subject\nand body or starting from suggested wording, and sending it. The Host can\nleave before sending without anything being sent or kept.",[275],[369,372],{"entityId":281,"shows":370,"collects":371},[292],[],{"entityId":295,"shows":373,"collects":375},[374,297,299],"Body",[374,297,299],[316,377,378,379],"message-while-the-language-model-is-unavailable","refuse-a-message-nobody-would-receive","start-a-message-from-suggested-wording",[],[382],{"type":228,"path":383},"\u002Fevents\u002F:eventId\u002Fmessages\u002Fnew",[],[],{"id":387,"title":388,"description":389,"capabilityIds":390,"entities":393,"capabilityScenarioIds":403,"journeyScenarioIds":416,"entryPoints":419,"intent":239,"supportingSections":423,"references":424},"rsvp-web::responding::invitation","Invitation","Presents one event's invitation — what it is, when and where, who is hosting,\nand how many spots are left — and takes an answer: going, maybe or not going,\nwith a name, an email and, where allowed, a plus-one. Opened through the\npersonal link of a Guest's RSVP, it shows that answer, lets them change it with\nthe same choices, and for an online event shows where to join. Once the event\nis cancelled or has started it says so and takes no answers.",[391,276,392],"open-invitation","rsvp-to-event",[394,397,400],{"entityId":281,"shows":395,"collects":396},[284,285,287,288,289,290,291,292],[],{"entityId":234,"shows":398,"collects":399},[305],[],{"entityId":302,"shows":401,"collects":402},[305,306],[304,305,306],[404,405,406,407,314,408,409,410,411,412,413,414,415],"answer-maybe","change-from-going-to-maybe","change-from-maybe-to-going","decline-an-invitation","join-the-waitlist-after-declining","join-the-waitlist-of-a-full-event","open-an-invitation","open-the-invitation-of-a-cancelled-event","open-your-own-answer","refuse-a-plus-one-that-does-not-fit","refuse-an-answer-once-the-event-has-started","say-yes-with-a-plus-one",[325,417,418],"say-yes-then-change-to-maybe","try-to-change-an-answer-after-the-event-starts",[420,421],{"type":228,"path":263},{"type":228,"path":422},"\u002Fi\u002F:invitationCode\u002Fme\u002F:rsvpCode",[],[],[426,432,439],{"id":427,"name":333,"description":428,"boundary":429,"colorSlot":36,"intent":239,"supportingSections":430,"references":431},"events","The host's own events: creating one with its time, place and capacity,\nchanging its details, and calling it off.","Owns an event's details, its capacity and whether it is scheduled or\ncancelled. It does not own who has answered, the waitlist, or messages sent to\nguests.",[],[],{"id":433,"name":434,"description":435,"boundary":436,"colorSlot":34,"intent":239,"supportingSections":437,"references":438},"guest-list","Guest list","The host's view of who has answered an event, removing an answer that should\nnot be there, and the messages the host sends to the guests.","Owns how RSVPs are presented to the host, removing one, and the messages the\nhost sends. It does not own the RSVPs themselves, which guests give and change\nand the waitlist moves, or the event's details.",[],[],{"id":440,"name":441,"description":442,"boundary":443,"colorSlot":48,"intent":239,"supportingSections":444,"references":445},"rsvps","RSVPs","The public invitation and the RSVPs given through it: opening the invitation,\nand answering going, maybe or not going and changing that answer.","Owns RSVPs, plus-ones and the waitlist order. It does not own the event's\ndetails or capacity, which only its host sets, the host removing an RSVP, or\nmessages to guests.",[],[],[447,486,498,510,526],{"id":281,"title":269,"description":448,"domainId":427,"kind":449,"acts":449,"singleton":450,"informationKept":451,"relations":472,"states":477,"intent":239,"supportingSections":484,"references":485},"A gathering a Host is holding at a set time, in a place, online or both, which\npeople are invited to through one public link.",null,false,[452,454,456,458,460,462,464,466,468,470],{"name":292,"description":453},"what the event is called",{"name":284,"description":455},"what the host tells guests about it",{"name":291,"description":457},"when it begins, in the time zone where it is held",{"name":285,"description":459},"when it is over",{"name":288,"description":461},"the address where it happens, when it is held in person",{"name":287,"description":463},"where guests join, when it is held online",{"name":283,"description":465},"how many people, plus-ones included, may be going; none means no limit",{"name":289,"description":467},"whether a guest may bring one more person",{"name":286,"description":469},"the public address where anyone holding it sees the invitation and answers",{"name":290,"description":471},"how many more people may be going before a new yes answer joins the waitlist, worked out from the capacity and who is going",[473,476],{"entityId":302,"verb":474,"cardinality":475},"has","one-to-many",{"entityId":295,"verb":474,"cardinality":475},[478,481],{"name":479,"content":480},"Scheduled","Taking answers until it starts, and open to changes by its host.",{"name":482,"content":483},"Cancelled","Called off by its host. Its invitation says so and takes no more answers, and\nit can neither be changed nor scheduled again. Its guest list stays for the\nhost to read.",[],[],{"id":233,"title":487,"description":488,"domainId":440,"kind":489,"acts":490,"singleton":450,"informationKept":491,"relations":492,"states":495,"intent":239,"supportingSections":496,"references":497},"Guest","Anyone who answers an event's invitation through its link. A Guest has no\naccount; the Product knows them only by the name and email on their RSVP, and\nthe personal link emailed to them is how they come back to it.","person","external",[],[493],{"entityId":302,"verb":494,"cardinality":475},"gives",[],[],[],{"id":234,"title":499,"description":500,"kind":489,"acts":490,"singleton":450,"informationKept":501,"relations":504,"states":507,"intent":239,"supportingSections":508,"references":509},"Host","A person with an account who creates events, shares their invitations, looks\nafter who is coming, and messages the guests.",[502],{"name":305,"description":503},"the name guests see as the one hosting",[505],{"entityId":281,"verb":506,"cardinality":475},"owns",[],[],[],{"id":295,"title":511,"description":512,"domainId":433,"kind":449,"acts":449,"singleton":450,"informationKept":513,"relations":522,"states":523,"intent":239,"supportingSections":524,"references":525},"Message","An email a Host sends to some or all of an event's guests, kept on the event so\nthe host can see what was said and to whom.",[514,516,518,520],{"name":299,"description":515},"what the email is about",{"name":374,"description":517},"what it says",{"name":297,"description":519},"the answers whose Guests it went to: going, maybe, waitlisted, or any of them together",{"name":298,"description":521},"when the host sent it",[],[],[],[],{"id":302,"title":527,"description":528,"domainId":440,"kind":449,"acts":449,"singleton":450,"informationKept":529,"relations":541,"states":542,"intent":239,"supportingSections":555,"references":556},"RSVP","One Guest's answer to one event's invitation. An email gives at most one RSVP\nper event, and its Guest changes it through its personal link until the event\nstarts.",[530,532,534,536,538],{"name":305,"description":531},"the name the Guest gave with it",{"name":304,"description":533},"where the confirmation, the personal link and the host's messages reach the Guest",{"name":306,"description":535},"whether the Guest brings one more person",{"name":307,"description":537},"when the Guest last gave or changed it, which sets its place on the waitlist",{"name":539,"description":540},"Personal link","the private address where its Guest sees and changes it",[],[543,546,549,552],{"name":544,"content":545},"Going","The Guest is coming, and holds a spot for themselves and their plus-one.",{"name":547,"content":548},"Maybe","The Guest is not sure yet. Holds no spot.",{"name":550,"content":551},"Not going","The Guest declined. Holds no spot, and stays on the guest list so the host\nknows.",{"name":553,"content":554},"Waitlisted","The Guest said yes while the event was full, and waits for a spot in the order\nRSVPs were given.",[],[],[558,566,574,582,590,598,607,615,623],{"id":272,"title":559,"description":560,"domainId":427,"availability":561,"intent":563,"supportingSections":564,"references":565},"Event cancellation","Calls off a scheduled event for good, tells the guests who might have come,\nand closes its invitation to answers.",[562],{"placeId":244},"Make sure nobody turns up to an event that is not happening, and that the\ninvitation link stops taking answers the moment it is called off.",[],[],{"id":273,"title":567,"description":568,"domainId":427,"availability":569,"intent":571,"supportingSections":572,"references":573},"Event creation","Creates a scheduled event owned by the Host — its time, its place or online\nlink, its capacity and whether plus-ones are allowed — with a public invitation\nlink of its own.",[570],{"placeId":244},"Let a Host go from a plan to a link they can share in one sitting.",[],[],{"id":274,"title":575,"description":576,"domainId":427,"availability":577,"intent":579,"supportingSections":580,"references":581},"Event editing","Changes a scheduled event's details, and tells the guests who may come when\nits time or place changes.",[578],{"placeId":244},"Let a Host keep an event accurate after the invitation is out, without guests\nmissing a change that affects whether and where they turn up.",[],[],{"id":275,"title":583,"description":584,"domainId":433,"availability":585,"intent":587,"supportingSections":588,"references":589},"Guest messaging","Sends an email from a Host to the guests of their event, chosen by their\nanswer, and keeps it on the event. When the Host asks for suggested wording,\nthe Product calls a language model with the event's details and puts the\nreturned subject and body in the Host's unsent message, where the Host edits\nit like anything they typed.",[586],{"placeId":244},"Give a Host one place to reach the people who are coming — or might — with\nwhat they need to know, in words the Host has approved.",[],[],{"id":391,"title":591,"description":592,"domainId":440,"availability":593,"intent":595,"supportingSections":596,"references":597},"Invitation viewing","Shows anyone holding an event's invitation link what the event is, when and\nwhere it happens, who is hosting and how many spots are left. Opened through a\nGuest's personal link, it also shows that Guest's own RSVP and, for an online\nevent, where to join.",[594],{"placeId":256},"Give a person everything they need to decide whether to come, without an\naccount and without revealing anything about the other guests.",[],[],{"id":276,"title":599,"description":600,"availability":601,"intent":604,"supportingSections":605,"references":606},"Waitlist promotion","Gives spots that open on a scheduled event to waitlisted RSVPs on its own, in\nthe order they were given, and tells each promoted Guest by email.",[602,603],{"placeId":244},{"placeId":256},"Keep a full event full without the Host deciding who gets in, and make the\norder of the waitlist predictable to everyone on it.",[],[],{"id":277,"title":608,"description":609,"domainId":433,"availability":610,"intent":612,"supportingSections":613,"references":614},"RSVP removal","Lets a Host remove one RSVP from their event's guest list for good, once they\nconfirm, and tells its Guest by email. Spots it held open for the waitlist.",[611],{"placeId":244},"Let a Host clear an answer that should not be there — a duplicate, a joke, a\nperson they did not mean to invite — without being able to change what anyone\nsaid.",[],[],{"id":392,"title":616,"description":617,"domainId":440,"availability":618,"intent":620,"supportingSections":621,"references":622},"RSVP submission","Records a person's answer to an invitation — going, maybe or not going — with\ntheir name, their email and, where the Host allows it, a plus-one, without an\naccount. A yes that does not fit joins the waitlist. The Product emails the\nGuest a personal link to their RSVP, where the same choices change it until\nthe event starts; a Guest who stops going frees their spots for the waitlist.",[619],{"placeId":256},"Make answering take one visit and no account, while every answer reaches the\nHost's guest list and stays true as the Guest's plans change.",[],[],{"id":278,"title":624,"description":625,"domainId":433,"availability":626,"intent":628,"supportingSections":629,"references":630},"Guest list viewing","Shows a Host every RSVP to their event: who is going and with how many\nplus-ones, who might come, who cannot, and who is waiting in order, with the\ntotal going against capacity.",[627],{"placeId":244},"Let a Host know at a glance how many people to expect and who they are,\nwithout counting replies by hand.",[],[],[632,667,706,741,781,817,857,893,922,983,1016,1052,1087,1153,1200,1230,1263,1298,1324,1357,1389,1419,1442,1474,1514,1553,1609,1653,1694,1732],{"id":404,"capabilityId":392,"title":633,"kindId":219,"actorIds":634,"routes":635,"steps":638,"trigger":661,"decisionPoints":662,"outcome":663,"edgeCases":664,"intent":239,"supportingSections":665,"references":666},"Answer maybe",[233],[636],{"id":231,"name":637},"Web",[639,645,654],{"text":640,"kind":641,"actorId":233,"capabilityId":392,"entities":642,"unattended":450,"contexts":643},"The Guest chooses maybe on the invitation and gives their name and email","actor",[],[644],{"routeId":231,"placeId":387},{"text":646,"kind":647,"actorId":233,"capabilityId":392,"entities":648,"unattended":450,"contexts":652},"The Product adds the Guest to the guest list as maybe, holding no spot","product",[649],{"entityId":302,"as":449,"effect":650,"from":449,"to":547,"facts":651,"with":449},"creates",[304,305,539,306,307],[653],{"routeId":231,"placeId":387},{"text":655,"kind":647,"actorId":233,"capabilityId":392,"entities":656,"unattended":450,"contexts":660},"The Product emails the Guest a confirmation with a personal link to their answer",[657],{"entityId":302,"as":449,"effect":658,"from":449,"to":449,"facts":659,"with":449},"reads",[304,539],[],"A person holding the invitation link is not sure yet whether they can come.",[],"The Host's guest list shows the Guest as maybe, no spot is taken, and the Guest\ncan settle their answer later through their personal link.",[],[],[],{"id":310,"capabilityId":272,"title":668,"kindId":219,"actorIds":669,"routes":670,"steps":672,"trigger":698,"decisionPoints":699,"outcome":700,"edgeCases":701,"intent":239,"supportingSections":704,"references":705},"Cancel an event",[234],[671],{"id":231,"name":637},[673,680,688],{"text":674,"kind":641,"actorId":234,"capabilityId":272,"entities":675,"unattended":450,"contexts":678},"The Host cancels a scheduled event, optionally writing a note, and confirms",[676],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":677,"with":449},[292],[679],{"routeId":231,"placeId":268},{"text":681,"kind":647,"actorId":234,"capabilityId":272,"entities":682,"unattended":450,"contexts":686},"The Product cancels the event",[683],{"entityId":281,"as":449,"effect":684,"from":479,"to":482,"facts":685,"with":449},"changes",[],[687],{"routeId":231,"placeId":268},{"text":689,"kind":647,"actorId":234,"capabilityId":272,"entities":690,"unattended":450,"contexts":697},"The Product emails every guest who is going, maybe or waitlisted that the event is cancelled, with the Host's note",[691,693,695],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":692,"with":449},[],{"entityId":302,"as":449,"effect":658,"from":449,"to":449,"facts":694,"with":449},[304],{"entityId":233,"as":449,"effect":658,"from":449,"to":449,"facts":696,"with":449},[],[],"The Host calls off an event that is still scheduled.",[],"The event is cancelled, the guests who might have come have been told, and the\ninvitation says it is cancelled and takes no answers. The guest list stays for\nthe Host to read.",[702,703],"The Host leaves before confirming → the event stays scheduled and nobody is emailed.","Nobody has answered yet → the event is cancelled and nobody is emailed.",[],[],{"id":405,"capabilityId":392,"title":707,"kindId":219,"actorIds":708,"routes":709,"steps":711,"trigger":733,"decisionPoints":734,"outcome":735,"edgeCases":736,"intent":239,"supportingSections":739,"references":740},"Change from going to maybe",[233],[710],{"id":231,"name":637},[712,719,724],{"text":713,"kind":641,"actorId":233,"capabilityId":392,"entities":714,"unattended":450,"contexts":717},"The Guest opens their personal link and sees they are going",[715],{"entityId":302,"as":449,"effect":658,"from":449,"to":449,"facts":716,"with":449},[305,306],[718],{"routeId":231,"placeId":387},{"text":720,"kind":641,"actorId":233,"capabilityId":392,"entities":721,"unattended":450,"contexts":722},"The Guest changes their answer to maybe",[],[723],{"routeId":231,"placeId":387},{"text":725,"kind":647,"actorId":233,"capabilityId":392,"entities":726,"unattended":450,"contexts":731},"The Product records the Guest as maybe, freeing the spots they held on the event",[727,729],{"entityId":302,"as":449,"effect":684,"from":544,"to":547,"facts":728,"with":449},[307],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":730,"with":449},[290],[732],{"routeId":231,"placeId":387},"A Guest who said yes is no longer sure they can come.",[],"The Host's guest list shows the Guest as maybe and the spots they held are\nopen. Handing them to the waitlist continues in waitlist promotion.",[737,738],"The Guest changes to not going instead → the same spots open and the guest list shows them as not going.","A waitlisted Guest changes to not going → they leave the waitlist and nobody else's place changes.",[],[],{"id":406,"capabilityId":392,"title":742,"kindId":219,"actorIds":743,"routes":744,"steps":746,"trigger":775,"decisionPoints":776,"outcome":777,"edgeCases":778,"intent":239,"supportingSections":779,"references":780},"Change from maybe to going",[233],[745],{"id":231,"name":637},[747,754,762,769],{"text":748,"kind":641,"actorId":233,"capabilityId":392,"entities":749,"unattended":450,"contexts":752},"The Guest opens their personal link and changes their answer from maybe to going",[750],{"entityId":302,"as":449,"effect":658,"from":449,"to":449,"facts":751,"with":449},[305,306],[753],{"routeId":231,"placeId":387},{"text":755,"kind":756,"actorId":449,"capabilityId":392,"entities":757,"unattended":450,"contexts":760},"The event has spots left for them and their plus-one","condition",[758],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":759,"with":449},[290],[761],{"routeId":231,"placeId":387},{"text":763,"kind":647,"actorId":233,"capabilityId":392,"entities":764,"unattended":450,"contexts":767},"The Product records the Guest as going",[765],{"entityId":302,"as":449,"effect":684,"from":547,"to":544,"facts":766,"with":449},[307],[768],{"routeId":231,"placeId":387},{"text":770,"kind":647,"actorId":233,"capabilityId":392,"entities":771,"unattended":450,"contexts":774},"The Product emails the Guest a confirmation of their new answer",[772],{"entityId":302,"as":449,"effect":658,"from":449,"to":449,"facts":773,"with":449},[304],[],"A Guest who answered maybe decides to come while there is still room.",[],"The Guest holds their spots and the Host's guest list shows them as going.",[],[],[],{"id":311,"capabilityId":274,"title":782,"kindId":219,"actorIds":783,"routes":784,"steps":786,"trigger":809,"decisionPoints":810,"outcome":811,"edgeCases":812,"intent":239,"supportingSections":815,"references":816},"Change the time of an event",[234],[785],{"id":231,"name":637},[787,794,801],{"text":788,"kind":641,"actorId":234,"capabilityId":274,"entities":789,"unattended":450,"contexts":792},"The Host changes the start and end of a scheduled event",[790],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":791,"with":449},[285,291],[793],{"routeId":231,"placeId":268},{"text":795,"kind":647,"actorId":234,"capabilityId":274,"entities":796,"unattended":450,"contexts":799},"The Product saves the new time on the event",[797],{"entityId":281,"as":449,"effect":684,"from":449,"to":449,"facts":798,"with":449},[285,291],[800],{"routeId":231,"placeId":268},{"text":802,"kind":647,"actorId":234,"capabilityId":274,"entities":803,"unattended":450,"contexts":808},"The Product emails every guest who is going, maybe or waitlisted about the new time",[804,806],{"entityId":302,"as":449,"effect":658,"from":449,"to":449,"facts":805,"with":449},[304],{"entityId":233,"as":449,"effect":658,"from":449,"to":449,"facts":807,"with":449},[],[],"The Host moves a scheduled event to a new time.",[],"The event shows its new time, the guests who might come have been told, and\nevery guest's answer is unchanged.",[813,814],"The place or online link changes → the same guests are told the same way.","Only the title or description changes → no guest is emailed.",[],[],{"id":312,"capabilityId":273,"title":818,"kindId":219,"actorIds":819,"routes":820,"steps":822,"trigger":849,"decisionPoints":850,"outcome":851,"edgeCases":852,"intent":239,"supportingSections":855,"references":856},"Create an in-person event",[234],[821],{"id":231,"name":637},[823,830,835,842],{"text":824,"kind":641,"actorId":234,"capabilityId":273,"entities":825,"unattended":450,"contexts":828},"The Host starts a new event from the list of their events",[826],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":827,"with":449},[],[829],{"routeId":231,"placeId":332},{"text":831,"kind":641,"actorId":234,"capabilityId":273,"entities":832,"unattended":450,"contexts":833},"The Host enters a title, a description, the start and end, the place, a capacity and whether plus-ones are allowed",[],[834],{"routeId":231,"placeId":347},{"text":836,"kind":647,"actorId":234,"capabilityId":273,"entities":837,"unattended":450,"contexts":840},"The Product creates a scheduled event owned by the Host, with an invitation link of its own",[838],{"entityId":281,"as":449,"effect":650,"from":449,"to":479,"facts":839,"with":449},[283,284,285,286,288,289,291,292],[841],{"routeId":231,"placeId":347},{"text":843,"kind":647,"actorId":234,"capabilityId":273,"entities":844,"unattended":450,"contexts":847},"The Product opens the new event with its invitation link ready to share",[845],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":846,"with":449},[286,292],[848],{"routeId":231,"placeId":268},"The Host wants to invite people to something they are holding at a place.",[],"A scheduled event exists with its details, all its capacity as spots left, and\na public invitation link the Host can share. Nobody has answered yet.",[853,854],"No capacity is given → the event has no limit and nobody is ever waitlisted.","Neither a place nor an online link is given → the Product asks for one and creates nothing.",[],[],{"id":313,"capabilityId":273,"title":858,"kindId":219,"actorIds":859,"routes":860,"steps":862,"trigger":886,"decisionPoints":887,"outcome":888,"edgeCases":889,"intent":239,"supportingSections":891,"references":892},"Create an online event",[234],[861],{"id":231,"name":637},[863,869,874,880],{"text":824,"kind":641,"actorId":234,"capabilityId":273,"entities":864,"unattended":450,"contexts":867},[865],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":866,"with":449},[],[868],{"routeId":231,"placeId":332},{"text":870,"kind":641,"actorId":234,"capabilityId":273,"entities":871,"unattended":450,"contexts":872},"The Host enters a title, a description, the start and end, the online link, a capacity and whether plus-ones are allowed",[],[873],{"routeId":231,"placeId":347},{"text":836,"kind":647,"actorId":234,"capabilityId":273,"entities":875,"unattended":450,"contexts":878},[876],{"entityId":281,"as":449,"effect":650,"from":449,"to":479,"facts":877,"with":449},[283,284,285,286,287,289,291,292],[879],{"routeId":231,"placeId":347},{"text":843,"kind":647,"actorId":234,"capabilityId":273,"entities":881,"unattended":450,"contexts":884},[882],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":883,"with":449},[286,292],[885],{"routeId":231,"placeId":268},"The Host wants to invite people to something held online.",[],"A scheduled online event exists with a public invitation link. The invitation\nsays the event is online; where to join is kept for the Host and the event's\nguests.",[890],"A place and an online link are both given → the event is held in both ways and the invitation shows the place to everyone.",[],[],{"id":407,"capabilityId":392,"title":894,"kindId":219,"actorIds":895,"routes":896,"steps":898,"trigger":916,"decisionPoints":917,"outcome":918,"edgeCases":919,"intent":239,"supportingSections":920,"references":921},"Decline an invitation",[233],[897],{"id":231,"name":637},[899,904,911],{"text":900,"kind":641,"actorId":233,"capabilityId":392,"entities":901,"unattended":450,"contexts":902},"The Guest chooses not going on the invitation and gives their name and email",[],[903],{"routeId":231,"placeId":387},{"text":905,"kind":647,"actorId":233,"capabilityId":392,"entities":906,"unattended":450,"contexts":909},"The Product adds the Guest to the guest list as not going",[907],{"entityId":302,"as":449,"effect":650,"from":449,"to":550,"facts":908,"with":449},[304,305,539,306,307],[910],{"routeId":231,"placeId":387},{"text":655,"kind":647,"actorId":233,"capabilityId":392,"entities":912,"unattended":450,"contexts":915},[913],{"entityId":302,"as":449,"effect":658,"from":449,"to":449,"facts":914,"with":449},[304,539],[],"A person holding the invitation link cannot come and wants the Host to know.",[],"The Host's guest list shows the Guest as not going, no spot is taken, and the\nGuest can change their mind through their personal link.",[],[],[],{"id":314,"capabilityId":276,"title":923,"kindId":219,"actorIds":924,"routes":925,"steps":927,"trigger":973,"decisionPoints":974,"outcome":975,"edgeCases":976,"intent":239,"supportingSections":981,"references":982},"Give an open spot to the next guest",[],[926],{"id":231,"name":637},[928,939,945,953,964],{"text":929,"kind":756,"actorId":449,"capabilityId":276,"entities":930,"unattended":937,"contexts":938},"Spots open on a scheduled event that has waitlisted guests",[931,933,935],{"entityId":302,"as":449,"effect":658,"from":449,"to":449,"facts":932,"with":449},[],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":934,"with":449},[290],{"entityId":233,"as":449,"effect":658,"from":449,"to":449,"facts":936,"with":449},[],true,[],{"text":940,"kind":647,"actorId":449,"capabilityId":276,"entities":941,"unattended":450,"contexts":944},"The Product moves the earliest waitlisted RSVP whose party fits the open spots to going",[942],{"entityId":302,"as":449,"effect":684,"from":553,"to":544,"facts":943,"with":449},[],[],{"text":946,"kind":647,"actorId":449,"capabilityId":276,"entities":947,"unattended":450,"contexts":952},"The Product emails the Guest that they have a spot, with their personal link",[948,950],{"entityId":302,"as":449,"effect":658,"from":449,"to":449,"facts":949,"with":449},[304,539],{"entityId":233,"as":449,"effect":658,"from":449,"to":449,"facts":951,"with":449},[],[],{"text":954,"kind":647,"actorId":449,"capabilityId":276,"entities":955,"unattended":450,"contexts":962},"The guest list on the event shows the Guest as going",[956,958,960],{"entityId":302,"as":449,"effect":658,"from":449,"to":449,"facts":957,"with":449},[],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":959,"with":449},[],{"entityId":233,"as":449,"effect":658,"from":449,"to":449,"facts":961,"with":449},[],[963],{"routeId":231,"placeId":268},{"text":965,"kind":647,"actorId":449,"capabilityId":276,"entities":966,"unattended":450,"contexts":971},"The Guest's personal link shows them as going",[967,969],{"entityId":302,"as":449,"effect":658,"from":449,"to":449,"facts":968,"with":449},[],{"entityId":233,"as":449,"effect":658,"from":449,"to":449,"facts":970,"with":449},[],[972],{"routeId":231,"placeId":387},"A going Guest changes their answer, the Host removes a going RSVP, or the Host\nraises the capacity, while guests are waiting.",[],"The waitlisted Guest who answered earliest and fits is going and has been told;\nthe Host's guest list and the Guest's personal link both show it.",[977,978,979,980],"Several spots open at once → the Product repeats the move, in order, while a waitlisted party still fits.","The earliest waitlisted party does not fit the open spots → the next party that fits moves ahead of it, and the earlier party keeps its place.","No waitlisted party fits → nobody moves and the spots stay open for the next answer.","The event has started or is cancelled → nobody moves.",[],[],{"id":408,"capabilityId":392,"title":984,"kindId":215,"actorIds":985,"routes":986,"steps":988,"trigger":1010,"decisionPoints":1011,"outcome":1012,"edgeCases":1013,"intent":239,"supportingSections":1014,"references":1015},"Join the waitlist after declining",[233],[987],{"id":231,"name":637},[989,996,1003],{"text":990,"kind":641,"actorId":233,"capabilityId":392,"entities":991,"unattended":450,"contexts":994},"The Guest opens their personal link and changes their answer from not going to going",[992],{"entityId":302,"as":449,"effect":658,"from":449,"to":449,"facts":993,"with":449},[305,306],[995],{"routeId":231,"placeId":387},{"text":997,"kind":756,"actorId":449,"capabilityId":392,"entities":998,"unattended":450,"contexts":1001},"The event has no spots left",[999],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":1000,"with":449},[290],[1002],{"routeId":231,"placeId":387},{"text":1004,"kind":647,"actorId":233,"capabilityId":392,"entities":1005,"unattended":450,"contexts":1008},"The Product puts the Guest on the waitlist and says so",[1006],{"entityId":302,"as":449,"effect":684,"from":550,"to":553,"facts":1007,"with":449},[307],[1009],{"routeId":231,"placeId":387},"A Guest who declined changes their mind after the event has filled.",[],"The Guest is at the back of the waitlist, behind everyone who answered before\nthis change, and knows it.",[],[],[],{"id":409,"capabilityId":392,"title":1017,"kindId":215,"actorIds":1018,"routes":1019,"steps":1021,"trigger":1046,"decisionPoints":1047,"outcome":1048,"edgeCases":1049,"intent":239,"supportingSections":1050,"references":1051},"Join the waitlist of a full event",[233],[1020],{"id":231,"name":637},[1022,1027,1033,1040],{"text":1023,"kind":641,"actorId":233,"capabilityId":392,"entities":1024,"unattended":450,"contexts":1025},"The Guest chooses going on the invitation and gives their name and email",[],[1026],{"routeId":231,"placeId":387},{"text":997,"kind":756,"actorId":449,"capabilityId":392,"entities":1028,"unattended":450,"contexts":1031},[1029],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":1030,"with":449},[290],[1032],{"routeId":231,"placeId":387},{"text":1034,"kind":647,"actorId":233,"capabilityId":392,"entities":1035,"unattended":450,"contexts":1038},"The Product adds the Guest to the waitlist and says so",[1036],{"entityId":302,"as":449,"effect":650,"from":449,"to":553,"facts":1037,"with":449},[304,305,539,306,307],[1039],{"routeId":231,"placeId":387},{"text":1041,"kind":647,"actorId":233,"capabilityId":392,"entities":1042,"unattended":450,"contexts":1045},"The Product emails the Guest that they are waitlisted, with a personal link to their answer",[1043],{"entityId":302,"as":449,"effect":658,"from":449,"to":449,"facts":1044,"with":449},[304,539],[],"A person says yes to an event that has no spots left.",[],"The Guest is on the waitlist behind everyone who answered before them, knows\nit, and will be emailed if a spot comes to them.",[],[],[],{"id":315,"capabilityId":274,"title":1053,"kindId":215,"actorIds":1054,"routes":1055,"steps":1057,"trigger":1081,"decisionPoints":1082,"outcome":1083,"edgeCases":1084,"intent":239,"supportingSections":1085,"references":1086},"Lower capacity without removing guests",[234],[1056],{"id":231,"name":637},[1058,1065,1072],{"text":1059,"kind":641,"actorId":234,"capabilityId":274,"entities":1060,"unattended":450,"contexts":1063},"The Host lowers the capacity of an event below the number already going",[1061],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":1062,"with":449},[283,290],[1064],{"routeId":231,"placeId":268},{"text":1066,"kind":647,"actorId":234,"capabilityId":274,"entities":1067,"unattended":450,"contexts":1070},"The Product saves the new capacity and shows no spots left",[1068],{"entityId":281,"as":449,"effect":684,"from":449,"to":449,"facts":1069,"with":449},[283],[1071],{"routeId":231,"placeId":268},{"text":1073,"kind":756,"actorId":449,"capabilityId":274,"entities":1074,"unattended":450,"contexts":1079},"Every guest already going keeps their spot",[1075,1077],{"entityId":302,"as":449,"effect":658,"from":449,"to":449,"facts":1076,"with":449},[],{"entityId":233,"as":449,"effect":658,"from":449,"to":449,"facts":1078,"with":449},[],[1080],{"routeId":231,"placeId":268},"The Host lowers an event's capacity after more people than the new number have\nsaid yes.",[],"The event has its new capacity and no spots left. Nobody loses a spot; new yes\nanswers join the waitlist until enough guests change their answer.",[],[],[],{"id":316,"capabilityId":275,"title":1088,"kindId":219,"actorIds":1089,"routes":1090,"steps":1092,"trigger":1145,"decisionPoints":1146,"outcome":1147,"edgeCases":1148,"intent":239,"supportingSections":1151,"references":1152},"Message every going guest",[234],[1091],{"id":231,"name":637},[1093,1104,1109,1118,1123,1136],{"text":1094,"kind":641,"actorId":234,"capabilityId":275,"entities":1095,"unattended":450,"contexts":1102},"The Host chooses to write to an event's guests",[1096,1098,1100],{"entityId":302,"as":449,"effect":658,"from":449,"to":449,"facts":1097,"with":449},[],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":1099,"with":449},[292],{"entityId":233,"as":449,"effect":658,"from":449,"to":449,"facts":1101,"with":449},[],[1103],{"routeId":231,"placeId":268},{"text":1105,"kind":641,"actorId":234,"capabilityId":275,"entities":1106,"unattended":450,"contexts":1107},"The Host chooses the going answer as recipients and writes a subject and body",[],[1108],{"routeId":231,"placeId":364},{"text":1110,"kind":647,"actorId":234,"capabilityId":275,"entities":1111,"unattended":450,"contexts":1116},"The Product shows how many guests the chosen answers reach",[1112,1114],{"entityId":302,"as":449,"effect":658,"from":449,"to":449,"facts":1113,"with":449},[],{"entityId":233,"as":449,"effect":658,"from":449,"to":449,"facts":1115,"with":449},[],[1117],{"routeId":231,"placeId":364},{"text":1119,"kind":641,"actorId":234,"capabilityId":275,"entities":1120,"unattended":450,"contexts":1121},"The Host sends it",[],[1122],{"routeId":231,"placeId":364},{"text":1124,"kind":647,"actorId":234,"capabilityId":275,"entities":1125,"unattended":450,"contexts":1134},"The Product emails each guest who is going and keeps the message on the event",[1126,1128,1130,1132],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":1127,"with":449},[],{"entityId":295,"as":449,"effect":650,"from":449,"to":449,"facts":1129,"with":449},[374,297,298,299],{"entityId":302,"as":449,"effect":658,"from":449,"to":449,"facts":1131,"with":449},[304],{"entityId":233,"as":449,"effect":658,"from":449,"to":449,"facts":1133,"with":449},[],[1135],{"routeId":231,"placeId":364},{"text":1137,"kind":647,"actorId":234,"capabilityId":275,"entities":1138,"unattended":450,"contexts":1143},"The message is listed among the event's sent messages",[1139,1141],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":1140,"with":449},[],{"entityId":295,"as":449,"effect":658,"from":449,"to":449,"facts":1142,"with":449},[297,298,299],[1144],{"routeId":231,"placeId":268},"The Host has something to tell the people coming to their event.",[],"Every guest who is going has the Host's email, and the event keeps the message\nwith whom it went to and when.",[1149,1150],"The email to one guest cannot be delivered → the others still receive it and the message is kept.","The Host leaves before sending → nothing is sent or kept.",[],[],{"id":377,"capabilityId":275,"title":1154,"kindId":215,"actorIds":1155,"routes":1156,"steps":1158,"trigger":1194,"decisionPoints":1195,"outcome":1196,"edgeCases":1197,"intent":239,"supportingSections":1198,"references":1199},"Message while the language model is unavailable",[234],[1157],{"id":231,"name":637},[1159,1166,1171,1176,1181],{"text":1160,"kind":641,"actorId":234,"capabilityId":275,"entities":1161,"unattended":450,"contexts":1164},"The Host chooses which answers on an event to write to and asks for suggested wording",[1162],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":1163,"with":449},[292],[1165],{"routeId":231,"placeId":364},{"text":1167,"kind":756,"actorId":449,"capabilityId":275,"entities":1168,"unattended":450,"contexts":1169},"The language model does not answer",[],[1170],{"routeId":231,"placeId":364},{"text":1172,"kind":647,"actorId":234,"capabilityId":275,"entities":1173,"unattended":450,"contexts":1174},"The Product says suggested wording is unavailable right now and leaves the subject and body as the Host had them",[],[1175],{"routeId":231,"placeId":364},{"text":1177,"kind":641,"actorId":234,"capabilityId":275,"entities":1178,"unattended":450,"contexts":1179},"The Host writes the subject and body themselves and sends it",[],[1180],{"routeId":231,"placeId":364},{"text":1182,"kind":647,"actorId":234,"capabilityId":275,"entities":1183,"unattended":450,"contexts":1192},"The Product emails each chosen guest and keeps the message on the event",[1184,1186,1188,1190],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":1185,"with":449},[],{"entityId":295,"as":449,"effect":650,"from":449,"to":449,"facts":1187,"with":449},[374,297,298,299],{"entityId":302,"as":449,"effect":658,"from":449,"to":449,"facts":1189,"with":449},[304],{"entityId":233,"as":449,"effect":658,"from":449,"to":449,"facts":1191,"with":449},[],[1193],{"routeId":231,"placeId":364},"The Host asks for suggested wording while the language model cannot be\nreached.",[],"The Host knows no suggestion is coming, loses nothing they had written, and\nsends the message in their own words as usual.",[],[],[],{"id":410,"capabilityId":391,"title":1201,"kindId":219,"actorIds":1202,"routes":1203,"steps":1205,"trigger":1222,"decisionPoints":1223,"outcome":1224,"edgeCases":1225,"intent":239,"supportingSections":1228,"references":1229},"Open an invitation",[233],[1204],{"id":231,"name":637},[1206,1213],{"text":1207,"kind":641,"actorId":233,"capabilityId":391,"entities":1208,"unattended":450,"contexts":1211},"The Guest opens the invitation link of a scheduled event",[1209],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":1210,"with":449},[284,285,288,290,291,292],[1212],{"routeId":231,"placeId":387},{"text":1214,"kind":647,"actorId":233,"capabilityId":391,"entities":1215,"unattended":450,"contexts":1220},"The Product shows the event's details, its Host and the spots left, and nothing about other guests",[1216,1218],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":1217,"with":449},[284,285,288,289,290,291,292],{"entityId":234,"as":449,"effect":658,"from":449,"to":449,"facts":1219,"with":449},[305],[1221],{"routeId":231,"placeId":387},"Someone opens the invitation link a Host shared.",[],"The Guest knows what the event is, when and where it happens, who is hosting\nand whether there is room, and can answer.",[1226,1227],"The event is held online → the invitation says so without showing where to join.","The event has no capacity → no spot count is shown.",[],[],{"id":411,"capabilityId":391,"title":1231,"kindId":215,"actorIds":1232,"routes":1233,"steps":1235,"trigger":1257,"decisionPoints":1258,"outcome":1259,"edgeCases":1260,"intent":239,"supportingSections":1261,"references":1262},"Open the invitation of a cancelled event",[233],[1234],{"id":231,"name":637},[1236,1243,1250],{"text":1237,"kind":641,"actorId":233,"capabilityId":391,"entities":1238,"unattended":450,"contexts":1241},"The Guest opens the invitation link of an event",[1239],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":1240,"with":449},[292],[1242],{"routeId":231,"placeId":387},{"text":1244,"kind":756,"actorId":449,"capabilityId":391,"entities":1245,"unattended":450,"contexts":1248},"The event is cancelled",[1246],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":1247,"with":449},[],[1249],{"routeId":231,"placeId":387},{"text":1251,"kind":647,"actorId":233,"capabilityId":391,"entities":1252,"unattended":450,"contexts":1255},"The Product says the event is cancelled, takes no answer and shows no online link",[1253],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":1254,"with":449},[],[1256],{"routeId":231,"placeId":387},"Someone opens an invitation link after its Host cancelled the event.",[],"The Guest learns the event is not happening and cannot answer it.",[],[],[],{"id":412,"capabilityId":391,"title":1264,"kindId":219,"actorIds":1265,"routes":1266,"steps":1268,"trigger":1292,"decisionPoints":1293,"outcome":1294,"edgeCases":1295,"intent":239,"supportingSections":1296,"references":1297},"Open your own answer",[233],[1267],{"id":231,"name":637},[1269,1276,1285],{"text":1270,"kind":641,"actorId":233,"capabilityId":391,"entities":1271,"unattended":450,"contexts":1274},"The Guest opens the personal link from their confirmation email",[1272],{"entityId":302,"as":449,"effect":658,"from":449,"to":449,"facts":1273,"with":449},[305,306],[1275],{"routeId":231,"placeId":387},{"text":1277,"kind":647,"actorId":233,"capabilityId":391,"entities":1278,"unattended":450,"contexts":1283},"The Product shows the event with the Guest's own answer and plus-one",[1279,1281],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":1280,"with":449},[285,288,291,292],{"entityId":302,"as":449,"effect":658,"from":449,"to":449,"facts":1282,"with":449},[305,306],[1284],{"routeId":231,"placeId":387},{"text":1286,"kind":647,"actorId":233,"capabilityId":391,"entities":1287,"unattended":450,"contexts":1290},"For an online event, the Product shows the Guest where to join",[1288],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":1289,"with":449},[287],[1291],{"routeId":231,"placeId":387},"A Guest who has answered comes back through the personal link the Product\nemailed them.",[],"The Guest sees the event, their own answer and plus-one, and where to join if\nit is online, and can change their answer from there.",[],[],[],{"id":317,"capabilityId":274,"title":1299,"kindId":215,"actorIds":1300,"routes":1301,"steps":1303,"trigger":1318,"decisionPoints":1319,"outcome":1320,"edgeCases":1321,"intent":239,"supportingSections":1322,"references":1323},"Raise the capacity of a full event",[234],[1302],{"id":231,"name":637},[1304,1311],{"text":1305,"kind":641,"actorId":234,"capabilityId":274,"entities":1306,"unattended":450,"contexts":1309},"The Host raises the capacity of a full event that has a waitlist",[1307],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":1308,"with":449},[283,290],[1310],{"routeId":231,"placeId":268},{"text":1312,"kind":647,"actorId":234,"capabilityId":274,"entities":1313,"unattended":450,"contexts":1316},"The Product saves the new capacity, which opens spots on the event",[1314],{"entityId":281,"as":449,"effect":684,"from":449,"to":449,"facts":1315,"with":449},[283],[1317],{"routeId":231,"placeId":268},"The Host makes room for more people on an event whose waitlist is not empty.",[],"The event has its new capacity and the new spots are open. Handing them to\nwaitlisted guests continues in waitlist promotion; the Host moves nobody\nthemselves.",[],[],[],{"id":378,"capabilityId":275,"title":1325,"kindId":223,"actorIds":1326,"routes":1327,"steps":1329,"trigger":1351,"decisionPoints":1352,"outcome":1353,"edgeCases":1354,"intent":239,"supportingSections":1355,"references":1356},"Refuse a message nobody would receive",[234],[1328],{"id":231,"name":637},[1330,1335,1346],{"text":1331,"kind":641,"actorId":234,"capabilityId":275,"entities":1332,"unattended":450,"contexts":1333},"The Host chooses recipients, writes to them and sends it",[],[1334],{"routeId":231,"placeId":364},{"text":1336,"kind":756,"actorId":449,"capabilityId":275,"entities":1337,"unattended":450,"contexts":1344},"No guest of the event holds any of the chosen answers",[1338,1340,1342],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":1339,"with":449},[],{"entityId":302,"as":449,"effect":658,"from":449,"to":449,"facts":1341,"with":449},[],{"entityId":233,"as":449,"effect":658,"from":449,"to":449,"facts":1343,"with":449},[],[1345],{"routeId":231,"placeId":364},{"text":1347,"kind":647,"actorId":234,"capabilityId":275,"entities":1348,"unattended":450,"contexts":1349},"The Product refuses to send, says nobody would receive it, and keeps the draft",[],[1350],{"routeId":231,"placeId":364},"The Host sends a message to answers no guest currently holds.",[],"Nothing is sent or kept, the Host knows why, and their draft is still there to\nsend to other recipients.",[],[],[],{"id":413,"capabilityId":392,"title":1358,"kindId":223,"actorIds":1359,"routes":1360,"steps":1362,"trigger":1383,"decisionPoints":1384,"outcome":1385,"edgeCases":1386,"intent":239,"supportingSections":1387,"references":1388},"Refuse a plus-one that does not fit",[233],[1361],{"id":231,"name":637},[1363,1370,1376],{"text":1364,"kind":641,"actorId":233,"capabilityId":392,"entities":1365,"unattended":450,"contexts":1368},"The Guest opens their personal link and adds a plus-one to their going answer",[1366],{"entityId":302,"as":449,"effect":658,"from":449,"to":449,"facts":1367,"with":449},[305,306],[1369],{"routeId":231,"placeId":387},{"text":997,"kind":756,"actorId":449,"capabilityId":392,"entities":1371,"unattended":450,"contexts":1374},[1372],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":1373,"with":449},[290],[1375],{"routeId":231,"placeId":387},{"text":1377,"kind":647,"actorId":233,"capabilityId":392,"entities":1378,"unattended":450,"contexts":1381},"The Product refuses the plus-one, says the event is full, and keeps the Guest going alone",[1379],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":1380,"with":449},[],[1382],{"routeId":231,"placeId":387},"A Guest who is going tries to add a plus-one to a full event.",[],"The Guest keeps their own spot without a plus-one, knows why, and the guest\nlist is unchanged.",[],[],[],{"id":414,"capabilityId":392,"title":1390,"kindId":223,"actorIds":1391,"routes":1392,"steps":1394,"trigger":1412,"decisionPoints":1413,"outcome":1414,"edgeCases":1415,"intent":239,"supportingSections":1417,"references":1418},"Refuse an answer once the event has started",[233],[1393],{"id":231,"name":637},[1395,1400,1407],{"text":1396,"kind":641,"actorId":233,"capabilityId":392,"entities":1397,"unattended":450,"contexts":1398},"The Guest chooses an answer on the invitation",[],[1399],{"routeId":231,"placeId":387},{"text":1401,"kind":756,"actorId":449,"capabilityId":392,"entities":1402,"unattended":450,"contexts":1405},"The event has already started",[1403],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":1404,"with":449},[291],[1406],{"routeId":231,"placeId":387},{"text":1408,"kind":647,"actorId":233,"capabilityId":392,"entities":1409,"unattended":450,"contexts":1410},"The Product says answers are closed and records nothing",[],[1411],{"routeId":231,"placeId":387},"Someone tries to answer an invitation after the event's start time.",[],"No answer is recorded and the Guest knows answers are closed. The guest list is\nunchanged.",[1416],"The Guest tries to change their RSVP through its personal link → it is refused the same way and the RSVP stays as it was.",[],[],{"id":356,"capabilityId":273,"title":1420,"kindId":223,"actorIds":1421,"routes":1422,"steps":1424,"trigger":1435,"decisionPoints":1436,"outcome":1437,"edgeCases":1438,"intent":239,"supportingSections":1440,"references":1441},"Refuse an event that ends before it starts",[234],[1423],{"id":231,"name":637},[1425,1430],{"text":1426,"kind":641,"actorId":234,"capabilityId":273,"entities":1427,"unattended":450,"contexts":1428},"The Host enters details whose end comes before their start",[],[1429],{"routeId":231,"placeId":347},{"text":1431,"kind":647,"actorId":234,"capabilityId":273,"entities":1432,"unattended":450,"contexts":1433},"The Product refuses the details, says the end must come after the start, and keeps everything entered",[],[1434],{"routeId":231,"placeId":347},"The Host tries to create an event whose end comes before its start.",[],"No event is created, the Host knows what to correct, and nothing they entered\nis lost.",[1439],"The start is already in the past → the Product refuses it the same way.",[],[],{"id":318,"capabilityId":274,"title":1443,"kindId":223,"actorIds":1444,"routes":1445,"steps":1447,"trigger":1468,"decisionPoints":1469,"outcome":1470,"edgeCases":1471,"intent":239,"supportingSections":1472,"references":1473},"Refuse changing a cancelled event",[234],[1446],{"id":231,"name":637},[1448,1455,1461],{"text":1449,"kind":641,"actorId":234,"capabilityId":274,"entities":1450,"unattended":450,"contexts":1453},"The Host tries to change the details of an event",[1451],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":1452,"with":449},[],[1454],{"routeId":231,"placeId":268},{"text":1244,"kind":756,"actorId":449,"capabilityId":274,"entities":1456,"unattended":450,"contexts":1459},[1457],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":1458,"with":449},[],[1460],{"routeId":231,"placeId":268},{"text":1462,"kind":647,"actorId":234,"capabilityId":274,"entities":1463,"unattended":450,"contexts":1466},"The Product keeps the event as it is and explains that a cancelled event cannot be changed",[1464],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":1465,"with":449},[],[1467],{"routeId":231,"placeId":268},"The Host tries to change the details of an event they already cancelled.",[],"The cancelled event is unchanged, no guest is emailed, and the Host knows why.",[],[],[],{"id":319,"capabilityId":277,"title":1475,"kindId":223,"actorIds":1476,"routes":1477,"steps":1479,"trigger":1508,"decisionPoints":1509,"outcome":1510,"edgeCases":1511,"intent":239,"supportingSections":1512,"references":1513},"Refuse removing an RSVP once the event has started",[234],[1478],{"id":231,"name":637},[1480,1491,1497],{"text":1481,"kind":641,"actorId":234,"capabilityId":277,"entities":1482,"unattended":450,"contexts":1489},"The Host chooses an RSVP on their event's guest list and removes it",[1483,1485,1487],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":1484,"with":449},[292],{"entityId":233,"as":449,"effect":658,"from":449,"to":449,"facts":1486,"with":449},[],{"entityId":302,"as":449,"effect":658,"from":449,"to":449,"facts":1488,"with":449},[305],[1490],{"routeId":231,"placeId":268},{"text":1401,"kind":756,"actorId":449,"capabilityId":277,"entities":1492,"unattended":450,"contexts":1495},[1493],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":1494,"with":449},[291],[1496],{"routeId":231,"placeId":268},{"text":1498,"kind":647,"actorId":234,"capabilityId":277,"entities":1499,"unattended":450,"contexts":1506},"The Product keeps the RSVP and explains that the guest list closed when the event started",[1500,1502,1504],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":1501,"with":449},[],{"entityId":233,"as":449,"effect":658,"from":449,"to":449,"facts":1503,"with":449},[],{"entityId":302,"as":449,"effect":658,"from":449,"to":449,"facts":1505,"with":449},[],[1507],{"routeId":231,"placeId":268},"The Host tries to remove an answer after the event's start time.",[],"The guest list stays as it stood when the event started, and the Host knows\nwhy.",[],[],[],{"id":320,"capabilityId":277,"title":1515,"kindId":215,"actorIds":1516,"routes":1517,"steps":1519,"trigger":1547,"decisionPoints":1548,"outcome":1549,"edgeCases":1550,"intent":239,"supportingSections":1551,"references":1552},"Remove a going RSVP from a full event",[234],[1518],{"id":231,"name":637},[1520,1530,1538],{"text":1521,"kind":641,"actorId":234,"capabilityId":277,"entities":1522,"unattended":450,"contexts":1528},"The Host removes a going RSVP with a plus-one from a full event that has a waitlist, and confirms",[1523,1525],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":1524,"with":449},[290],{"entityId":302,"as":449,"effect":1526,"from":544,"to":449,"facts":1527,"with":449},"removes",[],[1529],{"routeId":231,"placeId":268},{"text":1531,"kind":647,"actorId":234,"capabilityId":277,"entities":1532,"unattended":450,"contexts":1537},"The Product emails the RSVP's guest that the Host removed it",[1533,1535],{"entityId":233,"as":449,"effect":658,"from":449,"to":449,"facts":1534,"with":449},[],{"entityId":302,"as":449,"effect":658,"from":449,"to":449,"facts":1536,"with":449},[304],[],{"text":1539,"kind":647,"actorId":234,"capabilityId":277,"entities":1540,"unattended":450,"contexts":1545},"The two spots the RSVP held open on the event",[1541,1543],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":1542,"with":449},[290],{"entityId":302,"as":449,"effect":658,"from":449,"to":449,"facts":1544,"with":449},[306],[1546],{"routeId":231,"placeId":268},"The Host removes an answer that was holding spots while guests are waiting.",[],"The RSVP is gone and the two spots it held are open. Handing them to\nwaitlisted guests continues in waitlist promotion; the Host picks nobody.",[],[],[],{"id":321,"capabilityId":277,"title":1554,"kindId":219,"actorIds":1555,"routes":1556,"steps":1558,"trigger":1600,"decisionPoints":1601,"outcome":1602,"edgeCases":1603,"intent":239,"supportingSections":1607,"references":1608},"Remove an RSVP",[234],[1557],{"id":231,"name":637},[1559,1570,1577,1584,1591],{"text":1560,"kind":641,"actorId":234,"capabilityId":277,"entities":1561,"unattended":450,"contexts":1568},"The Host chooses an RSVP on their event's guest list, a maybe from someone they did not invite, and removes it",[1562,1564,1566],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":1563,"with":449},[292],{"entityId":233,"as":449,"effect":658,"from":449,"to":449,"facts":1565,"with":449},[],{"entityId":302,"as":449,"effect":658,"from":449,"to":449,"facts":1567,"with":449},[304,305],[1569],{"routeId":231,"placeId":268},{"text":1571,"kind":647,"actorId":234,"capabilityId":277,"entities":1572,"unattended":450,"contexts":1575},"The Product asks the Host to confirm that the RSVP is removed for good",[1573],{"entityId":302,"as":449,"effect":658,"from":449,"to":449,"facts":1574,"with":449},[305],[1576],{"routeId":231,"placeId":268},{"text":1578,"kind":641,"actorId":234,"capabilityId":277,"entities":1579,"unattended":450,"contexts":1582},"The Host confirms",[1580],{"entityId":302,"as":449,"effect":1526,"from":547,"to":449,"facts":1581,"with":449},[],[1583],{"routeId":231,"placeId":268},{"text":1531,"kind":647,"actorId":234,"capabilityId":277,"entities":1585,"unattended":450,"contexts":1590},[1586,1588],{"entityId":233,"as":449,"effect":658,"from":449,"to":449,"facts":1587,"with":449},[],{"entityId":302,"as":449,"effect":658,"from":449,"to":449,"facts":1589,"with":449},[304],[],{"text":1592,"kind":647,"actorId":234,"capabilityId":277,"entities":1593,"unattended":450,"contexts":1598},"The guest list no longer shows the RSVP",[1594,1596],{"entityId":233,"as":449,"effect":658,"from":449,"to":449,"facts":1595,"with":449},[],{"entityId":302,"as":449,"effect":658,"from":449,"to":449,"facts":1597,"with":449},[],[1599],{"routeId":231,"placeId":268},"The Host finds an answer on their guest list that should not be there.",[],"The RSVP is gone for good: the guest list no longer shows it, its personal\nlink no longer opens an answer, and its Guest has been told.",[1604,1605,1606],"The Host leaves before confirming → the RSVP stays as it was and nobody is emailed.","The RSVP is not going or waitlisted → it is removed the same way; a waitlisted one leaves the waitlist and nobody else's place changes.","The removed Guest answers again through the invitation link → it is a new RSVP like any other, at the back of the waitlist if the event is full.",[],[],{"id":415,"capabilityId":392,"title":1610,"kindId":219,"actorIds":1611,"routes":1612,"steps":1614,"trigger":1644,"decisionPoints":1645,"outcome":1646,"edgeCases":1647,"intent":239,"supportingSections":1651,"references":1652},"Say yes with a plus-one",[233],[1613],{"id":231,"name":637},[1615,1620,1625,1632,1639],{"text":1616,"kind":641,"actorId":233,"capabilityId":392,"entities":1617,"unattended":450,"contexts":1618},"The Guest chooses going on the invitation and adds a plus-one",[],[1619],{"routeId":231,"placeId":387},{"text":1621,"kind":641,"actorId":233,"capabilityId":392,"entities":1622,"unattended":450,"contexts":1623},"The Guest gives their name and email",[],[1624],{"routeId":231,"placeId":387},{"text":1626,"kind":756,"actorId":449,"capabilityId":392,"entities":1627,"unattended":450,"contexts":1630},"The event has spots left for both of them",[1628],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":1629,"with":449},[289,290],[1631],{"routeId":231,"placeId":387},{"text":1633,"kind":647,"actorId":233,"capabilityId":392,"entities":1634,"unattended":450,"contexts":1637},"The Product adds the Guest to the guest list as going with their plus-one",[1635],{"entityId":302,"as":449,"effect":650,"from":449,"to":544,"facts":1636,"with":449},[304,305,539,306,307],[1638],{"routeId":231,"placeId":387},{"text":655,"kind":647,"actorId":233,"capabilityId":392,"entities":1640,"unattended":450,"contexts":1643},[1641],{"entityId":302,"as":449,"effect":658,"from":449,"to":449,"facts":1642,"with":449},[304,539],[],"A person holding the invitation link decides to come and bring someone.",[],"The Guest and their plus-one hold two spots, the Host's guest list shows them\nas going, and the Guest has a confirmation with a personal link to their\nanswer.",[1648,1649,1650],"The Host does not allow plus-ones → the invitation offers none and the Guest answers alone.","One spot is left → the Guest may take it without the plus-one, or both join the waitlist.","The email has already answered this event → the Product adds no second RSVP, changes nothing, and emails that address its personal link again.",[],[],{"id":322,"capabilityId":278,"title":1654,"kindId":215,"actorIds":1655,"routes":1656,"steps":1658,"trigger":1688,"decisionPoints":1689,"outcome":1690,"edgeCases":1691,"intent":239,"supportingSections":1692,"references":1693},"See an event nobody has answered",[234],[1657],{"id":231,"name":637},[1659,1666,1677],{"text":1660,"kind":641,"actorId":234,"capabilityId":278,"entities":1661,"unattended":450,"contexts":1664},"The Host opens one of their events",[1662],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":1663,"with":449},[286,292],[1665],{"routeId":231,"placeId":268},{"text":1667,"kind":756,"actorId":449,"capabilityId":278,"entities":1668,"unattended":450,"contexts":1675},"No guest has answered the event yet",[1669,1671,1673],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":1670,"with":449},[],{"entityId":302,"as":449,"effect":658,"from":449,"to":449,"facts":1672,"with":449},[],{"entityId":233,"as":449,"effect":658,"from":449,"to":449,"facts":1674,"with":449},[],[1676],{"routeId":231,"placeId":268},{"text":1678,"kind":647,"actorId":234,"capabilityId":278,"entities":1679,"unattended":450,"contexts":1686},"The Product shows an empty guest list beside the invitation link to share",[1680,1682,1684],{"entityId":302,"as":449,"effect":658,"from":449,"to":449,"facts":1681,"with":449},[],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":1683,"with":449},[286],{"entityId":233,"as":449,"effect":658,"from":449,"to":449,"facts":1685,"with":449},[],[1687],{"routeId":231,"placeId":268},"The Host opens an event before anyone has answered it.",[],"The Host sees that nobody has answered yet and has the invitation link at hand\nto share.",[],[],[],{"id":323,"capabilityId":278,"title":1695,"kindId":219,"actorIds":1696,"routes":1697,"steps":1699,"trigger":1726,"decisionPoints":1727,"outcome":1728,"edgeCases":1729,"intent":239,"supportingSections":1730,"references":1731},"See who answered",[234],[1698],{"id":231,"name":637},[1700,1706,1717],{"text":1660,"kind":641,"actorId":234,"capabilityId":278,"entities":1701,"unattended":450,"contexts":1704},[1702],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":1703,"with":449},[283,290,292],[1705],{"routeId":231,"placeId":268},{"text":1707,"kind":647,"actorId":234,"capabilityId":278,"entities":1708,"unattended":450,"contexts":1715},"The Product lists the event's guests by answer, with their plus-ones and the waitlist in order",[1709,1711,1713],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":1710,"with":449},[],{"entityId":302,"as":449,"effect":658,"from":449,"to":449,"facts":1712,"with":449},[304,305,306,307],{"entityId":233,"as":449,"effect":658,"from":449,"to":449,"facts":1714,"with":449},[],[1716],{"routeId":231,"placeId":268},{"text":1718,"kind":647,"actorId":234,"capabilityId":278,"entities":1719,"unattended":450,"contexts":1724},"The Product totals the people going, plus-ones included, against the event's capacity",[1720,1722],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":1721,"with":449},[283,290],{"entityId":302,"as":449,"effect":658,"from":449,"to":449,"facts":1723,"with":449},[306],[1725],{"routeId":231,"placeId":268},"The Host wants to know who has answered their event.",[],"The Host sees every guest under their current answer, the waitlist in the\norder it will move, and how many people are going against the capacity.",[],[],[],{"id":379,"capabilityId":275,"title":1733,"kindId":219,"actorIds":1734,"routes":1735,"steps":1737,"trigger":1774,"decisionPoints":1775,"outcome":1776,"edgeCases":1777,"intent":239,"supportingSections":1780,"references":1781},"Start a message from suggested wording",[234],[1736],{"id":231,"name":637},[1738,1744,1753,1758,1762],{"text":1160,"kind":641,"actorId":234,"capabilityId":275,"entities":1739,"unattended":450,"contexts":1742},[1740],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":1741,"with":449},[292],[1743],{"routeId":231,"placeId":364},{"text":1745,"kind":647,"actorId":234,"capabilityId":275,"entities":1746,"unattended":450,"contexts":1751},"The Product asks a language model for a subject and body from the event's details and puts them in the unsent message, without sending anything",[1747,1749],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":1748,"with":449},[284,285,287,288,291,292],{"entityId":295,"as":449,"effect":658,"from":449,"to":449,"facts":1750,"with":449},[],[1752],{"routeId":231,"placeId":364},{"text":1754,"kind":641,"actorId":234,"capabilityId":275,"entities":1755,"unattended":450,"contexts":1756},"The Host edits the suggested subject and body",[],[1757],{"routeId":231,"placeId":364},{"text":1119,"kind":641,"actorId":234,"capabilityId":275,"entities":1759,"unattended":450,"contexts":1760},[],[1761],{"routeId":231,"placeId":364},{"text":1182,"kind":647,"actorId":234,"capabilityId":275,"entities":1763,"unattended":450,"contexts":1772},[1764,1766,1768,1770],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":1765,"with":449},[],{"entityId":295,"as":449,"effect":650,"from":449,"to":449,"facts":1767,"with":449},[374,297,298,299],{"entityId":302,"as":449,"effect":658,"from":449,"to":449,"facts":1769,"with":449},[304],{"entityId":233,"as":449,"effect":658,"from":449,"to":449,"facts":1771,"with":449},[],[1773],{"routeId":231,"placeId":364},"The Host wants help putting a message to their guests into words.",[],"The chosen guests receive the message as the Host edited and sent it. The\nsuggestion itself was never sent, and only the sent message is kept.",[1778,1779],"The Host asks again → the Product replaces the unsent suggestion with a new one.","The Host leaves without sending → nothing is sent or kept.",[],[],[1783,1794],{"id":1784,"title":1785,"goal":1786,"successCriterion":1787,"actorIds":1788,"capabilityIds":1789,"failureOnlyCapabilityIds":1790,"domainIds":1791,"intent":239,"supportingSections":1792,"references":1793},"answer-an-invitation","Answer an invitation","A Guest wants the Host to know whether they are coming, and to keep that true\nas their plans change.","The Host's guest list shows the Guest's current answer.",[233],[391,392],[],[440],[],[],{"id":1795,"title":1796,"goal":1797,"successCriterion":1798,"actorIds":1799,"capabilityIds":1800,"failureOnlyCapabilityIds":1801,"domainIds":1802,"intent":239,"supportingSections":1803,"references":1804},"host-an-event","Host an event","A Host wants the people they invite to answer, and to know who is coming.","The event is scheduled, its invitation link is out, and the guest list shows\nthe answers that came back.",[234],[273,392,278],[],[427,433,440],[],[],[1806,1855,1893],{"id":325,"journeyId":1795,"result":1807,"title":1808,"kindId":219,"actorIds":1809,"routes":1810,"steps":1812,"trigger":1849,"decisionPoints":1850,"outcome":1851,"edgeCases":1852,"intent":239,"supportingSections":1853,"references":1854},"achieved","Invite guests and see who is coming",[233,234],[1811],{"id":231,"name":637},[1813,1820,1827,1831,1838],{"text":1814,"kind":641,"actorId":234,"capabilityId":273,"entities":1815,"unattended":450,"contexts":1818},"The Host creates an event with its time, place and capacity",[1816],{"entityId":281,"as":449,"effect":650,"from":449,"to":479,"facts":1817,"with":449},[283,284,285,286,288,289,291,292],[1819],{"routeId":231,"placeId":347},{"text":1821,"kind":647,"actorId":234,"capabilityId":273,"entities":1822,"unattended":450,"contexts":1825},"The Product opens the new event with its invitation link, before anyone has answered",[1823],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":1824,"with":449},[286,292],[1826],{"routeId":231,"placeId":268},{"text":1828,"kind":641,"actorId":234,"capabilityId":449,"entities":1829,"unattended":450,"contexts":1830},"The Host shares the invitation link outside the Product",[],[],{"text":1832,"kind":641,"actorId":233,"capabilityId":392,"entities":1833,"unattended":450,"contexts":1836},"A Guest answers going through the invitation link",[1834],{"entityId":302,"as":449,"effect":650,"from":449,"to":544,"facts":1835,"with":449},[304,305,539,306,307],[1837],{"routeId":231,"placeId":387},{"text":1839,"kind":641,"actorId":234,"capabilityId":278,"entities":1840,"unattended":450,"contexts":1847},"The Host sees the Guest on the event's guest list as going",[1841,1843,1845],{"entityId":302,"as":449,"effect":658,"from":449,"to":449,"facts":1842,"with":449},[305,306],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":1844,"with":449},[290],{"entityId":233,"as":449,"effect":658,"from":449,"to":449,"facts":1846,"with":449},[],[1848],{"routeId":231,"placeId":268},"The Host decides to hold an event and invite people to it.",[],"The Journey goal is achieved: the event is scheduled, its link is shared, and\nthe Host sees the answers on the guest list as they arrive.",[],[],[],{"id":417,"journeyId":1784,"result":1807,"title":1856,"kindId":219,"actorIds":1857,"routes":1858,"steps":1860,"trigger":1887,"decisionPoints":1888,"outcome":1889,"edgeCases":1890,"intent":239,"supportingSections":1891,"references":1892},"Say yes, then change to maybe",[233],[1859],{"id":231,"name":637},[1861,1868,1874,1881],{"text":1862,"kind":641,"actorId":233,"capabilityId":392,"entities":1863,"unattended":450,"contexts":1866},"The Guest answers going on the invitation with their name and email",[1864],{"entityId":302,"as":449,"effect":650,"from":449,"to":544,"facts":1865,"with":449},[304,305,539,306,307],[1867],{"routeId":231,"placeId":387},{"text":1869,"kind":647,"actorId":233,"capabilityId":392,"entities":1870,"unattended":450,"contexts":1873},"The Product emails the Guest a confirmation with a personal link to their RSVP",[1871],{"entityId":302,"as":449,"effect":658,"from":449,"to":449,"facts":1872,"with":449},[304,539],[],{"text":1875,"kind":641,"actorId":233,"capabilityId":391,"entities":1876,"unattended":450,"contexts":1879},"Later, the Guest follows the personal link and sees their RSVP",[1877],{"entityId":302,"as":449,"effect":658,"from":449,"to":449,"facts":1878,"with":449},[305,306],[1880],{"routeId":231,"placeId":387},{"text":720,"kind":641,"actorId":233,"capabilityId":392,"entities":1882,"unattended":450,"contexts":1885},[1883],{"entityId":302,"as":449,"effect":684,"from":544,"to":547,"facts":1884,"with":449},[307],[1886],{"routeId":231,"placeId":387},"A Guest answers yes and later becomes unsure they can come.",[],"The Journey goal is achieved: the guest list shows the Guest as maybe, and the\nspot they held is open for someone else.",[],[],[],{"id":418,"journeyId":1784,"result":1894,"title":1895,"kindId":215,"actorIds":1896,"routes":1897,"steps":1899,"trigger":1928,"decisionPoints":1929,"outcome":1930,"edgeCases":1931,"intent":239,"supportingSections":1932,"references":1933},"not-achieved","Try to change an answer after the event starts",[233],[1898],{"id":231,"name":637},[1900,1907,1912,1921],{"text":1901,"kind":641,"actorId":233,"capabilityId":392,"entities":1902,"unattended":450,"contexts":1905},"The Guest answers maybe on the invitation with their name and email",[1903],{"entityId":302,"as":449,"effect":650,"from":449,"to":547,"facts":1904,"with":449},[304,305,539,306,307],[1906],{"routeId":231,"placeId":387},{"text":1869,"kind":647,"actorId":233,"capabilityId":392,"entities":1908,"unattended":450,"contexts":1911},[1909],{"entityId":302,"as":449,"effect":658,"from":449,"to":449,"facts":1910,"with":449},[304,539],[],{"text":1913,"kind":641,"actorId":233,"capabilityId":391,"entities":1914,"unattended":450,"contexts":1919},"The Guest follows the personal link after the event has started",[1915,1917],{"entityId":281,"as":449,"effect":658,"from":449,"to":449,"facts":1916,"with":449},[291],{"entityId":302,"as":449,"effect":658,"from":449,"to":449,"facts":1918,"with":449},[305,306],[1920],{"routeId":231,"placeId":387},{"text":1922,"kind":647,"actorId":233,"capabilityId":449,"entities":1923,"unattended":450,"contexts":1926},"The Product shows the Guest's answer as it stands and takes no change",[1924],{"entityId":302,"as":449,"effect":658,"from":449,"to":449,"facts":1925,"with":449},[],[1927],{"routeId":231,"placeId":387},"A Guest who answered maybe decides only once the event is under way.",[],"The Journey goal is not achieved: the guest list still shows the Guest as\nmaybe, because answers closed when the event started.",[],[],[],[1935,1953,1970,1984,2011,2028,2049,2067,2085,2103,2119],{"id":1936,"title":1937,"statement":1938,"rationale":1939,"appliesTo":1940,"permits":1945,"intent":239,"supportingSections":1951,"references":1952},"a-new-event-belongs-to-its-host","A new event belongs to its host","An event is created by a signed-in Host, and belongs from the start to that\nHost as its only host. A Guest reaches events only through the invitations they\nare given.","An event speaks for whoever holds it. Tying each one to the account that made it\nis what lets only that Host change, cancel or message about it.",[1941],{"type":1942,"entityId":281,"effect":650,"from":449,"to":449,"facts":1943,"contexts":1944},"entity",[],[],[1946],{"actorIds":1947,"related":1948,"self":450,"when":1950,"unattended":450,"configuredByEntityId":449},[],[1949],{"verb":506,"entityId":234},[],[],[],{"id":1954,"title":1955,"statement":1956,"rationale":1957,"appliesTo":1958,"permits":449,"intent":239,"supportingSections":1968,"references":1969},"answers-close-when-the-event-starts","Answers close when the event starts","An event's RSVPs are given, changed, moved off the waitlist and removed only\nwhile the event is scheduled and has not started. After that, the guest list\nstays as it stood.","The guest list at the start time is what the host plans the gathering around;\nanswers arriving later would change it after it no longer matters.",[1959,1962,1965],{"type":1942,"entityId":302,"effect":650,"from":449,"to":449,"facts":1960,"contexts":1961},[],[],{"type":1942,"entityId":302,"effect":684,"from":449,"to":449,"facts":1963,"contexts":1964},[],[],{"type":1942,"entityId":302,"effect":1526,"from":449,"to":449,"facts":1966,"contexts":1967},[],[],[],[],{"id":1971,"title":1972,"statement":1973,"rationale":1974,"appliesTo":1975,"permits":449,"intent":239,"supportingSections":1982,"references":1983},"going-guests-stay-within-capacity","Going guests stay within capacity","The going RSVPs of an event, plus-ones included, never take more spots than its\ncapacity holds. A yes that does not fit joins the waitlist, and a plus-one that\ndoes not fit is refused. Lowering the capacity never removes anyone already\ngoing; it only leaves no spots until enough guests change their answer.","Capacity is the host's promise to a venue or a call. It has to hold without the\nhost watching every answer as it arrives.",[1976,1979],{"type":1942,"entityId":302,"effect":449,"from":449,"to":449,"facts":1977,"contexts":1978},[],[],{"type":1942,"entityId":281,"effect":449,"from":449,"to":449,"facts":1980,"contexts":1981},[283,290],[],[],[],{"id":1985,"title":1986,"statement":1987,"rationale":1988,"appliesTo":1989,"permits":1993,"intent":239,"supportingSections":2009,"references":2010},"guest-contact-details-are-for-the-host","Guest contact details are for the host","The name and email on an RSVP are seen by the Host of its event and by the\nGuest who gave it, and used by the Product only to email that Guest. The\ninvitation never shows one guest's details to another.","Anyone holding a public link can open the invitation. Answering it must not\nexpose who else is coming or how to reach them.",[1990],{"type":1942,"entityId":302,"effect":658,"from":449,"to":449,"facts":1991,"contexts":1992},[304,305],[],[1994,2000,2005],{"actorIds":1995,"related":1996,"self":450,"when":1999,"unattended":450,"configuredByEntityId":449},[],[1997,1998],{"verb":474,"entityId":281},{"verb":506,"entityId":234},[],{"actorIds":2001,"related":2002,"self":450,"when":2004,"unattended":450,"configuredByEntityId":449},[],[2003],{"verb":494,"entityId":233},[],{"actorIds":2006,"related":2007,"self":450,"when":2008,"unattended":937,"configuredByEntityId":449},[],[],[],[],[],{"id":2012,"title":2013,"statement":2014,"rationale":2015,"appliesTo":2016,"permits":2020,"intent":239,"supportingSections":2026,"references":2027},"only-a-guest-gives-an-rsvp","Only a guest gives an RSVP","An RSVP is given by the person answering, through the invitation link. The\nHost never adds one on a guest's behalf.","Every entry on the guest list is someone's own answer, so the host can trust it\nwithout asking who put it there.",[2017],{"type":1942,"entityId":302,"effect":650,"from":449,"to":449,"facts":2018,"contexts":2019},[],[],[2021],{"actorIds":2022,"related":2023,"self":450,"when":2025,"unattended":450,"configuredByEntityId":449},[],[2024],{"verb":494,"entityId":233},[],[],[],{"id":2029,"title":2030,"statement":2031,"rationale":2032,"appliesTo":2033,"permits":2037,"intent":239,"supportingSections":2047,"references":2048},"only-its-guest-or-the-waitlist-changes-an-rsvp","Only its guest or the waitlist changes an RSVP","An RSVP's answer and plus-one are changed by the Guest who gave it, through its\npersonal link, or by the Product itself when the waitlist gives it a spot. The\nHost reads answers and never changes them.","An answer is the guest's own word to the host. The guest list is trustworthy\nonly while each entry says what its guest last said.",[2034],{"type":1942,"entityId":302,"effect":684,"from":449,"to":449,"facts":2035,"contexts":2036},[],[],[2038,2043],{"actorIds":2039,"related":2040,"self":450,"when":2042,"unattended":450,"configuredByEntityId":449},[],[2041],{"verb":494,"entityId":233},[],{"actorIds":2044,"related":2045,"self":450,"when":2046,"unattended":937,"configuredByEntityId":449},[],[],[],[],[],{"id":2050,"title":2051,"statement":2052,"rationale":2053,"appliesTo":2054,"permits":2058,"intent":239,"supportingSections":2065,"references":2066},"only-its-host-changes-a-scheduled-event","Only its host changes a scheduled event","An event's details, its capacity and whether it is cancelled are changed only\nby the Host who created it, and only while it is scheduled. A cancelled event\nstays as it was cancelled.","Guests act on what the invitation says. Once an event is called off, changing\nit again would send guests conflicting news about something that is not\nhappening.",[2055],{"type":1942,"entityId":281,"effect":684,"from":449,"to":449,"facts":2056,"contexts":2057},[],[],[2059],{"actorIds":2060,"related":2061,"self":450,"when":2063,"unattended":450,"configuredByEntityId":449},[],[2062],{"verb":506,"entityId":234},[2064],{"entityId":449,"fact":449,"state":479,"operator":449,"value":449},[],[],{"id":2068,"title":2069,"statement":2070,"rationale":2071,"appliesTo":2072,"permits":2076,"intent":239,"supportingSections":2083,"references":2084},"only-its-host-removes-an-rsvp","Only its host removes an RSVP","An RSVP is removed only by the Host of its event. A Guest who no longer wants\nto come answers not going instead.","The guest list is the host's to keep clean, but a guest who has answered should\nstill show up on it unless the host decides otherwise.",[2073],{"type":1942,"entityId":302,"effect":1526,"from":449,"to":449,"facts":2074,"contexts":2075},[],[],[2077],{"actorIds":2078,"related":2079,"self":450,"when":2082,"unattended":450,"configuredByEntityId":449},[],[2080,2081],{"verb":474,"entityId":281},{"verb":506,"entityId":234},[],[],[],{"id":2086,"title":2087,"statement":2088,"rationale":2089,"appliesTo":2090,"permits":2094,"intent":239,"supportingSections":2101,"references":2102},"only-the-host-sends-a-message-to-guests","Only the host sends a message to guests","A message reaches an event's guests only when that event's Host sends it.\nSuggested wording is a draft in the Host's hands: the Product never sends a\nmessage on its own, and nothing the Host has not sent is kept.","A message speaks for the host to people who trusted them with an email address.\nEvery word that reaches a guest has to be one the host chose to send.",[2091],{"type":1942,"entityId":295,"effect":650,"from":449,"to":449,"facts":2092,"contexts":2093},[],[],[2095],{"actorIds":2096,"related":2097,"self":450,"when":2100,"unattended":450,"configuredByEntityId":449},[],[2098,2099],{"verb":474,"entityId":281},{"verb":506,"entityId":234},[],[],[],{"id":2104,"title":2105,"statement":2106,"rationale":2107,"appliesTo":2108,"permits":2112,"intent":239,"supportingSections":2117,"references":2118},"only-the-waitlist-gives-a-waitlisted-guest-a-spot","Only the waitlist gives a waitlisted guest a spot","A waitlisted RSVP becomes going only when the Product moves it as spots open:\nthe earliest waitlisted party that fits the open spots goes first. No guest\nmoves themselves ahead, and the Host does not pick who gets in.","People on a waitlist accept waiting because the order is fair and visible.\nMoving someone by hand would break that promise for everyone behind them.",[2109],{"type":1942,"entityId":302,"effect":684,"from":553,"to":544,"facts":2110,"contexts":2111},[],[],[2113],{"actorIds":2114,"related":2115,"self":450,"when":2116,"unattended":937,"configuredByEntityId":449},[],[],[],[],[],{"id":2120,"title":2121,"statement":2122,"rationale":2123,"appliesTo":2124,"permits":2128,"intent":239,"supportingSections":2141,"references":2142},"the-online-link-is-for-the-host-and-guests","The online link is for the host and guests","Where to join an online event is shown to its Host, and to a Guest who opens\nit through the personal link of their RSVP while the event is scheduled. The\npublic invitation says only that the event is online, and a cancelled event\nshows no link.","The invitation link travels further than the host intended. Keeping where to\njoin behind an answer keeps people the host never heard from out of the call.",[2125],{"type":1942,"entityId":281,"effect":658,"from":449,"to":449,"facts":2126,"contexts":2127},[287],[],[2129,2134],{"actorIds":2130,"related":2131,"self":450,"when":2133,"unattended":450,"configuredByEntityId":449},[],[2132],{"verb":506,"entityId":234},[],{"actorIds":2135,"related":2136,"self":450,"when":2139,"unattended":450,"configuredByEntityId":449},[],[2137,2138],{"verb":474,"entityId":302},{"verb":494,"entityId":233},[2140],{"entityId":449,"fact":449,"state":479,"operator":449,"value":449},[],[],[],{"scope":239,"method":239,"covered":2145,"exclusions":2146,"unmapped":2147,"limitations":2148},[],[],[],[],{"path":2150,"commit":2151},"blueprints\u002Fevent-rsvp","f474777f17005554bb7fd1f1e18189bfd01792bc",1791840534156]