An open API service indexing awesome lists of open source software.

https://github.com/dimuzzo/focuscal

A privacy-first, offline-capable adaptive calendar PWA for students and professionals. Zero backend, zero tracking, yours only.
https://github.com/dimuzzo/focuscal

calendar javascript privacy-first productivity pwa

Last synced: 15 days ago
JSON representation

A privacy-first, offline-capable adaptive calendar PWA for students and professionals. Zero backend, zero tracking, yours only.

Awesome Lists containing this project

README

          

# FocusCal 🎯

**Personal adaptive calendar** for university exams, medical appointments, workouts.

FocusCal is a lightweight, privacy-focused Progressive Web App (PWA) designed to manage your schedule without the need for servers or databases. Built with a focus on simplicity and user sovereignty, all your data remains securely on your device, ensuring your plans stay private. Whether it's university exams, appointments, or workout routines, FocusCal adapts to your needs with an intuitive, distraction-free interface.

## Privacy-first

- ✅ All data saved **only on your device** (localStorage)
- ✅ Zero servers, zero databases, zero sharing
- ✅ Works offline (PWA with Service Worker)
- ✅ Installable as an app on iOS/Android/Desktop

## Deploy on GitHub Pages

1. **Create a repository** on GitHub (e.g., `focuscal`)
2. **Upload all files** to the repo root:
- `index.html`
- `manifest.json`
- `sw.js`
- `icon-192.png`
- `icon-512.png`
3. **Go to Settings → Pages** of the repository
4. Under "Source" select `main` branch, root `/`
5. Save. In 1-2 minutes the app is live at `https://dimuzzo.github.io/focuscal/`

### Future updates
Just push the new files — GitHub Pages updates automatically.

## Features

| Feature | Details |
|---------|----------|
| **Views** | Monthly calendar, Schedule (60 days), Focus today |
| **Categories** | 📚 Study, 🩺 Health, 🏋️ Sport, 💡 Other |
| **Priority** | High / Medium / Low |
| **Repetition** | Daily / Weekly / Monthly |
| **Notifications** | Device push + Email (via local client) |
| **Shortcuts** | `N` new event, `T` today, `C/A/F` switch view |
| **Backup** | Export/import JSON |

## Notifications

### Device (push)
- Click "Request notification permission" in the Notifications section
- Notifications are triggered via setTimeout (works with tab open) or via Service Worker push

### Email
- Set your email in Settings → Notifications
- At the time of the reminder, FocusCal opens your local email client (mailto:) with the pre-filled message
- **No data is sent online**

## Data structure (localStorage)
```
focuscal_events → Array of events (all private, browser only)
focuscal_settings → Settings (name, local email, notification preferences)
focuscal_scheduled → Queued reminders
```

---

Made with ❤️ — Zero backend, zero tracking, all yours.