# someday

Free booking page that runs inside your own Google account as an Apps Script web app.

someday is a Calendly-style availability picker for Gmail users. The React frontend and Apps Script backend deploy with clasp into the Adopter's Google account, read free/busy from their calendar and create events on booking. Availability is a handful of constants in backend/src/app.ts. There is no API of its own; bookings land in Google Calendar.

Alternative to: Calendly

- Capabilities: adaptable
- Vertical: scheduling-staffing
- Shape: business-app
- Form factor: web-app
- Execution model: deterministic
- Provenance: unknown (recorded, never ranked)
- Repo: https://github.com/rbbydotdev/someday (MIT), 1063 stars, last commit 2026-07-20
- Last activity: 2026-07-20
- Page: apps/rbbydotdev--someday.html
- JSON: apps/rbbydotdev--someday.json

## Use it when

- I want a booking link for free and I already run my life in Google Calendar
- I don't want a server, a database or a vendor account, just a page people can pick a slot on

## Gotchas

- Google shows an 'unverified app' warning on first authorization and an Apps Script banner on the page unless you self-host the iframe wrapper
- One owner, one set of working hours; not a multi-provider scheduler
- Availability is code, not a settings screen, so every change is a redeploy
- No notifications beyond the Google Calendar event; no reminders or cancellation flow documented

## Editions

- Free: Free, open source
  - source: https://github.com/rbbydotdev/someday
  - installable: npm install -g @google/clasp && clasp login && clasp create --type webapp && npm run deploy

## Adaptable: make it yours

Effort: light-edit (4 things to edit)

Edit five constants in backend/src/app.ts: CALENDAR, TIME_ZONE, WORKDAYS, WORKHOURS and TIMESLOT_DURATION, then npm run deploy through clasp. Multiple calendars go in a CALENDARS Script Property in the Apps Script editor. appsscript.json sets the web app access; hosted-iframe-example.html removes the Apps Script banner by embedding the app on your own page. The booking form fields are in the React frontend.

- Env vars: none
- Config files: backend/src/app.ts, appsscript.json, .clasp.json, hosted-iframe-example.html
- Prompt files: none
- Accounts you'll need: Google account with the Apps Script API enabled

## Code stack

- Languages: TypeScript
- Frameworks: React, Vite, shadcn/ui, Google Apps Script
- Package manager: npm
- Database: none
- Hosting target: google-apps-script, github-pages (iframe wrapper)

## Evidence and confidence

- formFactor: README: Apps Script web app with a React frontend deployed by clasp (confidence 0.95)
- executionModel: no model SDK or AI feature (confidence 0.95)
- operability: no API, MCP or CLI documented; bookings are Google Calendar events reachable only through a Google Calendar interface such as googleworkspace--cli (confidence 0.9)
- effort: README 'Customize' section names the constants in backend/src/app.ts (confidence 0.95)
- editions: README: MIT, free to host on your Google account (confidence 0.95)
- active: shortlist pushedAt 2026-07-20
- reach:  (confidence 0)

## Open questions

- Triage gave operable 1 because bookings land in Google Calendar; recorded as 0 here since that reach belongs to a different Listing (googleworkspace--cli). Curator to decide

## Sources

- https://github.com/rbbydotdev/someday (sourcing:scheduling-staffing:community)
- https://news.ycombinator.com/item?id=47796559 (sourcing:scheduling-staffing:community)
