El widget web y Telegram ya están activos. WhatsApp es lo siguiente.
OpusDone
Iniciar sesiónSolicitar acceso
Calendar integrations

Connect your calendar once, then close a day with one click.

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.

  • OAuth, no API key for Google
  • Closures mirrored into Google
  • Partial reads raise, never assume free

Reviewed

A calendar with appointments booked in
What you can connect

Which calendars does OpusDone connect to?

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.

Google Calendar

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.

Cal.com

Connect with an API key. Bookings can wait pending until you accept them, and no-shows are recorded against the appointment.

Before you connect

The diary is never as tidy as the integration assumes.

01

Your time is spread over several calendars

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.

02

Closing a week should not mean creating events

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.

03

A half-read calendar looks completely free

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.

Setup

How do you connect a calendar to OpusDone?

  1. 01

    Pick your provider

    Google Calendar or Cal.com. One calendar per business is written to, so there is nothing to route or split.
  2. 02

    Google: sign in with OAuth

    No API key to copy anywhere. You approve the connection in Google and come back to the dashboard.
  3. 03

    Cal.com: paste an API key

    One field, one key. Cal.com then brings its own extras, including a pending to accepted confirmation step and recorded no-shows.
  4. 04

    Mark which calendars count as busy

    Every calendar you tick is swept for free and busy time and merged into one picture, so a personal commitment blocks a business slot.
  5. 05

    Set your working hours

    The hours editor refuses to save an empty week, because an agent with no hours is an agent that can offer anything.
  6. 06

    Block your closures

    Click one day, or drag across a range, in the month calendar. Holidays, a fair, the week you are away.
  7. 07

    Try it in the sandbox

    The sandbox runs your real booking tools and stops immediately before the write, unless you deliberately tick “book for real”.

What does the busy sweep actually see?

Times only. The endpoint your assistant reads returns free and busy blocks, never event titles, so the calendar that tells it you are unavailable at 11:00 never tells it why.

A calendar with appointments booked in

Click a day, drag a range, the calendar closes.

What each side gives you

Two providers, one behaviour.

Google Calendar, on narrow scopes

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.

Appointments in the OpusDone bookings screen

Cal.com, with confirmation and no-shows

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 customer conversation in the OpusDone inbox

Closures live in OpusDone, mirrored into Google

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.

An OpusDone activity report
Guardrails

What will OpusDone never do to your calendar?

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.

It cannot delete your calendars

The Google scopes stop at events and read access. Full calendar access was available and we did not take it.

It will not treat an unreadable calendar as free

A partial read raises rather than quietly returning a cheerful, empty diary. Nothing is offered on evidence that did not arrive.

It will not reopen a day because Google says so

The mirrored all-day event is a copy for your benefit. Deleting it in Google leaves the closure standing in OpusDone.

It will not save a week with no hours in it

The editor refuses. An empty week is almost always a mistake, and an agent should not be left guessing what open means.

It will not route to individual staff diaries

One calendar per business is written to. If your team keeps separate diaries, mark them as busy calendars so their time is respected in the sweep.

Calendar integration questions, answered

What exactly does OpusDone get access to in Google?

Two scopes: calendar.events, to read and create appointments, and calendar.readonly. The full calendar scope is deliberately not requested, so the app has no way to delete a calendar. You connect with OAuth, so there is no API key to store.

What does Cal.com add over Google Calendar?

Two things. A booking can sit as pending until it is accepted, which suits work you want to approve one by one, and you can record a no-show against a booking after the fact. Everything else behaves the same on both providers.

What if my calendar disconnects or the token expires?

The booking tools stay registered, but every call returns an offline result and files a human escalation. Your assistant does not fall back to guessing. A background job also reconciles bookings against the provider every 15 minutes.

Will my personal appointments block business slots?

They will, if you mark that calendar as busy. The busy sweep runs across every calendar you ticked and merges the result into one view of free time. It returns times only, never event titles.

How do I close the shop for a week?

Drag across the range in the dashboard month calendar. It is mirrored into Google as an all-day event titled “Closed — {your business}” so your team can see it, and the agent picks the change up in about 15 seconds.

Can I try the connection without real events appearing?

Yes. The sandbox runs your real instructions and your real booking tools and stops immediately before the write, unless you tick “book for real”. It creates no leads, alerts, analytics or escalations, and no inbound channel can reach it.

Connect your calendar, test it free, then go live.

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. Starter €39/mo, Pro €99/mo, 15% off yearly.

Solicitar acceso
Calendar Integrations — Google Calendar, Cal.com | OpusDone