Hey there, fellow code wrangler! Ready to supercharge your time tracking game? Let's dive into the world of Clockify API integration using Python. We'll be leveraging the nifty clockify-api
package to make our lives easier. Buckle up!
Before we jump in, make sure you've got:
First things first, let's get that clockify-api
package installed:
pip install clockify-api
Easy peasy, right?
Now, let's get cozy with the Clockify client:
from clockify_api import ClockifyAPI api_key = "your_api_key_here" clockify = ClockifyAPI(api_key)
Boom! You're in like Flynn.
Let's flex those API muscles with some basic operations:
# Get workspace info workspace = clockify.workspaces.get()[0] # Fetch user data user = clockify.users.get(workspace.id)[0] # Get projects projects = clockify.projects.get(workspace.id)
Look at you go! You're practically a Clockify whisperer now.
Time to get down to brass tacks - managing those time entries:
# Create a time entry new_entry = clockify.time_entries.create( workspace.id, start="2023-05-01T09:00:00Z", end="2023-05-01T17:00:00Z", project_id=projects[0].id, description="Crushing it with Python" ) # Get time entries entries = clockify.time_entries.get(workspace.id) # Update an entry clockify.time_entries.update( workspace.id, new_entry.id, description="Still crushing it, but with more coffee" ) # Delete an entry (careful now!) clockify.time_entries.delete(workspace.id, new_entry.id)
Feeling adventurous? Let's tackle some advanced stuff:
# Work with tags tags = clockify.tags.get(workspace.id) # Handle custom fields custom_fields = clockify.custom_fields.get(workspace.id) # Generate a report report = clockify.reports.detailed( workspace.id, start_date="2023-05-01", end_date="2023-05-31" )
Don't let those pesky errors catch you off guard:
from clockify_api.exceptions import ClockifyAPIException try: # Your awesome code here except ClockifyAPIException as e: print(f"Oops! Something went wrong: {e}") # And remember, be nice to the API - don't hammer it with requests!
Let's put it all together with a simple time tracking script:
from clockify_api import ClockifyAPI from datetime import datetime, timedelta api_key = "your_api_key_here" clockify = ClockifyAPI(api_key) workspace = clockify.workspaces.get()[0] project = clockify.projects.get(workspace.id)[0] start_time = datetime.utcnow() end_time = start_time + timedelta(hours=1) clockify.time_entries.create( workspace.id, start=start_time.isoformat() + "Z", end=end_time.isoformat() + "Z", project_id=project.id, description="Building awesome Clockify integrations!" ) print("Time entry created successfully!")
And there you have it, folks! You've just leveled up your Clockify game with Python. Remember, this is just scratching the surface - there's a whole world of possibilities waiting for you in the Clockify API docs.
Now go forth and track time like a boss! 🚀