cLockIn is a lightweight macOS menu bar application designed to help you track your work tasks effortlessly. With seamless integration with Google Calendar and optional rich presence updates to Discord, this open-source tool is perfect for anyone looking to manage their time effectively and share their activity status.
- Task Tracking: Easily create and manage tasks directly from your menu bar.
- Google Calendar Integration: Sync your tasks with Google Calendar and keep your schedule up-to-date.
- Discord Rich Presence: Optionally show your current task and elapsed time on Discord.
- Preferences: Customize the app to run at startup and control Discord presence visibility.
- Python 3.12 (earlier versions likely work but are untested)
- Google Cloud credentials for Calendar API
- (Optional) Discord application credentials for rich presence
-
Clone the Repository
git clone https://github.com/MarkCarsonDev/clockin.git cd clock-in-app
-
Create a Virtual Environment and Install Dependencies
python3.12 -m venv venv source venv/bin/activate pip install -r requirements.txt
-
Google Cloud Setup
First, set up OAuth 2.0 credentials on the Google Cloud Console:
- Create a new project or select an existing project.
- Enable the Google Calendar API:
- Go to APIs & Services > Library.
- Enable the Google Calendar API.
- Create OAuth 2.0 credentials:
- Go to APIs & Services > Credentials.
- Click Create Credentials > OAuth 2.0 Client IDs.
- Configure the consent screen if prompted.
- Include the permission to create and modify secondary Calendars.
- Set the application type to Desktop app.
- Download the credentials JSON file and store it securely in
google_client_secrets.json
.
-
Discord Setup (Optional)
- Create a new application on the Discord Developer Portal.
- Copy the Client ID.
-
Environment Variables
Create a
.env.local
file in the project directory with the following content:DISCORD_APP_CLIENT_ID=your_discord_client_id
-
Run the App
python app.py
Once the app is running:
- Sign In with Google: Click on the menu bar icon and select "Sign in with Google" to authenticate and sync with Google Calendar.
- Start a Task: Click the play button to create and start a new task. You’ll be prompted to enter the task description.
- Pause/Stop a Task: Use the pause and stop buttons to manage your current task.
- Preferences: Access the "Preferences" menu to enable/disable running the app at startup and to control Discord rich presence visibility.
I welcome contributions from the community! If you have ideas for features or improvements, please feel free to open an issue or submit a pull request.
This project isn't licensed... pretty please don't steal and claim as your own?
Special thanks to the developers of the libraries and APIs used in this project, including Rumps, Google Auth, and PyPresence.