Skip to main content

Prefix Event Titles

What it does: Prepends a text prefix (e.g. [Synced]) to every event title before writing it to the target calendar.

Use case: When merging multiple calendars into one view, prefixes help you quickly identify which calendar each event came from.

In the visual builder, set Title to Set to... and type {title} with your label — e.g. [Synced] {title} or {title} (Work). No code editor switch needed.

For more control (conditionals, time-of-day prefixes), use a gate function:

function rule(event: RuleEvent): RuleResult {
return { pass: true, transform: { title: `[Synced] ${event.title}` } };
}

How It Works​

The transform.title field on the RuleResult lets you rewrite the event's title. In the visual builder, {title} stands in for the original; in code, concatenate with event.title so the result still contains the real meeting name alongside the prefix.

Customization​

Use a different prefix:

function rule(event: RuleEvent): RuleResult {
return { pass: true, transform: { title: `[Work] ${event.title}` } };
}

Add an emoji prefix:

function rule(event: RuleEvent): RuleResult {
return { pass: true, transform: { title: `🗓 ${event.title}` } };
}

Conditionally prefix only recurring events:

function rule(event: RuleEvent): RuleResult {
if (event.recurringEventId) {
return { pass: true, transform: { title: `[Recurring] ${event.title}` } };
}
return { pass: true };
}

Prefix based on time of day:

function rule(event: RuleEvent): RuleResult {
const prefix = event.hour < 12 ? '[AM]' : '[PM]';
return { pass: true, transform: { title: `${prefix} ${event.title}` } };
}

hour is evaluated in UTC — see the property reference for how to shift the boundary to your timezone.