HourLane — Calendar to TimesheetGoogle Sheets™ add-on · not on the Marketplace yet · timesheet freeGet notified

HourLane help

Updated 11 November 2026 · 14 min read

Short answer: Open a spreadsheet in Google Sheets™ and choose Extensions → HourLane → Open HourLane. Tick the calendars you work from, pick the period and press Refresh. Every event becomes a row in the Timesheet tab with its hours and client, and the Summary tab adds them up per client and month. HourLane only reads your calendar; it never changes it. HourLane is not on Google Workspace Marketplace yet. To hear when it is, write to info@bilingoplus.com or use the support page.

1. Install and open HourLane

  1. Install HourLane from Google Workspace Marketplace (the listing goes live at launch).
  2. Google shows the permissions HourLane needs. If they come with checkboxes, tick every one. If one is left unticked, HourLane cannot open or refresh. Why each one is needed is under Permissions.
  3. Open a spreadsheet and choose Extensions → HourLane → Open HourLane. The HourLane panel opens on the right.

The first time, the panel shows three steps: Tick the calendars you work from, Choose the period, Press Refresh. Your main calendar is ticked for you.

Once it is set up, you can also refresh without opening the panel: Extensions → HourLane → Refresh the timesheet.

2. Calendars

Under Calendars, the panel lists every calendar in your Google Calendar™ list that you can at least see the event details of: your own, calendars shared with you and team calendars. Your main calendar is marked (main). Tick as many as you like. The Calendar column of the timesheet says which one each entry came from.

A calendar where you can only see free/busy times is not listed, because its events have no titles to read.

3. Period

Choose This week, Last week, This month, Last month, Last 30 days or Custom dates. Weeks run Monday to Sunday. Under the list, the panel shows the exact dates, for example 2026-11-01 – 2026-11-30. Custom dates can cover up to a year.

The period decides which part of the timesheet a refresh rewrites. Rows outside it are left alone (see what a refresh keeps).

4. Which events count

Open Which events count under the period:

Cancelled events and events with no length are always skipped. A recurring event gives one row per occurrence, each with its own date. After a refresh, the panel says how many events were skipped and why, for example skipped 3 all-day, 1 declined.

Times are written in the time zone of your main calendar, the same times your calendar shows. Dates are written as 2026-11-16 and times as 09:00.

5. Rounding

Round each entry sets how each event’s length becomes hours: Exact minutes, or 6 min, 10 min, 15 min, 30 min or 1 hour, either to the nearest step or always up. Each entry is rounded on its own, before anything is added up.

Event lengthExact15 min, to the nearest15 min, always up6 min, always up
52 minutes0.87 h0.75 h1.00 h0.90 h
1 hour 5 minutes1.08 h1.00 h1.25 h1.10 h
20 minutes0.33 h0.25 h0.50 h0.40 h

An event that rounds to zero, such as a 5-minute event rounded to the nearest 15 minutes, is skipped.

HourLane — Calendar to TimesheetNot on Google Workspace Marketplace yet. Ask us to tell you when it is.
Get notified

6. Clients: tags and rules

Each entry gets a client in this order:

  1. Your rules, from the top of the list down. The first rule that matches wins.
  2. A tag in the event title, if Read [Client] and #client in titles is ticked (it is by default).
  3. The default client: Events with no client go to, or Unassigned if you leave it empty.

Tags in the title

Rules

Press + Add a rule, choose what to look at, type what to look for and the client. Capitals and extra spaces do not matter.

WhenExampleMatches
Title containsretainer → NorthwindEvery event with “retainer” anywhere in its title
Calendar isClient projects → Lumen LabsEvery event in the calendar with that name, as it appears in your list, or with that calendar ID
Guest email domain isacme.com → AcmeEvery event with a guest, other than you, whose email ends in @acme.com
Event colour number is11 → AcmeEvery event you gave that colour in Google Calendar

Event colour numbers are Google Calendar’s own: 1 Lavender, 2 Sage, 3 Grape, 4 Flamingo, 5 Banana, 6 Tangerine, 7 Peacock, 8 Graphite, 9 Blueberry, 10 Basil, 11 Tomato. An event left in its calendar’s default colour has no number, so a colour rule does not match it; use a Calendar is rule instead.

Because rules come first, a rule wins over a tag: with the rule Guest email domain is acme.com → Acme, an event titled [Lumen] Intro call with a guest from acme.com goes to Acme. Move the more specific rules up, or remove the one that catches too much.

7. The Timesheet tab, and what a refresh keeps

The Timesheet tab has one row per event: Date, Start, End, Hours, Client, Event, Calendar, Billable, Notes, Amount, Attendees, Location and Link (which opens the event in Google Calendar), plus one hidden column, HourLane key, that HourLane uses to recognise each event. Leave the hidden column as it is.

A refresh is a running log:

Rows are sorted by date and start time on every refresh. Put your own calculations in another tab: HourLane rewrites the rows in order, so a column you add to the right of the timesheet would no longer line up with them.

8. The Summary tab

Every refresh rebuilds the Summary tab from the whole Timesheet, your edits included: one line per client per month, newest month first, with Month, Client, Hours, Billable hours, Amount, Currency and Entries. Amount and Currency are filled in with Pro. HourLane rewrites the Summary tab each time, so keep your own notes elsewhere.

9. Rates and amounts (Pro)

Under Billing & statements, press Create the Rates tab. HourLane adds a Rates tab with the clients found in the timesheet so far, and four columns: Client, Hourly rate, Currency (USD to start with) and Email for statements. Type a rate next to each client, then press Refresh.

10. Statements (Pro)

A statement is a summary of the billable hours for one client in one month, with amounts if the client has a rate. It is not a tax invoice: attach it to your own invoice, or send it as it is. Choose the month and the client under Statement for, then:

Only entries with Billable Yes are on a statement, and Unassigned entries are left out of All clients. Statements are made from the rows in the Timesheet tab. If last month’s events changed after your last refresh, choose Last month and press Refresh first.

To a client: type the client’s address in the Email for statements column of the Rates tab and tick Also email each client under Automatic. The statement then goes from your own Google account to that address, with replies going to you. From the panel, Email it to me goes to you only, so you can check it and forward it yourself.

11. Automatic refresh and monthly statements (Pro)

Tick what you want and press Save. The panel then says On. Runs early every morning. If the Pro subscription ends, the automatic runs stop by themselves and the panel says Automatic refresh stopped because the HourLane Pro subscription ended.

12. A spreadsheet with several editors

13. Google’s daily email limit

Google limits how many people one account can email in a day through scripts and add-ons: 100 recipients a day for a personal @gmail.com account and 1,500 a day for a Google Workspace™ account. Each statement uses one, plus one more when it also goes to the client. HourLane checks what is left before each email. If the limit is used up, it stops and says Google’s daily email limit for your account is used up. Try again tomorrow. If the limit stops the monthly run on the 1st, the statements not yet sent are not tried again: make them from the panel the next day.

14. Free and Pro

Checkout opens when HourLane launches on Google Workspace Marketplace. Pro is bought from the panel (Get Pro), with Paddle as our Merchant of Record. The checkout is filled in with your Google account email, and after you pay, Pro switches on by itself in the open panel, usually within a minute. Paid with a different email? Open Already paid? Activate, enter the email you used at checkout and press Activate Pro. One subscription is for one Google account.

Cancel any time from the link in your Paddle receipt, or by emailing info@bilingoplus.com. Pro then runs to the end of the period you paid for. Every charge has a 14-day refund (see refunds). Your Timesheet, Summary, Rates and statement tabs stay in the spreadsheet either way.

15. Disconnect, erase

16. Permissions

When you install HourLane, Google may list each permission with a checkbox. Tick all of them. If one is left unticked, HourLane lists what is missing at the top of its panel (HourLane is missing some permissions), with Give the missing permissions: tick every box on Google’s screen, then close the panel and open HourLane again.

PermissionIn plain EnglishWhy HourLane needs it
spreadsheets.currentonlySee and manage only the spreadsheet you use it inTo write the Timesheet, Summary, Rates and statement tabs. It cannot see your other spreadsheets
calendar.calendarlist.readonlySee the list of your calendarsSo you can tick which ones to read
calendar.events.readonlyView events in your calendarsTo read the events of the ticked calendars for the chosen period. Read-only: it cannot change your calendar
script.container.uiShow its own panel in Google SheetsThe HourLane panel and menu
script.scriptappRun when you are not presentThe morning refresh and the monthly statements (Pro)
script.send_mailSend email as youTo send statement emails (Pro). It cannot read your mailbox
script.external_requestConnect to an external serviceTo reach the Google Calendar API and to check a Pro licence with Paddle
userinfo.emailSee your email addressTo match your Pro licence and to know where to send your statements

None of these is a “restricted” Google permission, and none lets HourLane change your calendar or read your Gmail™, your Drive or your other spreadsheets.

17. Troubleshooting

What you seeWhyWhat to do
No rows, or fewer than you expectedThe events are in a calendar that is not ticked, or outside the period. All-day events and events you declined are skipped by default, and Only events containing may be filtering them outCheck the ticked calendars and the dates under the period, and the skipped counts after a refresh. Untick Skip all-day events or Skip events you declined if you want them
The wrong clientThe tag is spelled differently, or a rule higher in the list matched firstCheck the tag in the title, and move or change the rule. Or type the right client in the row: a refresh keeps it
Amount is blankThe client is not in the Rates tab, the entry’s Billable is No, or the row was refreshed by an account without ProAdd the client and its rate to Rates, or set Billable to Yes, then press Refresh
Times look an hour offTimes follow your main calendar’s time zone, which can differ from the spreadsheet’s or from where you areCheck the time zone in Google Calendar’s settings. If you changed it, press Save in the panel, then Refresh
Automatic refresh stoppedThe panel says why under Automatic: for example, the Pro subscription ended, or it runs under another accountRenew Pro and tick it again, or ask the account named there
… calendar(s) are no longer available — untick them. / A calendar was not found, or you no longer have access to it.A ticked calendar was deleted, unshared, or belongs to another editorUntick it and press Save
Stopped at 6000 events — choose a shorter period.One refresh reads up to 6,000 eventsRefresh a shorter period, month by month: earlier months stay in the timesheet
No billable entries for … in …That client has no entries with Billable Yes in that monthCheck the month and the Billable column
Another refresh is running — try again in a minute.Someone else, or the morning refresh, is refreshing this spreadsheetWait a minute and press Refresh again
HourLane is missing some permissions.A permission was left unticked when it was installedPress Give the missing permissions, tick every box, and open HourLane again

18. Your data

HourLane runs inside your Google account. Events are read from your calendars and written only into your own spreadsheet; nothing from your calendar is sent to BiLingoPlus. The setup is saved inside the spreadsheet, and a small record for your account (the Pro status and which spreadsheets have automatic refresh) in your Google account. Details are in the privacy policy.

19. Still stuck?

Write to info@bilingoplus.com or use the support page. Tell us the message you see in the panel. Please do not send us your calendar or timesheet with private details in them.

HourLane — Calendar to TimesheetNot on Google Workspace Marketplace yet. Ask us to tell you when it is.
Get notified

Questions

Can HourLane change or delete my calendar events?

No. Both of its calendar permissions are read-only. It lists your calendars and reads the events of the ones you tick, and writes only into the spreadsheet you use it in.

Can I use HourLane in several spreadsheets?

Yes. Open it in each one. Every spreadsheet has its own setup, calendars, period and rules, and its own Timesheet, Summary and Rates tabs.

Does HourLane read the event descriptions?

Only for the Only events containing filter, which looks at the title and the description. The description is not written into the timesheet.

Can I add rows by hand?

Yes. A row you type yourself has no HourLane key, so a refresh leaves it where it is. With the date written like 2026-11-16, its hours and an event, the Summary counts it too.

RelatedHourLane: timesheets from Google CalendarHow to turn Google Calendar into a timesheetHourLane privacy policy