Skip to content

Calendar Trigger

Overview

The Calendar Trigger starts a workflow from your team’s calendars. Pick what it waits for:

Option Starts the workflow
A meeting is coming up A set time before a meeting starts — e.g. 1 day, or 2 hours.
A meeting has ended When a meeting ends, or a set time after.
A meeting is booked When a new meeting appears on a calendar.
A meeting is moved When a meeting’s start time changes.
A meeting is canceled When an upcoming meeting is canceled.

It works the same whether the meeting was made in BaseCloud, by a workflow, or directly in Outlook or Google Calendar.

When to use this trigger:

  • Text customers a reminder the day before, to cut no-shows.
  • Send a thank-you or a review request an hour after a meeting ends.
  • Tell the rep when a customer declines or cancels.
  • Send the new time when a meeting is moved.
flowchart LR
    A[Meeting tomorrow] --> B[Calendar Trigger: coming up, 1 day]
    B --> C{client_id}
    C -->|set| D[SMS reminder with start_label and meeting_link]

Configuration

Builder fields

The Field column is the label as it appears in the task builder; Key is the name the value is stored under and referenced by.

Field Key Type Default Notes
Start this workflow when trigger_event select starting_soon Options: A meeting is coming up · A meeting has ended · A meeting is booked · A meeting is moved · A meeting is canceled
How long before / after offset_value number 1 Only shown when trigger_event is starting_soon, ended
Unit offset_unit select days Options: Minutes · Hours · Days. Only shown when trigger_event is starting_soon, ended
Whose calendars user_ids select –
Only meetings linked to a client client_required checkbox 0
Only meetings whose title contains (optional) title_contains text –
Also meetings booked by workflows include_automation checkbox 0 Only shown when trigger_event is created

How it checks

The trigger checks every minute and picks up what became due since its last check. Each meeting starts the workflow once per trigger:

  • A meeting several of your people attend is on each of their calendars, but it only starts the workflow once.
  • A meeting that is moved gets a new reminder for its new time.
  • A meeting is coming up fires when the lead time is reached. A meeting booked closer than the lead time (booked this afternoon, with a “1 day before” reminder) does not get that reminder — use A meeting is booked for confirmations.
  • Each check looks up to 30 seconds behind the clock, so a change saved at the moment of a check is not missed.
  • A missed minute is caught up on the next check. A trigger switched off and on again catches up at most the last hour, never more; a new trigger starts from the moment it is switched on.

Canceled repeating meetings

  • One meeting of a series (just next Tuesday's session) starts the workflow for that meeting.
  • The whole series starts it once, not once per meeting.
  • “This and all following” starts it once, for the first meeting removed, and says how many went and which was the last.
  • A whole series already under way starts it once. Its time is the next meeting that is no longer happening, and it says how many went and which was the last.
  • Changing a series’ pattern (weekly to every two weeks, say) does not start it. BaseCloud replaces the old meetings with new ones, and that is not a cancellation.

What is left out

  • All-day entries are never reminded about.
  • Meetings the calendar’s owner declined.
  • A meeting is booked ignores meetings booked by workflows, unless Also meetings booked by workflows is on — so a workflow that books meetings cannot keep starting itself. The other options do include them: a meeting a workflow booked still gets its reminder.
  • A meeting is booked also ignores meetings copied in when someone first connects their calendar (more than 15 new meetings on one person’s calendar in a minute counts as that), past meetings, and meetings booked before the trigger was switched on. It fires a minute or two after the booking.
  • A meeting is canceled waits five minutes before it counts, and does not fire when only one person’s copy goes (for example, a guest declines) while the meeting carries on.
  • A meeting is moved looks at the start time only. Changing just the end time does not count.
  • A meeting is canceled only covers upcoming meetings.

Output Fields

Field Description
trigger_event, trigger_label What happened, e.g. starting_soon / “Meeting starting soon”.
event_id The meeting’s ID — use it in a Calendar task to change or cancel it.
title, description, location The meeting details.
start, end Exact times (ISO, UTC); the date for all-day meetings, with end the last day.
start_local, end_local 2026-10-05 14:00 in the account’s time zone. All-day meetings give the date only.
start_label, end_label Readable, e.g. Mon, Oct 5, 2:00 PM.
all_day yes / no.
time_zone The account’s time zone (General Settings).
owner_user_id Whose calendar the meeting is on.
organizer_name, organizer_email Who organized it.
client_id, client_name The linked client, when there is one.
meeting_link, web_link The Teams / Meet link, and the link to open the meeting.
attendee_emails, attendee_names The guests (not the organizer), comma-separated.
attendee_count, attendees How many guests, and the list with each guest’s answer so far.
session_id A stable key per meeting — use it as an AI memory Session Key.
old_start, old_start_label Moved only: the previous time.
moved_count Moved only: how many meetings of a repeating series moved together (1 for a single meeting).
part_of_series Canceled and moved: yes when the meeting is part of a repeating series.
cancelled_count Canceled only: how many meetings were canceled together (1 unless “this and all following”).
cancelled_from_label Canceled only: the first meeting removed, when more than one was.
cancelled_through_label Canceled only: the last meeting removed, when more than one was.

Testing

Create a test record from the trigger’s records panel without pasting anything, and BaseCloud fills it with your account’s nearest meeting, shaped exactly as a real run would be. If the calendar is empty it uses a sample meeting.