Turn your Google Calendar meetings into Clockify time entries
Every weekday at 6pm, we check today's meetings against what you already tracked and log the missing ones to the right project in Clockify.
Every weekday at 6pm, reconcile today's meetings against the time I already tracked in Clockify, and log the billable hours I forgot. Use a cron trigger for this, not a poll trigger. I do not want a live timer that starts when a meeting begins, because meetings run long, get cancelled, or overlap something I am already tracking. This is an end of day catch up pass, and deciding what is already covered versus genuinely missing is judgement work.
Start in Clockify with Get currently logged-in user's info to resolve my user id and my active workspace id. Everything else in Clockify is scoped to that workspace, so establish it before making any other Clockify call.
Then gather the three inputs. From Google Calendar, use List Events on my primary calendar for today only, expanding recurring events into individual instances and ordering by start time so I get real instances rather than a recurrence rule. From Clockify, use Get all projects on a workspace to load my projects along with their client names. Also from Clockify, use Get time entries for a user on a workspace for my user id, filtered to today, to see what I already tracked by hand.
Decide which events count as real, tracked work. Skip any event where my own response status is declined. Skip all-day events, which appear with a date instead of a specific start and end time. Skip focus blocks, out of office and working location entries, which the calendar marks with a distinct event type, and skip anything whose title looks like a self-directed hold rather than a meeting, for example titles containing focus, hold, block, busy, lunch, commute, or a personal appointment such as a dentist or school run. Skip events shorter than the minimum meeting length, which should default to 15 minutes. If an event has no other attendees and reads like a personal reminder, leave it out.
Never double log time. Before creating anything, compare each surviving meeting against the time entries I already tracked today. If an existing entry overlaps the meeting's time window at all, treat that meeting as already covered and skip it, even when the description does not match. I would rather miss one entry than end up billing a client twice for the same hour. Overlap on the clock is the test, not description similarity.
For every meeting that is left, pick the best matching project. Use the attendee email domains as the strongest signal, matching the external domain against my client names and project names, and use keywords in the meeting title as a secondary signal. If a meeting clearly belongs to a client but no confident project match exists, do not guess and do not fall back to a default project. Leave it unlogged and report it instead.
Create each confidently matched entry with Add a new time entry in Clockify, using the event's real start and end times as the entry's start and end, the event title as the description, and the matched project. Timestamps are ISO-8601 in UTC, so convert the calendar times correctly rather than passing local times through. Set whether these entries are billable by default according to my preference, defaulting to billable.
Finish by sending me a Slack direct message. Look up my Slack user by my email address, open a direct message conversation with me, and use Send a Message to deliver the summary. Tell me the total hours logged, list each meeting alongside the project it went to, and then list separately any meeting the workflow could not confidently match, with the time and the attendees, so I can assign those myself. If there was nothing to log because everything was already tracked, say so in one short line rather than sending an empty report.
What does this prompt do?
- Reads today's calendar at the end of each weekday and compares it against the time you already tracked, so nothing is logged twice.
- Creates time entries for the meetings that actually happened, using their real start and end times and the meeting title as the description.
- Chooses the right project or client by looking at who attended and what the meeting was called.
- Sends you a Slack message with the hours it logged, where they went, and any meeting it could not confidently match.
What do I need to use this?
- A Google Calendar account holding the meetings you want tracked
- A Clockify account with your projects and clients already set up
- Slack, so the end of day summary can reach you as a direct message
How can I customize it?
- Change when it runs. Weekdays at 6pm catches the full day, but you can move it later or run it the next morning instead.
- Set the shortest meeting worth logging. It ignores anything under 15 minutes by default, so quick catch-ups do not clutter your timesheet.
- Decide whether the meetings it logs should count as billable by default.
FAQs
Will it log time I already tracked myself?
What happens to meetings it cannot match to a project?
Does it log meetings I declined, or my focus time?
How does it know which project a meeting belongs to?
Can I run it at a different time of day?
Related templates
Stage a batch of filings overnight, then approve each completed form from a screenshot before anything is ever submitted.
Pick a client and a date range to see sent, replies, meetings booked and the real deal value your cold email produced, campaign by campaign.
Review every conversation Fin closed as resolved, judge which ones actually stuck, and see what the gap is worth against your bill.
Merge your IT, HR and Facilities queues into one list ranked by SLA time left, then reply, change status and escalate without ever opening Jira.
See every page's translation status at a glance, edit translations side by side with the English, and publish only what your team has actually approved.
One place for sales and ops to request an NDA or vendor agreement, watch its status, and let legal launch the contract in a single click.
Stop losing billable hours you forgot to log.
Let this run at the end of each weekday and your timesheet fills itself in, leaving only the genuinely unclear meetings for you to place.