someday
Free to host calendar availability picker - open-source cal.com / calendly alternative built on Google-Apps-Script for Gmail users. Built with modern technologies like React, TypeScript, Shadcn/UI, and Vite. https://someday-demo.vercel.app
AI Summary
Someday
A free-to-host, Google Calendar–based scheduling tool (Calendly alternative) implemented with Google Apps Script
Target Users
Intermediate GAS developers who use Gmail and want to run their own external meeting scheduling flow
Problems Solved
Building a system that exposes Google Calendar availability and accepts bookings without relying on third-party services requires handling auth, UI and hosting complexity
Tags
Main Features
Free hosting with your Google account
Runs as a Web App on Google Apps Script, eliminating extra servers or hosting fees
Open-source and easy to customise
Frontend in React/TypeScript and GAS backend can be modified to fit custom requirements
Seamless Gmail / Calendar integration
OAuth scopes stay within the owner’s account, enabling availability queries and event creation while keeping data private
Workdays, hours and slot length via variables
Adjust constants in `backend/src/app.ts` to control working hours, days and slot duration
Option to self-host iframe to remove GAS banner
Embed the app on your own domain without the default GAS banner using the provided iframe example
Usage Examples
Fetch available time slots and log them
/**
* Example configuration (override the defaults in backend/src/app.ts)
*/
const CALENDAR = "primary"; // Target calendar ID
const TIME_ZONE = "America/New_York"; // Time zone
const WORKDAYS = [1, 2, 3, 4, 5]; // Monday–Friday
const WORKHOURS = { start: 9, end: 17 }; // 9:00–17:00
const TIMESLOT_DURATION = 30; // 30-minute slots
/**
* Get availability for a given date.
* fetchAvailability is provided by Someday backend.
*/
function sampleFetch() {
const date = new Date(2024, 0, 15); // Jan 15, 2024
const slots = fetchAvailability(date);
Logger.log(slots); // Prints an array of available slots
}
Paste this into the Apps Script editor and run sampleFetch
. Someday reads your Google Calendar, applies the workday/hour settings and returns an array of 30-minute slots that are free on the specified day.