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.

Screenshot: 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).

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

Screenshot: Condition property dropdown showing available properties

Condition Properties

The Visual Builder supports 12 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)9, 14, 17

Boolean Properties

PropertyDescriptionValues
Is weekdayWhether the event falls on Monday-Fridaytrue / false
Is all-dayWhether the event is an all-day eventtrue / false

Special Properties

PropertyTypeValues
Day of weekDay pickerSunday (0) through Saturday (6)
VisibilityEnumdefault, public, private
Show asEnumfree, busy

Operators Reference

Different property types have different operators available:

Screenshot: 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:

Screenshot: 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 these properties on the synced copy:

FieldDescriptionValues
TitleReplace the event titleAny text (max 500 characters)
DescriptionReplace the event descriptionAny text (max 5,000 characters)
VisibilityChange event visibilitydefault, public, private
Show asChange free/busy statusfree, busy
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.

Next Steps