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 (all plans) -- CalendarPipe writes events directly into the target calendar via the provider's API.
- Invitation (Pro) -- CalendarPipe sends events as standard email invitations (
.ics) to a chosen address. Useful when the target calendar can't be connected via OAuth (e.g. a locked-down work calendar) or when you're syncing into someone else's inbox.
Both modes work with any source -- including ICS feeds, which can be synced into a connected Google/Microsoft/Apple/hosted target via Direct delivery, or routed to an email address via Invitation delivery.
See Delivery Modes for a full comparison and guidance on which mode to pick.
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 |