Skip to main content

September 25, 2026 Update

A large release. The headline is a Calendar that now syncs both ways with Google and Outlook. Underneath those, a great deal of repair work — including several faults that were quietly costing studios money.

IMPORTANT ABOUT GOOGLE INTEGRATION:

We are in the process of acquiring our CASA A1 Certification from Google. While getting this, when you connect to Google, you will get a “This site is not safe” warning. This is normal when an app is not fully verified by google. You should still be able to connect so long as you press continue to Workroom at the bottom of that screen. We should be clear for our certification in roughly 2 weeks, but will keep you posted. This does NOT impact Outlook users.


📅 Calendar — now two-way with Google and Outlook (Beta)
View the video here: Click Here

Connect Google Calendar. Your Gmail connection now carries calendar access too. One connection, one consent screen — connect Gmail and your calendar comes with it. (Already connected? Reconnect once to add calendar access; your mail is unaffected.)

Connect Outlook and Microsoft 365. Email and two-way calendar sync, on the same connection.

Two-way sync, every minute. Meetings you create in Workroom appear on your calendar. Events on your calendar appear in Workroom. Sync runs every minute, so it's near-live rather than something you wait on.

Your calendar stays yours. Workroom never deletes anything in your Google or Outlook calendar that it didn't create, and never edits an event it pulled in. Pulled events are read-only here, because your calendar owns them.

Choose which calendars to show. Pick the calendar Workroom writes to, and tick which of your calendars appear on the Workroom calendar.

Connected calendars in the left rail. Each one gets its own tick box and event count, sitting under your Workroom layers. Untick to hide its events — it's a filter, and the connection is untouched.

Rename your calendars. They default to your full email address, which tells you nothing in a list. Rename them to whatever you actually call them. Display-only; nothing changes in Google or Outlook.

Send earlier meetings. Meetings you booked in Workroom before connecting a calendar had never been sent. There's now a button for it — it sends two years either side of today, skips anything already there, and is safe to run twice.

Real guests on your invitations. Contacts you invite are added as guests on the Google/Outlook event and get a proper invitation. Type an email address into Attendees and that person is invited too. Type a name that isn't an address and it stays a note — we won't guess an email address and send a meeting invitation to the guess.

Frequent meeting locations. Save the handful of places your meetings actually happen — your video room, the office, a site mobile — each with a name you choose and an icon for what it is. They appear as one-press pills under the Location field when you create an event. No more pasting a Zoom link in from wherever you keep it.

Clickable join links. A location that's a URL is now a link on the event panel. One click into the call, for everyone invited.

Real faces in the guest list. If we know the person, you see their profile photo instead of initials.

Disconnecting actually disconnects. Turn off calendar sync and every event we imported is removed from the Workroom calendar, instead of leaving a frozen copy of your diary behind.

Calendar fixes (Funny, because it’s a new module…)

  • Duplicate events. Three separate causes, all fixed — Workroom meetings being re-imported as second copies, the same event arriving twice in one pass when it sat on two calendars, and rows collapsing incorrectly. A housekeeping pass now retires any duplicates it finds every ten minutes.

  • A one-field save was tearing down the whole connection. Renaming a calendar in the rail could switch sync off, clear your chosen calendar and empty your shown-calendars list. A save now changes only what it mentions.

  • Unticking a calendar removed it from the connection instead of just hiding its events. It's a filter now, as it should always have been.

  • A blank calendar page caused by a startup ordering bug. Fixed.

  • Outlook events landed hours off, because Microsoft answers in UTC and we were reading the clock off it. Fixed.

  • Estimated dates read as missing dates, so a planned delivery drew nothing.

  • "Studio time" was being read from two different fields, so the day's start hour disagreed with itself.

  • Imported Google events reported themselves as WIP tasks — the panel named them wrong, and the drag rules let you move an event Google owned, which the next sync silently undid.

  • Timezone. Google and Outlook pushes were assuming different default timezones when a studio hadn't set one, so the same meeting could be written at one hour to Google and another to Outlook, and reminded about at a third. One default now, everywhere.

  • Sending earlier meetings could stall. On a studio with a lot of history, every run sent the same first batch and never reached the meetings that had never been sent. Unsent meetings are taken first now, so every run makes progress.

  • Performance. The calendar was doing the same work a hundred times per load. Split up and cached.


📚 Library, Products & Importing

Product import wizard. A four-step wizard for importing products, running in the background so you can keep working. Opens straight from the Library.

Add a vendor from the Library. If the vendor doesn't exist yet, create it from the vendor column without leaving the page.

Open a product's own page from its row.

Library fixes

  • Items weren't saving. Two separate causes, both fixed: a duplicate guard that was matching on name and refusing legitimate new rows, and rows never learning their own id after being created. If you added items and they vanished, this was why.

  • Sub-items stopped nesting everywhere, because of a one-character error in a database query.

  • A deleted image came back.

  • Mood showed products the Library didn't — sub-items and orphans of deleted products.

  • The Mood Products tab hid half the library.

  • Off-screen rows were being re-laid-out on every change, making large libraries sluggish.

  • The section header came unstuck when scrolling, and the list query cost has been cut significantly.

  • The vendor-page link is now a chain icon, not a second open-in-new-tab arrow.

  • The Products (Catalog) page has been removed — the Library is the one place.


🚚 Shipment tracking (announced September 24!)

  • Carrier detection fills the field in instead of asking every time.

  • Tracking writes the procurement dates, so the calendar moves on its own.

  • An "Out For Delivery" status, shipment-to-status mapping, and a real lock on default status names.

  • Tracking activity now shows in the expanded row too, and refreshes itself.

  • Tracking errors speak as Workroom, not as the shipping provider.

  • Automation trigger: product status changed.

  • Fixed: shipment status never moved because the target status hadn't been seeded.


💰 Budget & Design Fee

Fee lines, back as they were. The fee line structure is restored, with the KPI tiles kept as they are.

"Add fee line" is always available again. It had been hidden unless a project already had hand-built lines, which meant you could only add one where you already had one.

Editable Estimated column, across all phases and services.

Budget by category. Set what each category is allowed to spend, and see spend, margin and estimate against it on a new Categories home view.

Budget fixes

  • "That fee line no longer exists" when editing an estimate — on most projects, because the line came from your declared fee setup and we were looking in the wrong place.

  • "Fee line not found on this budget" when deleting the hourly fee line — the same blind spot, in the delete. Removing a declared line now removes that method from the fee setup, and tells you what that means before it happens.

  • Typing an estimate tore the whole page down and rebuilt it.

  • A confusing error about hour plans now explains itself in plain language, and the page prevents the situation rather than refusing after you've typed.

  • The room rate field refused input, while the line underneath told you to use it.

  • Budget rooms returned a 404.

  • The Hours tile, the Timelog report and Ready to Invoice disagreed about how many hours were uninvoiced. They agree now. Ready to Invoice's "Projects ready" tile is now total uninvoiced hours.

  • Ready to Invoice's attach / write-off / snooze / restore actions were silently doing nothing on some workspaces.

  • Four money calculations that failed silently now report when they fail.


🧾 Invoices, Estimates & Money

  • Payment history was showing payments from other invoices. A newly created invoice could display a payment history that had nothing to do with it. Fixed — and then fixed properly, because the first fix didn't land.

  • The client portal's Payment History was a hard-coded placeholder. It shows real payments now.

  • A scheduled invoice could only be paid in full from the client view.

  • QuickBooks now names the item that can't be purchased, instead of handing you a list to audit.

  • Invoice and estimate reads by id now check who's asking.


👥 Client portal, stakeholders & project access

  • A project has several clients, not one client and some stakeholders. Reflected throughout.

  • A stakeholder now sees what the client sees, including the project dashboard with its estimates and invoices — and they open.

  • "Unresolved contact" for a contact that plainly existed.

  • One login can have several contact records, and is handled correctly.

  • Preview the weekly client update before it goes.

  • Client-facing document fields are the editor's fields now — what you set is what they see.


📝 Forms

  • The full Google Fonts library, shown in the font itself — no API key, no proxy.

  • Button text, button weight, and separate heading and body typefaces.

  • A button font option — and it now actually saves, and the font actually loads.

  • A Description paragraph component, for ordinary instructional text. Previously a form could speak in exactly two sizes, both of them headings, so instructions came out shouting in 18px semibold.

  • The form builder autosaves.

  • Nobody could submit a public form — the anti-spam fields were being stripped. Fixed.

  • An embedded form could be un-submittable, silently.

  • A live crash in the Approval field.


📄 Contracts

  • Sub-lists under numbered items — a) b) c) under item 1, so three parts of one clause don't read as three more obligations.

  • Long item text no longer runs off the page.

  • Page numbers on the client-facing view, bottom right.

  • Contracts settings are reachable again, and appear only when the app is on.


🔒 Security & sign-in

  • This is all classified, but… just know we enhanced our security quite a bit!


⚙️ Settings, permissions & plans

  • Apps: Quotes, Calendar and Ready to Invoice are opt-in. Turn on what you use.

  • Name the accounts you pay from. Settings → Money → Accounts you pay from now lets you label each one.

  • A "full" permission set granted nothing for ten modules. Fixed.

  • Team & billing: a service is one line rather than two cards, "Copy to…" sits under the services and is right-aligned, and the copy features are findable without scrolling.

  • Approvals: auto-convert is back, and whose time needs sign-off is settable.

  • Timelog blocks: Previous and Next were dead buttons.

  • WIP Kanban: collapse a column to a spine.

  • WorkPay on the Integrations page never reached the application; it now says apply, and says why when it can't.

  • Trial gifts: a gifted trial charged $149 on the spot; changing the email on the signup form voided the gift; a gift that can't apply now stops the signup rather than failing quietly.

  • The vendor signup link was never being sent.

  • A CSV that imported as XLSX but not as CSV.

  • Room placeholders are hidden while that area is reworked.

  • The profile menu drops the identity block.


A note on Beta

Calendar carries a Beta label in the nav, matching Quotes. Two-way sync is new and the thing on the other end of it is your real calendar. We're confident in it — the ownership rules are strict and Workroom will not touch what it didn't create — but we'd rather say so than not.


Two things worth doing this week if you use the Calendar:

  1. Set your studio timezone (Settings → Company) if you haven't.

  2. After connecting, run Send earlier meetings once, so your history comes with you.