Source
This app’s code and revision history are public. Download a copy or explore the files below.
Public
The app’s code and revision history are public.
Run it yourself
Take the whole tree and run it on your own machine. The download needs no account. Cloning needs a sign-in.
Download .zip
bounded clone 3e1cb86700a5e96238d7a2f1
A copy you download is not bounded. The guarantees this app runs under - declared egress, proven invariants, writes that fail closed - live in the runtime serving this page, not in the files. What you get is auditable source you can read and run, with no runtime guarantees attached.
index.html
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
<title>When: free Doodle alternative with unlimited group polls | OpenApps</title>
<meta name="description" content="A free Doodle alternative for finding a time with a group. Suggest dates and times, share one link, and everyone marks yes, if need be or no. Unlimited polls, no ads, no sign-up.">
<link rel="canonical" href="https://when-free.openapps.xyz/">
<meta property="og:type" content="website">
<meta property="og:site_name" content="OpenApps">
<meta property="og:title" content="When: find a time that works for everyone, free">
<meta property="og:description" content="Suggest a few times, share the link, and everyone marks when they can make it. Free, no ads, no sign-up, and every time shown in each person's own time zone.">
<meta property="og:url" content="https://when-free.openapps.xyz/">
<meta property="og:image" content="https://free-apps.openapps.xyz/og/when.png">
<meta name="twitter:card" content="summary_large_image">
<meta name="theme-color" content="#fdfdfc">
<link rel="icon" href="/favicon.svg" type="image/svg+xml">
<link rel="alternate" type="text/plain" title="llms.txt" href="/llms.txt">
<link rel="alternate" type="text/markdown" href="/index.md">
<link rel="service-desc" type="application/vnd.oai.openapi+json" href="/openapi.json">
<link rel="preconnect" href="https://realtime.bounded.sh" crossorigin>
<link rel="preconnect" href="https://wallet-auth.bounded.sh" crossorigin>
<link rel="preload" href="/fonts/NewsreaderVariable-var.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/fonts/ArchivoVariable-var.woff2" as="font" type="font/woff2" crossorigin>
<link rel="stylesheet" href="/kit.css">
<script type="application/ld+json">
{"@context":"https://schema.org","@type":"SoftwareApplication","name":"When by OpenApps","applicationCategory":"BusinessApplication","operatingSystem":"Web","url":"https://when-free.openapps.xyz/","description":"Free group scheduling polls: suggest dates and times, share a link, and see the time that works for most people. Times show in each person's own time zone. No ads, no sign-up and no limit on polls.","offers":{"@type":"Offer","price":"0","priceCurrency":"USD"},"isAccessibleForFree":true,"dateModified":"2026-10-19","publisher":{"@type":"Organization","name":"OpenApps","url":"https://openapps.xyz"}}
</script>
<script type="application/ld+json">
{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[
{"@type":"Question","name":"Is there a free alternative to Doodle?","acceptedAnswer":{"@type":"Answer","text":"Yes. When is a free Doodle alternative for group scheduling polls. Suggest times, share one link, and everyone marks yes, if need be or no. It has no ads, no sign-up and no limit on polls or people."}},
{"@type":"Question","name":"Is When really free?","acceptedAnswer":{"@type":"Answer","text":"Yes. There is no paid plan, no ads and no limit on polls or people. Each answer is one tiny write, and OpenApps pays for it."}},
{"@type":"Question","name":"Do people need an account to answer?","acceptedAnswer":{"@type":"Answer","text":"No. They open the link, type their name and tap yes, if need be or no for each time. On the same device they can come back and change their answers."}},
{"@type":"Question","name":"How do time zones work?","acceptedAnswer":{"@type":"Answer","text":"You pick times in your own time zone. Everyone who opens the poll sees them in theirs, with the zone named. All-day options stay on the same date for everyone."}},
{"@type":"Question","name":"How do I pick the final time?","acceptedAnswer":{"@type":"Answer","text":"Open the poll on the device you made it on, or with your admin link, and tap Pick the final time. Everyone with the link then sees it and can add it to Apple Calendar, Google Calendar or Outlook. Share the time sends the group one message with it."}},
{"@type":"Question","name":"Can people leave a comment on the poll?","acceptedAnswer":{"@type":"Answer","text":"Yes. Anyone with the link can post a comment under the times, like \"Only after 6 for me\". The organizer can remove any comment."}},
{"@type":"Question","name":"Can I download the answers?","acceptedAnswer":{"@type":"Answer","text":"Yes. The organizer can download every answer as a CSV file that opens in Excel, Numbers or Google Sheets."}},
{"@type":"Question","name":"How is When different from Doodle?","acceptedAnswer":{"@type":"Answer","text":"Doodle's free plan includes one group poll, and its pricing page lists \"No ads\" as a Pro feature (checked October 2026). When has no limit on polls, no ads and no paid plan."}},
{"@type":"Question","name":"Who can see my poll?","acceptedAnswer":{"@type":"Answer","text":"Only people with its link. Poll links are long and random, so they cannot be guessed. Everyone with the link sees every answer and comment."}},
{"@type":"Question","name":"Can my AI assistant schedule a meeting with When?","acceptedAnswer":{"@type":"Answer","text":"Yes. When has a public HTTP API with no key. An assistant can create a poll, send you the link, read the answers and comments, and tell you which time most people can make."}}
]}
</script>
</head>
<body>
<header class="site-head">
<div class="wrap">
<a class="brand" href="https://free-apps.openapps.xyz/" aria-label="OpenApps free apps">
<img src="/logo.svg" alt="" width="26" height="26">
<span>OpenApps</span>
</a>
<span class="brand-sep" aria-hidden="true">/</span>
<a class="brand brand-app" href="/">When</a>
<nav class="site-nav" aria-label="Main">
<a class="nav-optional landing-link" href="/#how">How it works</a>
<a class="landing-link" href="/#api">API</a>
<a href="https://free-apps.openapps.xyz/apps">Free apps</a>
</nav>
</div>
</header>
<main>
<div id="app"></div>
<section class="app-hero landing-only">
<div class="wrap app-hero-grid">
<div class="app-hero-copy">
<img class="art hero-art" src="/art/card-when.webp" alt="" width="190" height="166">
<p class="eyebrow">Free alternative to Doodle</p>
<h1 class="display">Find a time that works for everyone. Free, with no ads.</h1>
<p class="lede">When is a free Doodle alternative. Pick a few dates and times, share the link, and everyone marks when they can make it. The best time shows as answers come in, in each person's own time zone.</p>
<ul class="hero-points">
<li>Unlimited polls and people</li>
<li>No sign-up for you or anyone you invite</li>
<li>Yes, if need be, or no for every time</li>
</ul>
<div id="your-polls"></div>
</div>
<div id="create"><noscript><p class="notice">When needs JavaScript to make a poll.</p></noscript></div>
</div>
</section>
<section class="section landing-only" id="how">
<div class="wrap">
<h2 class="h2">How it works</h2>
<ol class="steps">
<li><h3>Suggest times</h3><p>Tap the dates that could work on the calendar, then add one or more times for each, or mark a date all day.</p></li>
<li><h3>Share the link</h3><p>Everyone opens it on any phone or laptop, types their name and taps yes, if need be or no. No account, no app. Questions go in the comments.</p></li>
<li><h3>Pick the final time</h3><p>The best time is highlighted as answers come in. Pick it, and everyone can add it to Apple Calendar, Google Calendar or Outlook.</p></li>
</ol>
</div>
</section>
<section class="section-tight landing-only">
<div class="wrap">
<h2 class="h2">Free, with no catch</h2>
<p class="lede" style="margin-top:14px">Finding a time for a meeting should not come with ads or a subscription. When is free because it costs almost nothing to run: each answer is one tiny write, and OpenApps pays for it.</p>
<div class="table-wrap" style="margin-top:24px">
<table class="table compare">
<thead><tr><th scope="col"></th><th scope="col">When</th><th scope="col"><a href="https://doodle.com/en/premium/">Doodle free</a></th><th scope="col"><a href="https://rallly.co/pricing">Rallly free</a></th><th scope="col"><a href="https://www.when2meet.com/">When2meet</a></th></tr></thead>
<tbody>
<tr><td>Price</td><td class="yes">Free, no paid plan</td><td>Free plan; Pro is paid</td><td>Free Hobby plan; Pro $6 per seat a month, billed yearly</td><td>Free, no plans listed</td></tr>
<tr><td>Group polls</td><td class="yes">Unlimited</td><td class="no">One group poll</td><td class="no">Up to 3 open polls</td><td>No limit stated</td></tr>
<tr><td>How long polls stay</td><td class="yes">No expiry</td><td>Not stated</td><td class="no">30 days</td><td>Not stated</td></tr>
<tr><td>Ads</td><td class="yes">None</td><td class="no">"No ads" is a Pro feature</td><td>Not stated</td><td>Not stated</td></tr>
<tr><td>Answers</td><td class="yes">Yes, if need be, or no</td><td>Yes, if need be, or no</td><td>Yes, if need be, or no</td><td>Available or not</td></tr>
</tbody>
</table>
</div>
<p class="hint" style="margin-top:12px">Checked October 2026 on each vendor's own page, linked in the table head. Plans change, so check their sites.</p>
</div>
</section>
<section class="section landing-only" id="api">
<div class="wrap api-grid">
<div>
<p class="eyebrow">For AI assistants</p>
<h2 class="h2">Your assistant can find the time.</h2>
<p class="lede" style="margin-top:14px">When has a public API with no key and no account. An assistant can make a poll from the times you mention, send you the link for the group, and tell you which time most people can make.</p>
<p style="margin-top:14px">Full reference: <a href="/llms.txt">/llms.txt</a> and <a href="/openapi.json">/openapi.json</a>. A poll's id is its secret, the same as its link. The owner key that comes back when a poll is made lets the assistant pick the final time, so keep it private.</p>
</div>
<pre class="code"><span class="c"># Make a poll</span>
curl -X POST https://functions.bounded.sh/apps/3e1cb86700a5e96238d7a2f1/api/polls \
-H 'content-type: application/json' \
-d '{"title": "Team lunch", "timezone": "America/New_York",
"options": ["2026-10-21T12:00", "2026-10-22T12:00",
{"date": "2026-10-23", "allDay": true}]}'
<span class="c"># Answer it</span>
curl -X POST https://functions.bounded.sh/apps/3e1cb86700a5e96238d7a2f1/api/polls/POLL_ID/votes \
-H 'content-type: application/json' \
-d '{"name": "Sam", "answers": {"2026-10-21T12:00": "yes",
"2026-10-22T12:00": "maybe"}}'
<span class="c"># See the best time</span>
curl https://functions.bounded.sh/apps/3e1cb86700a5e96238d7a2f1/api/polls/POLL_ID
<span class="c"># Pick it (owner key from the first call)</span>
curl -X POST https://functions.bounded.sh/apps/3e1cb86700a5e96238d7a2f1/api/polls/POLL_ID/choose \
-H 'content-type: application/json' -H 'x-owner-key: OWNER_KEY' \
-d '{"optionId": "OPTION_ID"}'</pre>
</div>
</section>
<section class="section-tight landing-only">
<div class="wrap">
<h2 class="h2">Questions</h2>
<div class="faq" style="margin-top:22px">
<details><summary>Is there a free alternative to Doodle?</summary><div>Yes. When is a free Doodle alternative for group scheduling polls. Suggest times, share one link, and everyone marks yes, if need be or no. It has no ads, no sign-up and no limit on polls or people.</div></details>
<details><summary>Is When really free?</summary><div>Yes. There is no paid plan, no ads and no limit on polls or people. Each answer is one tiny write, and OpenApps pays for it.</div></details>
<details><summary>Do people need an account to answer?</summary><div>No. They open the link, type their name and tap yes, if need be or no for each time. On the same device they can come back and change their answers.</div></details>
<details><summary>How do time zones work?</summary><div>You pick times in your own time zone. Everyone who opens the poll sees them in theirs, with the zone named. All-day options stay on the same date for everyone.</div></details>
<details><summary>How do I pick the final time?</summary><div>Open the poll on the device you made it on, or with your admin link, and tap Pick the final time. Everyone with the link then sees it and can add it to Apple Calendar, Google Calendar or Outlook. Share the time sends the group one message with it.</div></details>
<details><summary>Can people leave a comment on the poll?</summary><div>Yes. Anyone with the link can post a comment under the times, like "Only after 6 for me". The organizer can remove any comment.</div></details>
<details><summary>Can I download the answers?</summary><div>Yes. The organizer can download every answer as a CSV file that opens in Excel, Numbers or Google Sheets.</div></details>
<details><summary>How is When different from Doodle?</summary><div>Doodle's free plan includes one group poll, and its pricing page lists "No ads" as a Pro feature (checked October 2026). When has no limit on polls, no ads and no paid plan.</div></details>
<details><summary>Who can see my poll?</summary><div>Only people with its link. Poll links are long and random, so they cannot be guessed. Everyone with the link sees every answer and comment.</div></details>
<details><summary>Can my AI assistant schedule a meeting with When?</summary><div>Yes. When has a public HTTP API with no key. An assistant can create a poll, send you the link, read the answers and comments, and tell you which time most people can make. See <a href="/llms.txt">llms.txt</a> or <a href="/openapi.json">openapi.json</a>.</div></details>
</div>
</div>
</section>
<section class="section-tight landing-only">
<div class="wrap">
<h2 class="h2">More free apps</h2>
<ul class="more-apps">
<li><a href="https://split-free.openapps.xyz/"><strong>Split</strong><span>Share costs with friends, instead of Splitwise</span></a></li>
<li><a href="https://forms-free.openapps.xyz/"><strong>Forms</strong><span>Unlimited responses, instead of Typeform</span></a></li>
<li><a href="https://sign-free.openapps.xyz/"><strong>Sign</strong><span>Free e-signatures, instead of DocuSign</span></a></li>
<li><a href="https://free-apps.openapps.xyz/apps"><strong>All apps</strong><span>The app store of free alternatives</span></a></li>
</ul>
</div>
</section>
</main>
<footer class="site-foot">
<div class="wrap">
<!-- network:start -->
<nav class="oa-network" aria-label="Free apps from OpenApps">
<p class="oa-network-title"><a href="https://free-apps.openapps.xyz/">Free apps from OpenApps</a><span>Free alternatives to the apps you pay for, built for people and their AI assistants.</span></p>
<ul>
<li><a href="https://sign-free.openapps.xyz/">Sign</a><span>instead of DocuSign</span></li>
<li><a href="https://forms-free.openapps.xyz/">Forms</a><span>instead of Typeform</span></li>
<li><a href="https://split-free.openapps.xyz/">Split</a><span>instead of Splitwise</span></li>
<li><a href="https://links-free.openapps.xyz/">Links</a><span>instead of Bitly</span></li>
<li><a href="https://when-free.openapps.xyz/" aria-current="page">When</a><span>instead of Doodle</span></li>
<li><a href="https://pdf-free.openapps.xyz/">PDF</a><span>instead of Smallpdf</span></li>
<li><a href="https://invoice-free.openapps.xyz/">Invoice</a><span>instead of FreshBooks</span></li>
<li><a href="https://bio-free.openapps.xyz/">Bio</a><span>instead of Linktree</span></li>
<li><a href="https://book-free.openapps.xyz/">Book</a><span>instead of Calendly</span></li>
<li><a href="https://dictate-free.openapps.xyz/">Dictate</a><span>instead of Wispr Flow</span></li>
<li><a href="https://images-free.openapps.xyz/">Images</a><span>instead of TinyPNG</span></li>
</ul>
<p class="oa-network-more"><a href="https://free-apps.openapps.xyz/apps">All free apps</a> · <a href="https://free-apps.openapps.xyz/alternatives">Free alternatives A to Z</a> · <a href="https://free-apps.openapps.xyz/for-ai">Add every app to your AI assistant</a></p>
</nav>
<!-- network:end -->
<div class="foot-note" style="margin-top:0;border-top:0;padding-top:0">
<span>When is an <a href="https://openapps.xyz">OpenApp</a>: free, with public <a href="/__bounded/source">source</a> and its own agent.</span>
<span><a href="https://free-apps.openapps.xyz/">OpenApps free apps</a> · <a href="/llms.txt">llms.txt</a></span>
</div>
</div>
</footer>
<script type="module" src="/src/main.tsx"></script>
</body>
</html>
Change history
Quality pass: comments, CSV export, share the final time, calendar menu, fixes
Bounded source sync
Bounded source sync
Bounded source sync
Bounded source sync
Bounded source sync
Bounded source sync
Bounded source sync