Creating Sync Rules
A sync rule is the core building block of CalendarPipe. It connects a source calendar to a target calendar through a gate function that filters and transforms events as they flow between the two.
How Sync Rules Work
When a sync rule is active, CalendarPipe periodically reads events from the source calendar and passes each one through the gate function. Events that pass the gate are synced to the target calendar. Events that are blocked by the gate are skipped.
Source Calendar --> Gate Function --> Target Calendar
(filter/transform)
Creating a Rule
1. Navigate to Sync Rules
Go to Sync Rules in the CalendarPipe sidebar and click Create Rule.

2. Select source and target calendars
Choose which calendar to read events from (source) and which calendar to write events to (target). Both calendars must already be connected to CalendarPipe.

Choose a descriptive name that makes the rule's purpose clear at a glance:
- "Work to Personal (filtered)"
- "Team Calendar to My Calendar (free)"
- "Sports Schedule to Personal"
3. Choose a delivery mode
CalendarPipe supports two delivery modes that control how synced events reach the target calendar:

Direct (Default)
In Direct mode, CalendarPipe writes synced events directly to the target calendar using the calendar provider's API (Google, Microsoft, or Apple). Events appear in the target calendar as regular calendar entries.
- Available on all plans
- Works with Google, Microsoft, and Apple target calendars
- Events are created, updated, and deleted automatically
Invitation
In Invitation mode, CalendarPipe sends synced events as email invitations to a specified email address. The recipient receives calendar invitations that they can accept or decline.
- Pro plan only
- Required for ICS feed sources (automatically configured)
- Events arrive as standard calendar invitations (iTIP/iMIP)
- Useful when you want the recipient to explicitly accept events
When you select an ICS feed as the source calendar, the delivery mode is automatically set to Invitation and cannot be changed. This is because ICS feeds are read-only, and invitation delivery is the only way to route events from an ICS source to a target calendar.
4. Add a gate function
Every sync rule needs a gate function. Choose from:
- Templates -- Pre-built gate functions for common use cases
- Visual Builder -- Build rules with a point-and-click interface
- Code Editor -- Write custom TypeScript gate functions
- AI Generator -- Describe what you want in plain English (Pro only)
For your first rule, start with the Copy All Events template, which syncs everything without modification. You can customize the gate function later.
To learn more about gate functions, see the Gate Functions overview.
Managing Rules
Once created, you can manage your sync rules from the Sync Rules page:
- Enable/Disable -- Toggle a rule on or off without deleting it
- Edit -- Change the gate function, delivery mode, or rule name
- Delete -- Permanently remove the rule and stop syncing
Sync Intervals
CalendarPipe checks for changes at regular intervals:
| Plan | Sync Interval |
|---|---|
| Free | Every 15 minutes |
| Pro | Every 5 minutes |
When changes are detected in the source calendar (new events, updates, or deletions), CalendarPipe applies the gate function and updates the target calendar accordingly.
Sync Window
CalendarPipe syncs a rolling window of future events from each source calendar. Events further in the future than the window simply have not been fetched yet — they are picked up automatically as time moves forward.
| Coverage | Days ahead of today |
|---|---|
| Minimum | 7 days |
| Maximum | 21 days |
The window refreshes on its own, in the background. There is nothing to configure or trigger manually.
Why a rolling window?
Fetching a bounded window keeps incremental syncs fast and keeps recurring events (which would otherwise expand into hundreds of future instances) manageable. Events you create, update, or delete inside the current window sync on the next interval; events beyond it start syncing as the window advances toward them.
If you add an event three months out, it will not sync immediately. CalendarPipe will pick it up once the rolling window reaches it — this is by design, not a bug.
Limits
| Plan | Max Sync Rules |
|---|---|
| Free | 1 |
| Pro | Unlimited |