Private by design.
ShiftSync is a personal tool for Trina Karmakar’s Fossil shifts. Roster files, extracted text and edits stay in browser memory for the current session. Reloading or closing the app clears them. ShiftSync has no roster database, analytics or advertising.
Google Calendar
Google sign-in happens on Google’s own screen. Never give ShiftSync a password or client secret. The app requests permission to read the list of your calendars and edit events on calendars you own. Only confirmed shifts are submitted, to the calendar you select. Access tokens stay in memory and expire. Disconnect removes the token and asks Google to revoke access. You can also remove access in your Google Account’s third-party connections.
ShiftSync sends confirmed shift dates, times, Trina’s name and the Fossil event title to Google Calendar. It does not send the roster file or other employees’ schedules. Existing matching Fossil events are skipped. Changed ShiftSync shifts on the same day are flagged for manual review; they are never automatically overwritten or deleted.
External services
The hosting provider receives ordinary web requests such as your IP address. Google serves sign-in and fonts. jsDelivr serves pinned PDF.js 4.10.38 and Tesseract.js 5.1.1 libraries; the OCR engine downloads English recognition data. These services see ordinary asset requests. OCR executes locally. Internet is needed for first loading the extraction libraries, Google sign-in and calendar sync. The basic app shell is cached for offline editing; file extraction offline is not guaranteed.
Accuracy & supported formats
The first version handles dated employee lines and simple employee-by-date grids. Use YYYY-MM-DD or MM/DD dates and explicit AM/PM or 24-hour times. Weekday-only headings, merged cells, rotated images, poor photos and unusual layouts may need manual entry. Every extracted shift requires confirmation. Daylight-saving gap and repeated local times are rejected for manual clarification.
Owner setup
Deploy the public folder on an HTTPS host. In Google Cloud, enable Google Calendar API, configure an external OAuth consent screen and add Trina as a test user. Create a Web application OAuth client with the exact deployed origin as an authorized JavaScript origin. Set its public client ID in config.js, then redeploy. Do not add a client secret. Full instructions ship with the source code.
Personal-use first version · October 2026. The operator is the Google Cloud project owner; use the support email configured on that project’s consent screen for help.