Stop Manually Logging Hours—Let Your Calendar Do It
Your calendar is your truth source. Every day, Notis syncs your meetings to a timesheet sheet, automatically calculating billable hours by client or project.
Trigger
Recurring schedule
Notis starts this workflow on a schedule, such as daily, weekly, or during business hours.
Action
Batch update spreadsheet
Updates a specified range in a google sheet with given values, or appends them as new rows if `first cell location` is omitted; ensure the target sheet exists and the spreadsheet contains at least one worksheet.
Why this helps
Freelancers and service providers waste time manually logging hours to timesheets, often forgetting or approximating. This error-prone process makes accurate billing and payroll frustrating.
- Accurate timesheet populated automatically from your calendar
- No more manual hour estimation or forgetful logging
- Easier to bill correctly and get paid for all your time
- Quick visibility into how you spend your day
Setup
Build it in a few focused steps.
- 1Connect Google Calendar and Google Sheets to Notis
- 2Tell Notis: 'Every day at 6 PM, sync today's calendar meetings to my timesheet sheet, logging duration, attendees/project, and marking billable time'
- 3Set up your timesheet sheet with columns for date, meeting/project name, duration, client, and billable status
- 4Choose your notification channel
- 5Test by reviewing yesterday's meetings to see how they map to hours
Questions about this workflow
How does Notis know which meetings are billable?
You can tag billable meetings in your calendar invite title (e.g., 'Client XYZ Meeting') or tell Notis which calendars and attendees count as billable.
What about meetings that are partially billable or internal prep time?
You can customize categories—e.g., 'client meetings are 100% billable, internal meetings are 50%, personal time is 0%.' Notis will apply those rules automatically.
Can I edit the timesheet after it's generated?
Yes. Notis populates it, but it's your sheet, so you can edit, add notes, or adjust as needed.
Does this work with multiple calendars or different time zones?
Yes. You can specify which calendars to track and set your timezone so times are logged correctly.
When this happens · Trigger
Do this · Action
Supported Triggers and Actions
Notis builds workflows that link Google Calendar to Google Sheets. A trigger fires from one place; an action lands in another.
Google Calendar triggers
Google Sheets actions
Attendee Response Changed
Polling trigger that fires when any attendee's RSVP changes to accepted, declined, or tentative. Returns attendee info and current status.
Add Sheet to Spreadsheet
Adds a new sheet (worksheet) to a spreadsheet. use this tool to create a new tab within an existing google sheet, optionally specifying its title, index, size, and other properties.
Event Canceled or Deleted
Triggers when a Google Calendar event is cancelled or deleted. Returns minimal data: event_id, summary (if available), and cancellation timestamp.
Aggregate Column Data
Searches for rows where a specific column matches a value and performs mathematical operations on data from another column.
Event Starting Soon
Triggers when a calendar event is within a configured number of minutes from starting. Returns event details, time remaining, attendees, and join links when available.
Append Dimension
Tool to append new rows or columns to a sheet, increasing its size. use when you need to add empty rows or columns to an existing sheet.
Calendar Event Changes
**SOON TO BE DEPRECATED** - Use Calendar Event Sync (polling trigger) instead. Real-time webhook trigger for calendar event changes. Returns event metadata only. For full event data, use Calendar Event Sync (polling trigger).
Batch get spreadsheet
Retrieves data from specified cell ranges in a google spreadsheet; ensure the spreadsheet has at least one worksheet and any explicitly referenced sheet names in ranges exist.
Event Created
Polling trigger that fires when a new calendar event is created. Returns event ID, summary, start/end times, and organizer info.
Batch update spreadsheet
Updates a specified range in a google sheet with given values, or appends them as new rows if `first cell location` is omitted; ensure the target sheet exists and the spreadsheet contains at least one worksheet.
Calendar Event Sync
Polling trigger that returns full event data including details, attendees, and metadata. For real-time notifications with basic info, use Calendar Event Changes (webhook).
Batch Update Values by Data Filter
Tool to update values in ranges matching data filters. use when you need to update specific data in a google sheet based on criteria rather than fixed cell ranges.
Event Updated
Triggers when an existing Google Calendar event is modified. Returns the event ID, change type, and the specific fields that changed with their previous and new values.
Clear Basic Filter
Tool to clear the basic filter from a sheet. use when you need to remove an existing basic filter from a specific sheet within a google spreadsheet.
Clear spreadsheet values
Clears cell content (preserving formatting and notes) from a specified a1 notation range in a google spreadsheet; the range must correspond to an existing sheet and cells.
Connect any two apps with Notis in the middle.
Not just Google Calendar and Google Sheets. Any combination from 1,000+ integrations.
When this happens · Trigger
Do this · Action
Save your first hour today.
7 days free trial with 20$ free usage included.
No card. Works with personal or business Google Sheets.