Find a meeting time for your group project.
No accounts and no server. Your calendar never leaves your device. Everything travels as links in the group chat you already have.
- 1. Organiser picks the dates and hours and posts the starter link.
- 2. Everyone paints the times they're free, or imports a calendar file, and posts back a short code.
- 3. Organiser pastes the codes and gets a heatmap, the best slots and an invite file.
Your starter link is ready
Post this in your group chat. Everyone opens it, adds their availability and replies with their code.
Add your availability
When are you free?
Click or drag across times to mark them free. Keyboard: arrow keys move, Space toggles, Shift+arrow paints. On a phone, tap or drag on the grid; swipe on the time labels to scroll.
Choose an .ics file exported from your calendar. It is read on this device only. Nothing is uploaded, and event titles never go into your code.
How do I export my calendar?
- Google Calendar (computer): Settings → Import & export → Export. Unzip and pick the calendar's .ics file.
- Outlook: Calendar → Share/Publish, or File → Save Calendar (desktop) as iCalendar.
- Apple Calendar (Mac): select the calendar, then File → Export → Export….
- Canvas or a class timetable: many offer an "iCal feed" or .ics download.
No calendar handy? or download it to try the file picker.
Your code
Paste this code, or the reply link, into the group chat. The code updates as you change the grid.
What's inside this code?
Your name and grid are also kept in this browser's local storage so you can come back and edit.
Merge everyone's codes
Members
No codes yet. Ask the group to reply with theirs.
Best times
Tick Required next to a member to hide times they can't make.
Heatmap
Share the merged view
This link contains every code above, so others can see the same heatmap.
How it works
- The starter link holds the planning window in readable form after the
#: dates, weekdays, daily hours, slot length and time zone. Browsers do not send the part after#to any server. - Each member's code holds only a display name, one bit per time slot (free or not), a 2-byte window check and a 2-byte checksum. A typo or a code cut off by a chat app is detected, not silently merged.
- Calendar files are parsed in your browser with ical.js, including repeating events (RRULE, EXDATE and moved occurrences). You review the result before sharing.
- Every slot is a fixed moment in time. Members in other time zones see the same slots labelled in their local time, including across daylight-saving changes.
Privacy, and what it costs
- This page is static files only. A Content Security Policy (
connect-src 'none') stops the page from making any network request with your data, and the project's tests check this. - After the first visit it also works offline.
- Trade-offs: someone has to collect the codes by hand; nothing updates live; and anyone who has a code can read that person's free/busy pattern for the window. Share codes only in the group's own chat.