Agenda: 31 different ways to calendar
- View all events on one page (easy to search with Ctrl-F)
- TODO: Make prettier
- DONE: Create bulk events with same / similar data (e.g. soccer practices + games)
- TODO: Filter events in a "schedule" (e.g. from club, sports, choir)
- TODO: Update (or delete) all (most?) events within a time period (e.g. during school vacation)
- TODO: View multi-stream "paper calendar"
- DONE: Filter events since [datetime], possibly via natural language
- TODO: Filter events by keyword
- TODO: View or Filter conflicts for events / schedule
- TODO: Add image / document to events / schedule (e.g. handout of schedule from club)
- TODO: Command Line UI to create, update, view, filter (by schedule, keyword, datetime...), etc (see https://github.com/insanum/gcalcli )
- TODO: Spreadsheet UI (see sheets2gcal.com for alternative)
- TODO: View details including description (in Google calendar can only see summary)
- TODO: View/Update free-form / Word-document style. (see https://legendapp.com/ - formerly Moo.do, especially the date entry). See https://www.slatejs.org/ for potential tech to use
- TODO: View/Update Mail Inbox style, for deleting multiple events.
- TODO: View Non chronological. Group events together that repeat or are in the same schedule. Still needs more thought about how this could work.
- TODO: Create/Edit events via "annotations" of an image / document
- DONE: Add events via drag/drop CSV/TSV using a sub-set of standard Google columns (Subject, Start Date, Start Time, End Date, End Time, Description, Location)
- TODO: More options for importing events support other standard columns (All Day Event and Private) as well as all API field names (attendees, colorId, extendedProperties.private, extendedProperties.shared, location, source.title, source.url, summary, visibility).
- TODO: Rich editor, like https://www.slatejs.org/ or https://quilljs.com/ for editing
- DONE: View attachments on events
- TODO: Add/Update attachments on events
- Data stored unencrypted in IndexedDB, so others on computer can read / write with browser tools.
Perhaps encrypt and load into in-memory database? Note: legendapp does not encrypt IndexedDB contents.
- Slack omni-search
- Discord search: drop-down with search options
- Gmail search input box
- https://react-day-picker.js.org/ - used by LegendApp for date input, their
- https://fusejs.io/ - fuzzy search
- https://github.com/timc1/kbar - command bar
- https://bit.dev/teambit/explorer/command-bar - command bar
- https://github.com/replit/clui - command line UI for Javascript
- https://github.com/asabaylus/react-command-palette - command bar
- https://github.com/github/time-elements - time display - relative e.g. 2d
- https://github.com/peterbraden/ical.js - ical - for imparting
Comparison: https://github.com/pubkey/client-side-databaseS
- https://localfirstweb.dev/ - list of dbs and other related local-first libraries
- https://github.com/Nozbe/WatermelonDB - db - offline first, backed by pluggable backend
- https://github.com/tonsky/datascript - db - in-memory
- https://rxdb.info/
- https://github.com/techfort/LokiJS
- https://tinybase.org/ - db - multiple persister backends (sqlite wasm, "remote", indexdb, etc)
- https://syncedstore.org/docs/ - db -