OpusDone books into Google Calendar and Cal.com, and no other calendar provider. It reads every calendar you mark as busy, writes only where you allow it, and takes its closures from a month view you control. Changes reach the agent in about 15 seconds.
Reviewed

freeBusy sweeps every calendar you marked busy and merges the result, so a personal commitment blocks a business slot. The busy endpoint returns times only, never event titles. A partial read raises rather than treating a calendar it could not read as free.
Connect with OAuth, no API key. Closures are mirrored in as an all-day “Closed — {your business}” event; deleting that event does not reopen the day.
Connect with an API key. Bookings can wait pending until you accept them, and no-shows are recorded against the appointment.
The dentist appointment on your personal calendar is still a reason you cannot see a customer at 11:00. An integration that reads one calendar will book straight over it.
August, a long weekend, the Monday after a fair. Blocking those by hand, in the right calendar, in the right timezone, is exactly the job that gets forgotten.
When one calendar in the sweep fails to answer, the easy thing is to treat it as empty. That is how a booking lands on top of something you had already committed to.
Google Calendar or Cal.com, connected with OAuth, nothing to maintain. Every calendar you mark busy is swept and merged, so a personal commitment blocks a customer slot without you thinking about it — and the sweep reads times only, never what the event was.

Click a day, drag a range, the calendar closes.
The connection asks for calendar.events and calendar.readonly, deliberately not the full calendar scope. The app can read your free time and create the appointment. It cannot delete your calendars.
OAuth sign-in, nothing to paste.

Alongside the same booking gates, Cal.com supports a pending to accepted step, so an appointment can wait for your yes, and lets you record a no-show against the booking.
Connected with an API key.

A blocked range appears in Google as an all-day event titled “Closed — {your business}”. Deleting that mirrored event does not reopen the day, because the closure itself is held here.
Closures are checked in three independent places, one immediately before the write.

Some of these are permissions we did not ask for. Others are things we decided an agent should not be able to do to a business calendar.
The Google scopes stop at events and read access. Full calendar access was available and we did not take it.
A partial read raises rather than quietly returning a cheerful, empty diary. Nothing is offered on evidence that did not arrive.
The mirrored all-day event is a copy for your benefit. Deleting it in Google leaves the closure standing in OpusDone.
The editor refuses. An empty week is almost always a mistake, and an agent should not be left guessing what open means.
Every diary runs on the business time zone. A genuinely distributed team, working in two countries, is not something we are willing to sell yet.
Edits to hours and closures reach your assistant in about 15 seconds, and the hours editor refuses to save an empty week. A disconnected or expired calendar promises nothing: every booking call returns an offline result and files a human escalation. Free to build and test, no card; 14 days from going live. See the pricing page for today’s plans.
Request access