A Google Chrome extension that augments Google Calendar.
- Calculates total time for all events in current view
- Breaks down time by event color
- Draggable and collapsible interface
- Remembers position and state between refreshes
- Google Calendar API integration (optional)
- Node.js (v18 or later)
- npm or yarn
- Chrome browser
- Clone the repository
- Install dependencies:
npm install # or yarn install
To build the extension:
npm run build
# or
yarn buildThis will create a dist directory with the compiled extension files.
To run in development mode with hot reloading:
npm run dev
# or
yarn dev- Open Chrome and go to
chrome://extensions/ - Enable "Developer mode" in the top right
- Click "Load unpacked" and select the
distdirectory - The extension should now be loaded and ready to use
- Configure OAuth Client IDs
- For development: Create an OAuth client ID for your local extension ID
- For production: Create an OAuth client ID for your Chrome Web Store extension ID
- Update the respective config files (
config/config.dev.jsonandconfig/config.prod.json)
- Clone this repository or download the ZIP file
- Open Chrome and navigate to
chrome://extensions/ - Enable "Developer mode" in the top right corner
- Click "Load unpacked" and select the directory containing the extension files
For more reliable data access, you can set up Google Calendar API integration:
- Go to the Google Cloud Console and create a new project
- Enable the Google Calendar API for your project:
- In the sidebar, click on "APIs & Services" > "Library"
- Search for "Google Calendar API"
- Click on the API and then click "Enable"
- Create OAuth credentials:
- In the sidebar, click on "APIs & Services" > "Credentials"
- Click "Create Credentials" > "OAuth client ID"
- Select "Chrome Extension" as the application type
- Enter a name for your OAuth client (e.g., "Supercal Extension")
- For "Application ID", enter your extension ID (found in chrome://extensions)
- Copy your Client ID and update the appropriate config file:
- For development: Update
config/config.dev.json - For production: Update
config/config.prod.json
- For development: Update
- Run the appropriate build script and reload the extension
- Click the Supercal icon in your Chrome toolbar
- Sign in with your Google account
- Navigate to Google Calendar
- The Supercal panel will appear showing your calendar time breakdown
- Drag the panel to reposition it
- Click the arrow to collapse/expand the panel
- Click the refresh button to update the data
The extension works in two modes:
- DOM Scraping Mode (Default): Analyzes the calendar events displayed on the page
- API Mode: Fetches data directly from the Google Calendar API when authorized
The API mode provides more accurate data and works even with collapsed calendar sections.
Supercal only accesses your Google Calendar data with your permission. Your data is processed locally in your browser and is not sent to any external servers.
ISC
