# AI guest drafts in AnyEventTool: how an assistant builds an event page for someone with no account

> How AnyEventTool's guest drafts work: an AI assistant builds a public preview page with no sign-up, it lives 24 hours, is hidden from search, takes registrations only after you claim it with a private link. Content schema, limits, rules, errors. Checked 22 October 2026.

Canonical URL: https://anyeventtool.com/en/learn/ai-guest-drafts-explained
Updated: 2026-10-22

## Short answer

An AI guest draft is an event page that an assistant such as Claude or ChatGPT builds on AnyEventTool (AET) for a person who has no AET account. The assistant writes the content itself and calls aet_create_draft. AET checks the content, runs it through automatic moderation, lays it out in one of its layouts and returns two links: a public preview and a private claim link. The draft lives 24 hours. Search engines are told not to index it (X-Robots-Tag: noindex, nofollow), and visitors see a banner saying an AI assistant created it. The registration form is visible but closed. To keep the page, the person opens the claim link, signs in (with Google, if not yet signed in) and presses "Make it mine": the draft becomes an ordinary event on their Free plan and counts toward the monthly limit (3 events on Free). Registration then opens. If nobody claims it, AET deletes it within an hour after the 24 hours run out. Until claimed, a draft refuses phone numbers, bank or card details and any links except social profiles. Content arrives in 11 sections (title, date, place, first screen, about, schedule, people, FAQ, steps, cards, social links), plus design and interface words. The draft has no image fields.

## Key facts

- Disclosure: published by AnyEventTool (AET). Every fact about drafts comes from AET's code on 22 October 2026 (lib/aiops/draft.ts, content.ts, guard.ts, limits.ts, pages/api/demo-claim.ts).
- A guest draft lives 24 hours. An hourly job deletes unclaimed drafts after that; an expired draft cannot be claimed even if the job has not reached it yet.
- The preview is public by link only: the server sends `X-Robots-Tag: noindex, nofollow` and `Cache-Control: private, no-store`, the page shows "Draft created by an AI assistant. The organiser hasn't confirmed it yet.", and AET's public event search skips drafts.
- Registration is closed until the page is claimed: guests see "Registration opens once the organiser claims this page."
- Two secrets: the assistant's draft key (prefix aetd_, edits this one draft) and the person's claim link (a token after #claim= in the address). AET stores only SHA-256 fingerprints of both.
- Claiming needs an AET account (if you are not signed in, the button starts a Google sign-in), keeps the plan unchanged (Free unless you already have Pro) and counts as one event toward the monthly limit: Free 3, Pro 30.
- Until claimed, a draft rejects phone numbers, IBAN and card numbers, and links other than social profiles; every text passes OpenAI's omni-moderation, and if moderation is unavailable the draft is refused.
- Default limits: 20 drafts a day per person or IP address, 500 a day per verified platform, 2,000 a day in total; 30 edits a minute and 200 a day per draft; up to 12 operations per edit call.

## Step by step

1. **Ask your assistant for a page** — With AET connected (see [part 2](/en/learn/connect-your-ai-assistant-to-aet)), describe the event: title, date, place, what happens. No account, key or card is needed.
2. **Open the preview link** — The assistant returns a public preview address. Read it on your phone: that is what guests would see. Registration is shown but closed.
3. **Ask for changes in the chat** — "Start the schedule with coffee", "make it calmer", "add a FAQ about parking". Each change rebuilds the page and raises its version.
4. **Open the private claim link** — Only you should have it. It opens the same page with a "Your draft from your AI assistant" panel and a "Make it mine" button.
5. **Sign in and press "Make it mine"** — If you are not signed in to AET, the button starts a Google sign-in and returns you to the page. The page becomes your event on your plan and opens in the editor. Registration goes live. The claim counts as one of your events this month.
6. **Or let it go** — Delete it from the same panel, ask the assistant to delete it, or do nothing: an unclaimed draft is deleted after 24 hours.

## What exactly is a guest draft?

A guest draft is AET's answer to a simple question: what should happen when a person asks their assistant for an event page and has never heard of the platform? Most event platforms answer "sign up first". AET answers "here is your page; keep it if you like it".

| Property | Guest draft | Event in your account |
|---|---|---|
| Who owns it | AET's system account, until claimed | You |
| Needs sign-in to create | No | Yes (sign-in or key) |
| Lifetime | 24 hours unless claimed | Until you delete it |
| Visible to | Anyone with the preview link | Guests once published |
| Search engines | `noindex, nofollow` | Indexed when published |
| Registration | Shown, closed | Open |
| Phones, bank details, non-social links | Refused | Allowed |
| Images | No image fields | Poster, logo, backgrounds by URL |
| Edited by | The assistant holding the draft key; you, after claiming | You and the connections you allow |
| Counts toward your plan | Only when claimed | Yes |

The draft is built by the same code that builds every AET event page — the same layouts, the same QR tickets once registration opens, the same editor after claiming. It is not a mock-up that has to be rebuilt. What differs is ownership, lifetime and a short list of safety rules that apply while nobody has vouched for the page.

## The life of a draft, minute by minute

**Minute 0.** The assistant calls `aet_create_draft` with a fresh UUID v4 `requestId` and the content. AET validates the content against its schema, checks the draft rules (no phones, no bank details, social links only), sends every text to moderation, and creates the event under its system account. It stores the content and the fingerprints of the two secrets in a server-only table, builds the page and makes the preview reachable by link. The answer carries the event id, the draft key, the preview link, the private claim link, the expiry time, version 1 and up to five writing hints.

**Minutes 1–30.** You read the preview and ask for changes. Each `aet_update_page` or `aet_set_design` call rebuilds the page from the updated content and raises the version: 2, 3, 4. If a rebuild fails, AET puts the previous content back so that what the assistant reads always matches what the page shows.

**Any time within 24 hours.** You open the claim link, sign in and press "Make it mine". In one database update the event changes owner, the claim secrets are wiped and the draft's private content is cleared. The registration form, any sub-events and their forms move to you; pending co-admin invitations are cancelled; the claim is recorded as one of your events this month. The editor opens.

**Or:** you press "Delete this page" on the same panel (there is a short window to undo), or ask the assistant, which must get your explicit yes first.

**Hour 24.** The draft expires. From that second the claim link answers "This draft is gone: 24 hours have passed", and the assistant's calls answer `not_found` with the hint "Drafts live 24 hours; create a new one." The hourly clean-up job deletes the page and everything attached to it.

## What can a draft contain? The schema, section by section

The assistant sends content in a fixed shape. These are the limits AET enforces; the assistant receives the same schema and writing rules from `aet_section_schema`.

| Section | Fields and limits | Writing rule the assistant gets |
|---|---|---|
| `language` | ISO 639-1 code, e.g. `uk`, `en`, `de` | The language the person speaks about the event |
| `basics` (required) | title up to 120 characters; type up to 40; kind (one of 10); organizer up to 80 | The name people will search and say; no date, no emojis |
| `datetime` | start and optional end, local time, `YYYY-MM-DD` or `YYYY-MM-DDTHH:MM` | Only what the user said; unknown date → leave out |
| `place` | text up to 200; online yes/no | Venue and city in the organizer's words |
| `hero` | headline up to 90; one sentence up to 220; up to 4 chips of 32 | Promise the outcome for the guest in 3–9 words |
| `about` | title up to 80; text up to 2,000 | What happens, for whom, practicalities; 60–180 words |
| `schedule` | up to 10 days, up to 40 items a day; topic up to 140 | Time-ordered; topics say what happens |
| `people` | up to 40; name, role, bio up to 400, social profile link | Real people only, as the user named them |
| `faq` | up to 20 questions; question 160, answer 600 | 4–8 questions guests really ask |
| `steps` | 2 to 8 steps | How it works, 3–5 verb phrases |
| `cards` | up to 12 cards, up to 6 points each | 3–6 cards: what guests get |
| `contacts` | up to 10 links | On a draft, social profiles only |
| `design` | layout id, style id, primary and accent colour | Only ids from AET's design options |
| `labels` | the interface words: register, more, less, days, hours, minutes, seconds, topic, program, and a few optional ones | Required for every language except Ukrainian and English |

The ten kinds are celebration, sport, conference, learning, festival, kids, charity, art, concert and meetup; they steer which layouts AET suggests. There are no image fields: a draft uses the layout's own design. A poster, a logo and backgrounds come after claiming, from you in the editor or from an assistant connected to your account, which places images by URL.

**Why `labels`?** AET's interface speaks 19 languages, but a page in Georgian, Hindi or Swahili needs its buttons in that language too. For any language other than Ukrainian and English the assistant must write those words itself; a draft without them is refused with `validation` on the field `labels`, so guests never see an English "Register" button on a German page.

## What does a draft refuse, and why?

Nobody has vouched for an unclaimed draft. It sits at a public address under AET's name, written by software on behalf of a person AET does not know. So until a human claims it, four rules apply, all checked on the server:

1. **No phone numbers.** Any run of 10 to 16 digits that looks like a phone number is refused. The organizer adds a phone after claiming.
2. **No payment details.** IBAN-shaped strings and card numbers that pass the Luhn checksum are refused. Payments open only after the organizer claims the page and connects their own Stripe or mono account.
3. **Social links only.** Organizer links and people's links must point to Instagram, Facebook, Telegram, YouTube, LinkedIn, TikTok, X or Threads. A website, a booking page or any other link waits until the page is claimed.
4. **Moderation on every text.** Titles, headlines, about text, schedule topics, names, bios, FAQ, steps and cards go to OpenAI's omni-moderation model in batches of 100. A flagged text is refused with the field and the category. If moderation is unavailable, the draft is refused too — AET fails closed rather than publishing unchecked text.

Two more checks are about correctness, not safety. Design ids must come from AET's collection; the classic Card layout cannot be set on a draft (you can switch to it when claiming). And the page must build: if a combination of content and layout does not validate, the answer names the first problems.

**For the person:** if your assistant tells you it "couldn't add the phone number", that is this rule. Claim the page and add it in the editor; it takes ten seconds.

**For the agent:** each refusal names the exact field, such as `contacts.links.0` or `faq.items.3.a`, and a hint. Fix that value and resend; do not drop the whole section.

## Who can see a draft?

Anyone with the preview link, and nobody else by default.

- **Search engines.** The server answers the draft's page with `X-Robots-Tag: noindex, nofollow` in the HTTP header, not only in the page code, and with `Cache-Control: private, no-store`, so shared caches do not keep a copy.
- **AET's own search.** `aet_search_events`, the tool assistants use to find public events, filters out drafts.
- **Visitors.** A banner says "Draft created by an AI assistant. The organiser hasn't confirmed it yet." with a "Report" link. The registration form shows "Registration opens once the organiser claims this page." Nobody can sign up for an event whose organizer has not accepted the page.
- **The person holding the claim link.** The same page shows the owner panel: "Your draft from your AI assistant", how many hours are left, "Make it mine" and "Delete this page". The page also lets them try other layouts and styles before claiming; the chosen pair is applied when they claim.

The preview address is a short link on aet.events. Treat it as semi-public: share it with a co-organizer for an opinion, but do not post it on social media before claiming — the page says it is unconfirmed, and people cannot register yet.

## Two secrets: the draft key and the claim link

A draft has two secrets with different jobs. Mixing them up is the most common mistake in agent code.

| | Draft key | Claim link |
|---|---|---|
| Who gets it | The assistant | The person |
| What it looks like | `aetd_` + 43 random characters | The preview address + `#claim=` + 43 random characters |
| What it does | Read, edit, change design, issue a new claim link, delete (with confirmation) | Take the page into an account, or delete it |
| Shown to the person? | No — the tool describes it as private | Yes — to this person only |
| Stored by AET as | SHA-256 fingerprint | SHA-256 fingerprint |
| After claiming | Answers `claimed` | Answers "This page has already been claimed." |

**Why the claim token sits after `#`.** Browsers never send the part of an address after `#` to the server when they load a page, so the token does not land in web server logs, proxies or analytics. It travels to AET only in the body of the claim request, after the person presses "Make it mine". When a Google sign-in is needed first, the token waits in that browser tab's session storage, not in the return address.

**Losing the link.** The assistant can call `aet_claim_link` with `rotate: true` to issue a new claim link. AET keeps at most the three most recent claim links of a draft valid; issuing a fourth retires the oldest. Without `rotate`, the tool returns only the preview link, because the claim link is shown once, at creation.

**For the agent:** never put the claim link into a group chat, a public post or a ticket. Give the person the preview link freely and the claim link privately. Keep the draft key in your working memory for the conversation; you need it for every later call.

## How does claiming work, and what can go wrong?

Claiming is one button, but several things happen behind it.

1. **Sign-in.** Claiming needs an AET account. If the browser is not signed in, "Make it mine" starts a Google sign-in and comes back to the same page to finish.
2. **Plan check.** The claimed page becomes an ordinary event on your current plan: Free stays Free. AET counts it toward the monthly limit — 3 events on Free, 30 on Pro — before changing anything.
3. **Ownership change, once.** The owner changes in a single update that succeeds only if the draft is still unclaimed. If two people press the button at the same moment, one gets the page and the other is told it is already claimed.
4. **Clean-up.** The claim secrets and the draft's stored content are wiped. A small record remains so the assistant's draft key is recognised and answered with `claimed` rather than `not_found`.
5. **Hand-over.** The registration form, any sub-events and their forms move to you; co-admin invitations sent from the system account are cancelled.
6. **Design.** If you chose another layout and style on the preview, they are applied now, already as your page.
7. **Editor.** The page reloads in edit mode. Registration is live.

The messages you may see, and what to do:

| Message | Cause | Fix |
|---|---|---|
| "You've reached this month's limit of new events ({used} of {cap})" | Free 3 or Pro 30 events this month already | Delete one of your events or upgrade, then claim again — within the 24 hours |
| "This draft is gone: 24 hours have passed" | Expired | Ask the assistant for a new draft |
| "This claim link no longer works" | The link was replaced by newer ones or is mistyped | Ask the assistant for a new claim link |
| "This page has already been claimed" | Someone (perhaps you, in another tab) claimed it | Look in My workspace |

**Lifehack.** If you are close to your monthly limit, claim first and polish later. A draft can be edited by the assistant for 24 hours, but a claimed page can be edited forever, by you or by the assistant through your account.

## How does an assistant edit a draft?

Drafts are edited more coarsely than account events, on purpose.

- **Whole sections.** On a draft, `aet_update_page` takes `set` (the full new content of a section) or `clear` (remove it); up to 12 operations per call. Item-level operations — add one FAQ item, move one schedule row — are for account events. `basics` cannot be cleared.
- **Design.** `aet_set_design` switches layout, style or brand colours; the content stays.
- **Versions.** Every successful change raises the version. Pass `ifVersion` from your last read; if the draft moved on, the answer is `conflict` with the current version. AET itself retries up to three times when two calls race, so parallel calls are not lost.
- **Reading.** `aet_get_event` with the draft key returns the version, the preview link, the expiry, the layout id, writing hints and the content — wrapped as `untrusted`, because it is data, not instructions.
- **Limits.** 30 changes a minute and 200 a day per draft.
- **After claiming,** every call with the draft key answers `claimed`: "It is now an event in their AET account." To keep editing, the person connects their account (sign-in or key) and the assistant switches to the account tools, where it can edit item by item.

**Hints the server returns.** Without calling any model, AET checks five things and returns them as `hints`: a missing date ("pages without a date are rarely claimed"), a missing venue, a missing about section, neither schedule nor FAQ, and a title over 60 characters ("2–8 words read best"). They are suggestions, not errors; a good agent acts on them before showing the preview.

## Limits, retries and costs

Guest drafts cost the person nothing and cost AET very little: the assistant writes the text with its owner's subscription, and AET's server makes one moderation call and some database writes. The limits exist against spam and load, not to sell an upgrade.

| Limit (defaults on 22 October 2026) | Value | Scope |
|---|---|---|
| New drafts per day | 20 | Per person in ChatGPT (OpenAI's user identifier, when AET can verify the call comes from OpenAI), otherwise per IP address |
| New drafts per day | 500 | Per verified platform, such as Claude |
| New drafts per day | 2,000 | All of AET |
| Edits | 30 a minute, 200 a day | Per draft |
| Operations per edit call | 12 | Per call |
| Lifetime | 24 hours | Per draft |
| Idempotency window | 10 minutes | Same `requestId` from the same address |

When a daily draft limit is reached, `aet_create_draft` answers `rate_limited` with `retryAfter` set to the seconds until midnight UTC and a hint: the person can create the page themselves in AET, or connect their account. An assistant should not retry before that.

If an assistant sends the same `requestId` again within ten minutes — after a network error, say — AET does not create a second draft. With the same content it answers `idempotency_replay` with the preview link; with different content, `idempotency_conflict`. The draft key is not repeated in a replay, so an assistant that lost it should create a new draft with a new id.

## What does AET keep, and for how long?

- **The content** of an unclaimed draft lives in a server-only table, not in the public event record. It is cleared when the draft is claimed and deleted with the draft when it expires.
- **Secrets:** only SHA-256 fingerprints of the draft key and the claim tokens.
- **The action log** records which tool was called, when, from which platform, IP address and user agent, with what result, plus a fingerprint of the arguments — not the content. IP addresses in the log are shortened after 30 days (IPv4 to /24, IPv6 to /48).
- **The assistant's conversation** stays with its provider under that provider's terms; AET receives only what the assistant sends to the tools.
- **After expiry** the page, its form and its records are deleted by the hourly job; the deletion is logged with the event's title or organizer name and nothing else.

The human-readable version is in AET's [Privacy policy](/en/privacy), sections 7–8, and [Terms](/en/terms), sections 7–8.

## If you are an AI agent: drafts done right

1. **Read before you write.** `aet_page_playbook(kind)` for structure and tone, `aet_section_schema("all")` for the exact schema and rules, `aet_design_options` for three fitting layouts. Never invent layout ids.
2. **Ask at most two questions,** and only for a missing title or date. Unknown facts stay out; never invent prices, speakers or numbers.
3. **Write in the event's language,** and fill `labels` for any language other than Ukrainian and English.
4. **New UUID v4 per draft.** Reuse it only to retry the same creation.
5. **Keep the draft key,** show the preview link, give the claim link to this person only.
6. **Act on `hints`** before you present the page: add the date, venue, about, schedule or FAQ if you have the facts.
7. **Edit by whole sections** with `set`; send the full section, not a fragment. Pass `ifVersion`.
8. **On a refusal,** fix the named field. `phone`, `payment_details` or `link_not_allowed`: remove the value and tell the person they can add it after claiming. `moderation`: rewrite that text.
9. **On `claimed`,** stop using the draft key. Explain that the page is now in their account and offer to continue through their account connection.
10. **On `not_found` with "draft expired",** offer to build it again; the content is still in your conversation.
11. **Deleting** needs `needs_confirmation`: show the summary, get a yes, repeat the call with `confirmToken`.

## Why does AET give drafts away?

Because the expensive part is not AET's. In most "AI event page" products the vendor calls a model and pays per token, so the page sits behind a login — the login is the meter. On AET the assistant's owner already pays for the model; AET receives finished text, runs one moderation call and stores the page. A 24-hour lifetime keeps storage from growing.

It also removes three reasons organizers give for not trying a platform: having to sign up before seeing anything, being asked for a card, and not knowing what the page will look like. A draft answers all three in one chat. Once claimed, the event follows AET's usual model: 0% platform fee on tickets on every plan, with buyers paying into the organizer's own Stripe or mono account — AET does not hold the money.

Whether this changes behaviour is an open question. [Part 1](/en/learn/ai-assistant-as-your-event-manager) proposed three numbers to watch; the first is the share of new events that start as a claimed draft.

## When is a guest draft the wrong tool?

- **You already have an AET account.** Connect it and let the assistant create the event in your account (`aet_create_event`): no 24-hour clock, item-level editing, images by URL, and it can stay hidden until you publish.
- **You need the phone number, a website link or payment details on the page right now.** Drafts refuse them until claimed.
- **You want registrations from the first minute.** A draft's form opens only after claiming.
- **You are over your monthly event limit.** The draft can be built, but not claimed, until you free a slot or upgrade.
- **You want to publish the preview widely before deciding.** The preview is marked as an unconfirmed AI draft and is not indexed.
- **Your event lives on another platform.** Use that platform's own server; [part 1](/en/learn/ai-assistant-as-your-event-manager) lists them.

## Sources (checked 22 October 2026)

- AnyEventTool code on 22 October 2026: `lib/aiops/draft.ts` (creation, versions, claim links, deletion, hourly purge, log), `lib/aiops/content.ts` (schema and writing rules), `lib/aiops/guard.ts` (draft rules, moderation), `lib/aiops/limits.ts` (draft limits), `lib/aiops/keys.ts` (secrets), `pages/api/demo-claim.ts` (claiming), `pages/api/mcp.ts` (tools and instructions); interface texts from AET's Ukrainian and English dictionaries.
- The [MCP endpoint](https://aet.events/api/mcp) returns the same instructions, tool list and schemas to any MCP client.
- AnyEventTool [Privacy policy](/en/privacy) §7–8 and [Terms](/en/terms) §7–8; [pricing](/en/pricing).
- Moderation: AET uses OpenAI's `omni-moderation-latest` model; see OpenAI's [moderation guide](https://platform.openai.com/docs/guides/moderation).

If something here no longer matches what AET does, write to support@anyeventtool.com — we correct with the date.

## This series: ten articles on AI agents in AnyEventTool

This is part 3 of 10. Titles of the coming parts may change.

1. [The event manager who never sleeps](/en/learn/ai-assistant-as-your-event-manager) — the landscape, three zeros, guardrails (19 October) · 2. [Connecting your assistant to AET](/en/learn/connect-your-ai-assistant-to-aet) — Claude, ChatGPT, Claude Code, Cursor, Gemini (20 October) · 3. Guest drafts in depth — this article (22 October) · 4. [Writing a page the agent is proud of](/en/learn/how-ai-agents-write-a-better-event-page) (22 October) · 5. Design by agent · 6. Running a live event by key · 7. Trust by design · 8. Numbers without names · 9. For developers: building on the AET MCP server · 10. Playbooks for ten event types and the road ahead.

## Questions and answers

**Can ChatGPT or Claude make an event page without me signing up anywhere?**

On AnyEventTool, yes. With AET added as a connector, the assistant builds a guest draft with a public preview link and a private claim link; no account, key or card is needed. The draft lives 24 hours, is hidden from search engines and takes registrations only after you claim it.

**How long does an AI draft last?**

24 hours from creation. An hourly job deletes unclaimed drafts after that, and an expired draft cannot be claimed even if the job has not reached it yet.

**Why can't people register on my draft?**

Registration on a guest draft stays closed until the organizer claims the page, so nobody signs up for an event its organizer has not accepted. After you claim it, registration opens at once.

**Does claiming a draft cost anything?**

No. The page becomes an event on your current plan — Free stays Free — and counts as one of your events this month (Free 3, Pro 30). AET charges a 0% platform fee on tickets on every plan.

**Why did the assistant refuse to add my phone number or website?**

Until a draft is claimed, AET refuses phone numbers, bank or card details and links other than social profiles. Claim the page and add them in the editor, or ask an assistant connected to your account.

**I lost the claim link. What now?**

Ask the same assistant, in the same conversation, for a new claim link: it calls aet_claim_link with rotate:true. AET keeps at most the three most recent claim links of a draft valid. Without the draft key — a new conversation — the assistant cannot reach the draft; ask it to build a new one.

**Will Google index my AI draft?**

No. The draft's page is served with X-Robots-Tag: noindex, nofollow and private caching, and AET's own event search skips drafts. Once you claim and publish the event, it is indexed like any other.

**Can the assistant add images to a draft?**

No. A guest draft has no image fields and uses the layout's own design. After claiming, add a poster, logo and backgrounds in the editor, or let an assistant connected to your account place them by URL.

**What happens to my draft after 24 hours?**

It is deleted with its form and records; the deletion is logged with only the event's title or organizer name. The claim link then says the draft is gone, and the assistant is told to create a new one.

## Related answers

- [How to connect Claude, ChatGPT, Claude Code, Cursor or Gemini to AnyEventTool — for people and their AI agents](https://anyeventtool.com/en/learn/connect-your-ai-assistant-to-aet.md)
- [How an AI agent writes a better event page: playbooks for ten event types, section formats and writing rules in AnyEventTool](https://anyeventtool.com/en/learn/how-ai-agents-write-a-better-event-page.md)
- [The event manager who never sleeps: what changes when your AI assistant can build, design and run an event page](https://anyeventtool.com/en/learn/ai-assistant-as-your-event-manager.md)
- [AnyEventTool FAQ: pricing, fees, payments, privacy and limits](https://anyeventtool.com/en/learn/anyeventtool-faq.md)
- [Who makes AnyEventTool, and what does it stand for?](https://anyeventtool.com/en/learn/about-anyeventtool.md)
