Payas Web Kit · Calendar

Payas Days

A fully client-side web calendar with Month, Week, Day, and Agenda views. Events stored in IndexedDB. Export to ICS (Google Calendar compatible) or Markdown. No server needed.

id::payas-days · stable
KitPayas Web Kit
PlatformBrowser · Web
ViewsMonth · Week · Day · Agenda
StorageIndexedDB · persistent
ExportICS · Markdown bundle
RecurrenceRRULE · Daily to Yearly
LicenseMIT
Views
4
Month · Week · Day · Agenda
Storage
IndexedDB
Persistent · no server
Event colours
10
Blue teal green yellow…
ICS export
RFC 5545
Google · Outlook · Apple
features

What Payas Days does

Four calendar views
Month grid with up to 3 chips per cell. Week view with 24-hour time grid and a now-line. Day view and 30-day Agenda view — all with live navigation.
ICS import & export
Export all events as payas-days.ics (RFC 5545 — compatible with Google Calendar, Outlook, Apple Calendar). Import from any .ics file.
Recurring events
RRULE support — daily, weekly (with specific days), monthly, yearly. Events expand on the fly per view range. Up to 500 occurrences per query.
Reminders & conflict detection
Web Notifications API reminders fired at configurable minute offsets. Conflict detection flags overlapping timed events before saving.
Search across all events
Inline search bar across title, description, location, and label — case-insensitive, debounced 200 ms. Click a result to jump to Day view and open the event popover.
Rich event fields
Title, all-day toggle, start/end, description (Markdown), location, timezone, colour (10 options), label, recurrence, reminders, attendees, and attachments.
technical · details

Technical details

Entry pointpayas-days/index.html — multi-file static app
StackHTML5 · CSS3 · Vanilla JavaScript ES2022 (module pattern, no bundler)
DependenciesBootstrap 5.3 · Font Awesome 6.5 · Google Fonts
StorageIndexedDB (payas-days db) — events store + settings store. No localStorage for data.
ICS standardRFC 5545 — VALARM reminders, ATTENDEE, RRULE, line folding at 75 chars
Markdown formatYAML front-matter per event — id, title, start, end, allDay, timezone, location, color, label, recurrence, reminders, attendees, attachments
RecurrenceRRULE parser supporting FREQ, INTERVAL, COUNT, UNTIL, BYDAY. Max 500 occurrences per range query.
Keyboard shortcuts← → navigate · T today · / search · Escape close search
DeveloperSaman Wijesinghe
LicenseMIT