Skip to main content
Not a native one — iWorkWhen is a responsive web app. It works as a PWA: open iworkwhen.com on your phone, and Add to Home Screen (iOS: Share → Add to Home Screen; Android: browser menu → Install).
Yes. The code is at natehome/iworkwhen. You need:
  • A Supabase project (or self-hosted Postgres with matching schema)
  • A Vercel or similar Next.js host
  • An SMTP provider (optional, for emails)
See the repo README for setup steps.
Some of it is data-driven via customer rules (company_name appears in the sidebar). Deeper customization (logo, color palette) requires editing the code — it’s all in src/app/globals.css and src/components/AppShell.tsx.
Not yet. The Timesheet view is read-only scheduled hours. Future integrations being considered:
  • Clock-in/clock-out via a punch API
  • Export to ADP, Gusto, Paychex
  • HR sync (new user onboarding, termination)
If you need one of these now, reach out via the GitHub repo.
Edit the holidays customer rule — set its value to an array of ISO dates like ["2026-07-04", "2026-12-25"]. See Customer rules.Currently this doesn’t change scheduling automatically. Future versions will add holiday-aware coverage adjustments.
Yes, assign the Admin role to as many users as you want. All admins have equal power — there’s no concept of “super admin” vs “admin”. For auditing, you can see who did what in Audit log.
Not directly. Shift definitions have differentials that show on OT posts and influence timesheet math, but individual wage data is not stored in iWorkWhen — integrate with your payroll system for that.
iWorkWhen disables users rather than deleting. Their shifts, trades, absences, and messages are preserved for history. Hard-delete is possible via the Supabase dashboard (cascades will remove dependent rows); not recommended for compliance reasons.
Yes — give them a Dispatcher (or Trainee) role and optionally a dedicated group. The app doesn’t care about employment status internally.
Sign in as admin@iworkwhen.local / iWorkWhen123! and go to Profile → Change password. Use a strong password. For extra safety, also change the email via the Supabase dashboard or by creating a new admin account under your own email and disabling the default one.
Times are stored as time (no timezone). Shift hours are calculated as end - start + 24 mod 24, which works correctly across 23/25-hour DST days as long as your org operates in a single timezone. Cross-timezone scheduling is not currently supported.
Supabase runs automatic daily backups. You can also export the entire DB via the Supabase dashboard (Settings → Database → Backups). For the code, the GitHub repo is itself the backup.

Still have a question?

Open an issue at github.com/natehome/iworkwhen/issues.