Automatically sync your Toggl Track time entries to Google Calendar events in real-time using webhooks.
- Time entries synced to Google Calendar in real-time via Toggl webhooks and Django Q background tasks
- Color mapping: Assign Google Calendar event colors based on project, tag, workspace, or organization (priority order)
- Periodic validation: Checks synced events against Google Calendar and re-syncs discrepancies
- Multi-user support: Each user manages their own Toggl API token
For deployment instructions, troubleshooting, and development setup, see DEPLOY.md
- Docker/Podman with compose
- A publicly accessible HTTPS domain (for webhooks and OAuth)
- Google Cloud project with Calendar API enabled
# Clone repository
git clone https://github.com/yourusername/togglsync.git
cd togglsync
# Configure environment
cp .env.example .env
# Edit .env with your settings
# Start with Docker
docker-compose up -d
# Create admin user
docker-compose exec togglsync python manage.py create_user admin --superuserGo to https://your-domain.com/ and login with your admin credentials.
I recommend using non-admin user to sync things, make sure the added user has permissions to modify Sync related models.
- Go to
https://your-domain.com/ - Click Connect Google Calendar
- Complete the OAuth flow
- Click Import calendars from Google
- Go to User Credentials → Add
- Enter your API token from Toggl Profile
- Save, then click Sync metadata from Toggl
- Go to Calendars
- Select a calendar → Set as default calendar
- Go to Toggl Workspaces
- Select workspaces → Setup webhook for selected workspaces
Assign Google Calendar event colors based on project, tag, workspace, or organization. Priority: tag > project > workspace > organization.
- Go to Color Mappings → Add
- Select entity type, entity, and color
- Set process order (lower = higher priority among same type)
MIT License