Your calendar is three different integrations wearing one name

Anyone running appointments, classes or site visits out of a Google Calendar who wants the rest of the operation — the customer, the job, the invoice — to live somewhere that can actually be queried.

  • A calendar becomes a table of events — one row per event, not a feed you can only scroll
  • Booking pages read your team's busy time directly, so a taken hour is never offered
  • An automation can put an event on a calendar when work is scheduled in RowFold
  • A booking page can put each booking it takes on the calendar as an event, moved and removed with the booking
  • Free/busy is matched to a person by their email address, so each staff member's own calendar governs their own slots
  • If a calendar cannot be reached the times stay on screen rather than the page emptying — it fails open on purpose
  • It imports events. It does not import your Google Contacts
Start free 30 days free · no credit card
WHAT IT DOES

Exactly what connecting Google Calendar gives you

Brings data in

Pull Google Calendar into RowFold tables you own — filter them, report on them, link them to everything else in the workspace.

And it stays current: importing again updates the same tables, adding new records and updating changed ones, so links from your other tables hold. Keep in sync does that for you hourly or daily.

Keeps your booking pages honest

Your team's busy time is read straight from Google Calendar, so a public booking page never offers an hour somebody is already committed to.

Matched per person by email address. If the calendar can't be reached the times stay on screen rather than the page emptying — it fails open, deliberately.

Writes back

Automation steps that act on Google Calendar when something happens in RowFold:

  • Create a calendar event Adds an event to a Google Calendar. Times must include a date and a time; a time with no zone is treated as UTC. Returns the new event's link, which the step can save onto the record or pass to the next step.

What it doesn't do: An import only reads: nothing is written back to Google Calendar, a record deleted there stays here, and a sync runs hourly at most rather than the moment something changes. Anything else you have read about Google Calendar and RowFold, this page is the authority: it is generated from the connector's own code.

HOW TO DO IT

The jobs people connect Google Calendar for

I want my booking page to stop offering times I am already busy

Three things have to meet: a connected Google account, a field on your staff table holding each person's calendar address, and a booking page told which field that is. Miss the last one and the connection sits there reading nothing, which is the commonest way this ends up half-built.

  1. Connect Google Calendar under Manage workspace, then Integrations Sign in as the person whose calendar you want read. For a booking page RowFold reads only free/busy, so it learns that Tuesday 2 to 3 is taken and never the title, the guests or the location. The same connection also asks for permission to read and add events, which is what importing a calendar and putting events on it use.
  2. Put each person's calendar address on your staff table Usually their work email, in an Email or Text field. This is the address Google gets asked about, so it has to be the one their calendar really lives on. A personal address on a Workspace calendar comes back empty.
  3. Open the booking page designer and find “Their calendar address (optional)” It sits in the staff section, under the fields that decide what a visitor sees. Pick the field you just filled in. This is the step that switches the whole thing on.
  4. Save, then read the panel the designer grows Once a calendar field is set, an External free/busy panel appears and reports whether each address could actually be read. An address Google refuses shows up there instead of as slots that quietly never disappear.

You'll know it worked: Block an hour in Google for one of your staff, wait two minutes, then reload the public booking page with that person selected. The hour should be gone. Two minutes is the cache: the slot list is redrawn on every page view and neither vendor would tolerate a live call each time.

I want bookings to show up on our Google calendar

The booking is the original and the calendar event is a copy of it, kept in step for as long as the booking exists. It builds on the walkthrough above, because the switch only appears once the booking page knows which field holds each person's calendar address.

  1. Do the first walkthrough Connect the Google account and name the calendar address field on the booking page. The account you connect is the one whose calendar the events are created on.
  2. Open Their own calendars in the booking page's setup and tick Put bookings on the connected calendar It is off by default. Connecting an account never switches it on, because adding events is a wider permission than reading busy times and it should be a decision somebody takes.
  3. Save, then take a test booking through the public page The event is created as the booking is confirmed. Its title is the service and the customer's name, and the staff member is on it as a guest when their record holds a calendar address.
  4. Move the booking, then cancel it Use the link in the confirmation email, or drag the booking on the scheduler. The same event moves, and cancelling removes it. The customer's own cancel link is deliberately not on the event, since calendar entries get forwarded.

You'll know it worked: The event appears on the connected account's calendar within a few seconds of the confirmation page, marked free rather than busy. If nothing appears, check the box is ticked on that page and that the connected account is a Google one: an Outlook calendar is read for busy times and cannot be written to yet.

I want my calendar in a table so I can count what actually happened

A calendar draws time. It cannot tell you how many appointments were cancelled last month, or which service earns most per hour, because those are questions about a set of records and a calendar has none. Importing turns each event into an ordinary row.

  1. Connect Google Calendar, then press Import data on the connected account Importing is a separate act from connecting. Connecting only establishes that RowFold may ask; nothing is read until you choose what to read.
  2. Pick which calendar to bring across Every calendar the account can see is offered separately, so a shared team diary and somebody's own calendar stay separate tables rather than merging into one pile.
  3. Let it run in the background The import is queued rather than done while you wait, because a busy calendar pages for minutes. Close the tab if you like.
  4. Link the new events table to whatever the events are about This is the step that earns the import. An event linked to a client record turns a calendar into that client's history, which no calendar app can answer.

You'll know it worked: The new table appears in the left rail with one row per event. Open it and check a date you remember. If every time looks an hour out, the calendar's timezone and the workspace's disagree.

I want an event to appear in Google when a job gets scheduled

Typing the same appointment into two systems leaves the calendar only as current as the last person who remembered. An automation writes the event as part of the thing that already happened, so the calendar becomes a copy rather than a second original.

  1. Build an automation on the table that holds the work Trigger it on the change that actually means scheduled, such as a status reaching a value or a date being filled in, rather than on every edit.
  2. Add a condition so unplanned work is skipped Without one, a record saved before anybody picked a date creates an event at whatever an empty field resolves to. Check the start date is set first.
  3. Add the Create a calendar event step and map the fields It needs a calendar, a title, and a start and end that each carry a time as well as a date.
  4. Say the timezone explicitly A time with no zone is read as UTC. If your records hold local wall-clock times, an event an hour out is far harder to notice than one that failed outright.
  5. Keep the event's link on the job Choose a Url field under Save the result to. Google sends back the event's address and the step stores it, so the team can open the appointment from the job. The link only opens for people who can see that calendar, so send customers the time rather than the link.

You'll know it worked: Move one test record into the scheduled state and watch the automation's run log. A green run with no event in Google almost always means the calendar id was wrong, not that the step failed.

WHAT IT FIXES

The four things that actually go wrong

Your bookings live in a calendar, so they cannot be counted. Nobody can answer how many appointments were cancelled last month, which service earns most per hour, or which staff member is quietly overloaded, because a calendar is a drawing of time rather than a set of records.

Import the calendar and every event becomes a row in a table you own, with real fields. From there it is the same as any other data in RowFold — filter it, group it, total it, chart it, link each event to the customer it belongs to.

A booking page that does not know about the rest of your week will happily sell an hour you are already in a meeting. The usual workaround is blocking out personal time twice, once in the calendar and once in the booking tool, and the day somebody forgets is the day two people expect you at ten.

Connected calendars are consulted whenever a booking page works out what to offer. Busy is busy — a slot disappears from the public page because somebody accepted a meeting, with nobody maintaining a second copy of the week.

Work gets scheduled in one system and remembered in another. A job is approved in a tracker and then somebody retypes the date into a calendar so the engineer sees it, which means the calendar is only as current as the last person who remembered.

An automation creates the calendar event as part of the thing that already happened. When a record reaches the state that means scheduled, the event appears — on the right calendar, with the right title, without anybody typing it twice.

Calendar data is trapped in a shape that only a calendar can read. Exporting it gives you an .ics file, which is useful to exactly one kind of program, and that program is another calendar.

Once events are rows, they join everything else. Link an event to the client record, roll up hours per project, put a month of them on a report, or hand the table to the public API. None of that needs the calendar's permission.

One automation worth building

When a job is marked scheduled…

  1. Wait until the start date is set, so an event is never created for an unplanned job
  2. Create a Google Calendar event on the assigned engineer's calendar
  3. Email the customer the confirmed time from the same record
QUESTIONS

Before you start

Can it import my Google contacts into a table?

No. This connector reads calendars, and what it brings across is events — one row per event. Contacts live in a different Google product with its own permissions, and RowFold does not currently connect to it. If you want a contacts table, import it from a spreadsheet or your CRM instead, then link your imported events to it, which is the more useful shape anyway.

Does it block out whole days that aren't available for my booking form?

It blocks the hours your team is actually busy, which is usually what people mean. An all-day event in the calendar removes that day; a two-hour meeting removes those two hours and leaves the rest of the day bookable. If you want a day closed for everyone regardless of anybody's calendar — a bank holiday, a refit — that belongs in the booking page's own availability, where one row closes the day for the whole business.

Whose calendar gets checked?

Each staff member's, matched by email address. The address on the person in RowFold is what ties them to the calendar that was connected, so one person's meetings never remove another person's slots. Somebody with no connected calendar simply has none consulted — they are not treated as busy.

Can a booking appear on my Google calendar without anybody adding it?

Yes, once you switch it on. In the booking page's setup, the card that reports on staff calendars has a box, Put bookings on the connected calendar, and it is off until you tick it. From then on a booking taken through the page becomes an event on the connected account's calendar, with the person the booking is with invited as a guest. Moving the booking moves the event and cancelling it removes the event. The event is marked free rather than busy, because RowFold already holds that time and counting it twice would block the hour a moved booking had just left. A booking your team types into the scheduler is not put on the calendar, and the customer is not added to the event: they get a calendar file with their confirmation instead.

What happens if Google is unreachable when somebody is booking?

The page keeps working and keeps offering times. That is a deliberate choice: the alternative is a booking page that silently shows nothing because a third party had a bad minute, which costs far more than the rare double-booking it would prevent. The check is described as not having run rather than being quietly treated as a clear calendar.

Does the imported table stay in step with the calendar?

It can. Importing the calendar again updates the same table, matched on Google's event IDs: a moved or renamed event is updated, a new one added, and Keep in sync does that hourly or daily. A cancelled event stays in the table, and each run looks back a year, so an event older than that stops updating. If you need the two to agree to the minute, create the events from RowFold rather than the other way round, so the record is the original and the calendar is the copy.

What does an automation need to create an event?

A calendar to put it on, a title, and a start and end that both carry a time as well as a date. A time with no timezone is read as UTC, so if your records hold local wall-clock times, be explicit about the zone — an event an hour out is harder to notice than one that failed.

Describe yours and watch it build

There is no template to wait for. Type a sentence about what you run and RowFold assembles the tables, links, views and dashboard around it — then you change whatever does not fit.

Start free Free for 30 days. Then $29/month per editor, with unlimited free read-only viewers.