TimeTab is a desktop application that combines Google Calendar integration with a Pomodoro timer. It displays your current and upcoming events from Google Calendar and helps you manage your work sessions with a built-in Pomodoro timer.
- Google Calendar integration
- Display of current and upcoming events
- Personalized greeting based on the time of day
- Pomodoro timer with customizable work sessions and breaks
- Encrypted storage of Google OAuth tokens
- Python 3.7+
- Required Python packages:
- google-auth
- google-auth-oauthlib
- google-auth-httplib2
- google-api-python-client
- cryptography
- pytz
- Clone this repository or download the source code.
- Install the required packages:
pip install -r requirements.txt
- Download the
credentials.json
file from the Google Developer Console and place it in the same directory as the script. Be sure to select Desktop client.
To run the application from source:
python pomo.py
To build an executable:
pyinstaller --onefile --windowed --icon=timetab_win.ico --add-data "credentials.json;." --add-data "timetab_win.ico;." --hidden-import cryptography --hidden-import pytz --name=timetab.exe pomo.py
or run python build_exe.py
Replace pomo.py
with the name of your Python script if it's different.
On the first run, the application will open a web browser for Google OAuth authentication. Follow the prompts to grant the necessary permissions. After successful authentication, the application will display your calendar events and the Pomodoro timer.
- The Google OAuth token is encrypted and stored locally for future use.
- The Pomodoro timer runs for customizable work sessions, followed by breaks.
- The break notification will appear on top of other windows to ensure you don't miss it.
If you encounter any issues with missing modules when building the executable, you may need to add more --hidden-import
flags to the PyInstaller command.
This project is licensed under the MIT License. See the LICENSE file for details.
We welcome contributions to TimeTab! Here are some ways you can contribute:
- Report bugs or suggest features by opening an issue.
- Improve documentation by submitting pull requests.
- Write code to fix issues or add new features.
To contribute code:
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Write your code and add tests if possible.
- Ensure your code follows the project's coding style.
- Submit a pull request with a clear description of your changes.
If you have any questions or need help with TimeTab, please open an issue on the GitHub repository.
TimeTab uses the Google Calendar API and several open-source Python libraries. We're grateful to all the developers who contribute to these projects.