Skip to main content

Visual Builder

The Visual Builder lets you create gate functions by selecting conditions and actions from dropdown menus. No coding required -- just pick event properties, choose operators, set values, and define what happens when conditions match.

Visual Builder interface with condition and action panels

How It Works​

The Visual Builder generates a gate function from three components:

  1. Conditions -- Rules that evaluate event properties (e.g., "Title contains meeting")
  2. Combinator -- How multiple conditions are joined: AND (all must match) or OR (any can match)
  3. Action -- What happens when conditions match: Pass (sync the event) or Block (skip the event), with optional transforms

When CalendarPipe syncs events, each event is checked against your conditions. If the conditions match, the action is applied. If the conditions don't match, the opposite action is applied (i.e., if the action is "Block", non-matching events are passed through).

Conditions are optional. A rule with no conditions matches every event, so the action (and any transform) applies to all of them — useful when you want to transform or block everything without an artificial filter.

Adding Conditions​

Click Add Condition to create a new rule. Each condition has three parts:

  1. Property -- The event property to evaluate
  2. Operator -- How to compare the property value
  3. Value -- The value to compare against

You can also remove every condition. With none left, the builder shows "Applies to every event" and the action runs on all events — add a condition whenever you want to narrow it back down.

Condition property dropdown showing available properties

Condition Properties​

The Visual Builder supports these event properties, organized by type:

Text Properties​

PropertyDescriptionExample Values
TitleEvent title/summary"Team Standup", "Lunch"
DescriptionEvent description/notes"Weekly sync meeting"
LocationEvent location"Conference Room A", "Zoom"
OrganizerOrganizer's email address"alice@example.com"

Number Properties​

PropertyDescriptionExample Values
Duration (min)Event length in minutes30, 60, 120
Attendee countNumber of attendees1, 5, 20
HourHour of day the event starts (0-23), in UTC9, 14, 17

Boolean Properties​

PropertyDescriptionValues
Is weekdayWhether the event falls on Monday-Friday (in UTC)true / false
Is all-dayWhether the event is an all-day eventtrue / false
note

Time-based properties (Hour, Day of week, Is weekday) are evaluated in UTC, not your local timezone — an info icon next to these properties in the builder is there to remind you. See the property reference for details and examples. For local clock times, use Time of day below.

Time of Day​

Time of day matches events that overlap a daily window — a start time, an end time, and a time zone. It's the right choice for rules like "anything after 16:00": a meeting from 14:00 to 16:30 overlaps 16:00 – (empty), even though it starts earlier.

OperatorMatches when
overlapsAny part of the event falls inside the window
does not overlapThe event sits entirely outside the window
  • Leave the start empty to begin at midnight, or the end empty to run to the end of the day.
  • An end earlier than the start wraps past midnight — 22:00 – 06:00 covers the night.
  • The time zone defaults to your browser's and follows daylight saving time.
  • An event that ends exactly when the window opens does not overlap it.
  • All-day events always overlap. Add Is all-day is false to leave them out.

Special Properties​

PropertyTypeValues
Day of weekDay pickerSunday (0) through Saturday (6)
Event statusEnumConfirmed, Tentative, Cancelled
VisibilityEnumdefault, public, private
Show asEnumfree, busy
My RSVPEnumAccepted, Declined, Tentative, Needs action, Organizer

"Event status" is the event's own lifecycle, set by the organizer for everyone — use it (for example, Event status not equals Cancelled) to keep cancelled events out. "My RSVP" is your response to the event — use it (for example, My RSVP not equals Declined) to keep invitations you haven't accepted off your synced calendar.

Operators Reference​

Different property types have different operators available:

Operator dropdown for a text property

Text Operators​

OperatorDescriptionExample
containsValue appears anywhere in the textTitle contains "meeting"
not containsValue does not appear in the textTitle not contains "personal"
equalsExact matchLocation equals "Remote"
not equalsDoes not exactly matchOrganizer not equals "bot@example.com"
starts withText begins with valueTitle starts with "[PROJ]"
ends withText ends with valueTitle ends with "(optional)"
info

All text matching is case-insensitive. "Meeting", "meeting", and "MEETING" are all equivalent.

Number Operators​

OperatorDescriptionExample
equalsEqual to valueDuration equals 30
not equalsNot equal to valueAttendee count not equals 1
>Greater thanHour > 17
<Less thanDuration < 15
>=Greater than or equal toAttendee count >= 5
<=Less than or equal toHour <= 9

Boolean Operators​

OperatorDescriptionExample
is trueProperty is trueIs weekday is true
is falseProperty is falseIs all-day is false

Enum Operators​

OperatorDescriptionExample
equalsMatches the selected valueShow as equals "free"
not equalsDoes not match the selected valueVisibility not equals "private"

Combinators​

When you have multiple conditions, the combinator determines how they're evaluated:

  • AND (default) -- All conditions must match for the action to apply
  • OR -- Any condition matching triggers the action

For example, with two conditions "Title contains meeting" AND "Is weekday is true":

  • A weekday event titled "Team Meeting" -- both conditions match, action applies
  • A weekend event titled "Team Meeting" -- only one condition matches, action does NOT apply (with AND)
  • A weekday event titled "Lunch" -- only one condition matches, action does NOT apply (with AND)

With OR, the action would apply if either condition matches.

Actions​

The action defines what happens to events that match your conditions:

Action configuration panel with Pass/Block toggle and transform options

Pass or Block​

ActionWhen conditions matchWhen conditions don't match
PassEvent is syncedEvent is blocked
BlockEvent is blockedEvent is synced

Optional Transform​

When passing events, you can optionally transform them by overriding properties on the synced copy. Each field exposes a mode selector so you can choose between leaving the source value untouched, clearing it, or replacing it with a literal value:

FieldModesNotes
TitleKeep original / Set to...Replaces the event title (max 500 characters); {title} inserts the original
DescriptionKeep original / Clear / Set to...Replaces or empties the event description (max 5,000 characters)
LocationKeep original / Clear / Set to...Replaces or empties the event location
VisibilityDefault / Public / Private"Default" leaves the source visibility untouched
Show asDefault / Free / Busy"Default" leaves the source free/busy status untouched
Event colourRule default / a colourOverrides the rule's colour for matching events. Google targets only.
Pre-event bufferMinutes (0–60)Starts the synced copy earlier so meetings aren't back-to-back. Ignored for all-day events.
Post-event bufferMinutes (0–60)Ends the synced copy later. Ignored for all-day events.

Mode reference

  • Keep original — the source value passes through unchanged. This is the default for every field.
  • Clear — the destination field is written as empty, removing whatever the source had set. Available for Description and Location.
  • Set to... — reveals a text input; the value you type replaces the source on the synced copy. For Title, {title} stands in for the original so you can append or prefix without retyping every event name.
tip

Transforms only apply to the synced copy on the target calendar. The original event on the source calendar is never modified.

Step-by-Step Examples​

Example 1: Block Weekend Events​

Block events that fall on weekends, only syncing weekday events.

  1. Click Add Condition
  2. Select property: Is weekday
  3. Select operator: is false
  4. Set action to: Block
  5. Save

Result: Events on Saturday and Sunday are blocked. Weekday events sync normally.

Example 2: Redact 1-on-1 Meetings​

Pass all events, but replace the title of small meetings that look like 1:1s.

  1. Click Add Condition
  2. Select property: Attendee count, operator: <=, value: 2
  3. Click Add Condition again
  4. Select property: Title, operator: contains, value: 1:1
  5. Set combinator to: AND
  6. Set action to: Pass
  7. Enable transform, set title to: Meeting
  8. Save

Result: Events with 2 or fewer attendees AND "1:1" in the title are synced with the title replaced by "Meeting". All other events sync unchanged.

Example 3: Only Sync Long Meetings​

Pass events that are 60 minutes or longer, block everything else.

  1. Click Add Condition
  2. Select property: Duration (min), operator: >=, value: 60
  3. Set action to: Pass
  4. Save

Result: Only events lasting 1 hour or more are synced. Short events (under 60 minutes) are blocked.