Skip to main content

Cross-calendar blocking events

BusyCal supports creating time-blocking events across multiple calendars to help manage your availability seamlessly. Blocking is available in two complementary forms:

  • Manual blocking — On any individual event, choose Block on calendar from the Ctrl+click menu to mirror that one event's busy time onto another calendar of your choice.
  • Automatic blocking with rules — Configure up to three rules per calendar so that any new or edited event matching your working schedule (or a custom day/time window) is automatically mirrored onto another calendar — even one belonging to a different account.

Need to ensure your personal commitments don’t clash with work meetings? For example, if you have a family gathering on your personal calendar, you can block that time on your work calendar, indicating to your colleagues that you’re busy without sharing personal details.

BusyCal ensures that time-blocked events stay in sync with the original event. Whenever you update the date, title, or details of the original event, these changes are automatically propagated to all associated blocking events. This works seamlessly across any calendar or account, ensuring that your availability is consistently managed and accurately reflected.

Block on Another Calendar

To block time on another calendar based on an existing event:

  1. Select and Ctrl+click on any event.
  2. Select a calendar from the Block on calendar sub-menu.
  3. Choose how you want the event to appear:
  • Show as busy: This option will strip the original event's details (title, notes, location etc) and will simply state [Busy] as the title on the time-blocking event.
  • Include details: Alternatively, you can choose to copy the title and notes to the blocking event.
tip

When you select Show as Busy, the event in question is duplicated and stripped of all information. When using this feature on a shared calendar, rest assured the time-blocking event contains no information at all other than the date & time. No part of the notes, tags, location details or any other information is copied.

important

Blocking events are automatically updated with changes from the original event on the Mac where they were created. Manual changes to these events should be avoided, as they will be overwritten the next time the original event is updated.

Automatic Time Blocking with Rules

Available in BusyCal v2026.2.3 and later.

In addition to blocking events on demand, BusyCal can also create time-blocking events automatically as soon as you add or move an event onto a configured calendar — even when the destination calendar lives on a completely different account. This is ideal for keeping a personal calendar from quietly leaking into a shared work calendar (or vice-versa) without having to remember to block each event by hand.

Each calendar can be configured with up to three independent automation rules, allowing a single source calendar (for example, a Family calendar holding doctor appointments and school pickups) to mirror its busy time onto multiple destinations — say, your Work calendar so colleagues never double-book you, and a Shared Household calendar so your partner can see you're unavailable — each with its own criteria.

Opening the Automation Editor

To configure rules for a calendar:

  1. In the sidebar, Ctrl+click on the calendar you want to mirror events from and choose Get Info.
Edit Calendar
  1. Switch to the Automation tab at the top of the calendar info dialog.
  2. Click Add New Rule to create a new rule, or edit any existing rule already listed.

Configuring a Rule

Each rule is presented as a self-contained card with the following options:

  • Automatically block on: Toggles the rule on or off. A disabled rule is preserved in the editor (so its configuration is not lost) but will not create any new blocking events.
  • Destination calendar: The calendar that should receive the automatically created blocking event. Only writable, event-capable calendars are listed. The source calendar itself is excluded — automation rules are always cross-calendar.
  • Blocking style: The same two styles available for manual blocking apply here:
    • Show as Busy & Remove All Details — the destination receives a stripped event titled [Busy], with no notes, location, URL, or other details copied across. Recommended for shared calendars where privacy matters.
    • Include Details — the destination receives a copy of the original event title, notes, and location, useful when you want full context to remain visible on both calendars.
New Automation Rule

Choosing When the Rule Applies

Each rule decides which events qualify based on a simple schedule constraint:

  • Use working schedule (default) — The rule follows the app-wide working days and working hours configured under BusyCal > Settings > General (the Day starts at, Day ends at, and Work week options). The weekday pills and time range below the toggle show the live schedule and update automatically if you change your working hours later.
  • Custom days and times — Turn off Use working schedule to pick a custom weekday set and time window for this individual rule. The weekday pills become clickable and the Between times become editable. This is useful when, for example, you want a rule that only fires on weekends, or only for late-evening events.

The time window is treated as a closed-open interval: an event that starts at exactly the end time of the window does not qualify. For instance, with a window of Between 8:00 AM and 7:00 PM, an event starting at 6:59 PM matches but one starting at 7:00 PM does not.

tip

If you change the app-wide working hours later, every rule that has Use working schedule enabled will automatically pick up the new schedule the next time an event is added or edited — there is no need to revisit the rules.

Note that existing events on the source calendar are not retroactively re-evaluated when the schedule changes. Blocking events are only created or refreshed when the original event itself is updated. If you want a previously created event to (re-)trigger a rule under the new schedule, simply open and save it again.

How and When a Blocking Event Is Created

The decision to create a blocking event is made whenever BusyCal reconciles automatic time blocking after an event is added, pasted, moved, or edited so that it matches the rule. Specifically, an event will trigger a rule when all of the following are true:

  • The item is a calendar event — tasks, journals, all-day banners are never mirrored.
  • The event is timed (not all-day).
  • The event was not marked Free — events with a busy status of Free are skipped by default.
  • The event's start time falls on one of the rule's selected weekdays and inside the rule's time window.
  • The destination calendar still resolves to a writable, enabled calendar.

When more than one rule on the same source calendar matches, BusyCal creates one blocking event per distinct destination calendar — duplicate destinations are de-duplicated automatically.

important

Once a blocking event has been created by a rule, it stays. If you later move the original event outside the working schedule window (or into a day the rule does not cover), the existing blocking event is not automatically removed. The rule's job is to make sure the blocker exists when the event first qualifies; from that point on the blocker is treated like any other time-blocking event and stays in lockstep with the original's date, time, and details.

If you no longer need a particular blocker, you can delete it manually at any time, or use the manual Block on calendar menu on the source event to toggle it off — the same way you would unblock a manually created blocker.

Works with externally created events too

Automatic rules don't only fire when you create events through BusyCal's own UI. They also evaluate events that are added or modified on this Mac through:

  • The BusyCal Claude Desktop Extension — when Claude creates, moves, or updates an event on the source calendar, any matching rule will create the corresponding blocker on the destination calendar automatically.
  • AppleScript — events created or updated via BusyCal's scripting API trigger the same rule evaluation as a manual edit, so scripted workflows benefit from automatic blocking without any additional code.

In both cases the rule contract is identical: the event must be timed and must fall within the rule's day/time window. Rules now sync between all your devices (see below), and the device where the change originates evaluates the rule and creates the blocker.

Manual and Automatic Blocking Work Together

Automatic rules are purely additive — they never interfere with manually created blocking events. You can still:

  • Use Ctrl+click > Block on calendar on any individual event to add an extra blocker on a different calendar that no rule covers.
  • Manually delete an automatically created blocker if you want a one-off exception for that event.
  • Use a mix of both: for example, let a rule mirror your weekday meetings to a Work calendar automatically, while occasionally blocking weekend personal events to Work by hand.

Spotting Calendars That Have Rules

Once a calendar has at least one automation rule configured, BusyCal displays a small calendar-with-clock badge next to that calendar's name in the sidebar. This makes it easy to see at a glance which of your calendars are participating in automatic time blocking and which are not. Calendars with no rules show no indicator.

Edit Calendar

Limitations and Notes

  • A maximum of three rules can be configured per source calendar. The Add New Rule button becomes disabled once three rules are present, or when no eligible writable calendars are available as a destination.
  • All-day events are intentionally excluded from automatic rules, since the goal of time blocking is to reserve specific working hours rather than entire days. All-day events can still be blocked manually using the menu approach described above.
  • If a rule's destination calendar later becomes unavailable (for example, the account is disabled or the calendar is deleted), the rule is preserved but greyed out in the editor with a small "Destination calendar unavailable" warning. The rule will resume working as soon as the destination is reachable again, or you can delete it.
Rules sync across your devices

Automatic time-blocking rules sync via iCloud across every Mac and iPhone signed in to the same Apple ID, so you can configure a rule once on one Mac and trust the same rule appears on your other devices automatically — no per-device setup required. Editing or deleting a rule on any Mac propagates the change everywhere.

A couple of practical details worth knowing:

  1. Rule evaluation always happens on the device that originates the event change. Whichever device you create, paste, move, or edit an event on is the one that decides — using its synced copy of the rule — whether to create the corresponding blocker. The blocker then syncs to your other devices like any normal event. Events that arrive on a device purely through sync (i.e. were added or edited elsewhere) are not retroactively re-evaluated, which is what keeps multiple devices from racing to create duplicate blockers for the same edit.
  2. BusyCal on iPhone doesn't currently expose a UI for managing rules, but any rule you configure on a Mac syncs down to your iPhone automatically and is honored when you add or edit events from there. The resulting blocker events appear on every device exactly like any other event. In short: manage rules from any of your Macs and the same automation behavior follows your data everywhere.

Hiding Blocking Events from View

When both the original and blocking calendars are visible in BusyCal, you'll see two event boxes for the same time slot. To declutter the view, enable View > Combine Identical Events. BusyCal treats the original event and its blocking copy as identical (same title, same time, different calendars) and displays only the most appropriate one — typically the original — while the blocker stays hidden in the background.

The blocking event still exists on the other calendar and remains visible to anyone else who shares that calendar, so your availability is preserved. You can switch to the hidden copy at any time through the calendar picker at the bottom of the Info Panel.

For more details on how combining works and which copy is shown, see Combine Identical Events.

Unblocking an Event

Unblocking is performed in the same manner by selecting the original event, then Ctrl+click > "Block on calendar" and select the same calendar. Alternatively, you can select a time-blocking event and press the delete key.

Travel Time in Blocking Events

If the original event has travel time set, BusyCal can extend the blocking event's start time so the travel period also appears as busy on the other calendar. This is useful when you want colleagues to see that you're unavailable during your commute, not just during the meeting itself.

Time Blocking Event with Travel Time Included

You can control this under BusyCal > Settings > Advanced > Other, using the Travel time in blocking events popup:

OptionBehavior
Match original event timesBlocking events use the same start and end as the original. Travel time is not reflected in the blocked time on the other calendar.
Include travel time in allEvery blocking event starts earlier by the original event's travel duration, so the travel period is also shown as busy. This is the default.
Include travel time in "Show as Busy" onlyOnly blocking events created with the Show as Busy option start earlier. Blocking events that include full details keep the original times.
note

Changing this setting applies the next time BusyCal updates a blocking event. You can trigger an immediate update by making any edit to the original event (or by removing and re-creating the blocker).

Time-blocking events help manage availability across calendars, but if you choose Show as Busy, you may later forget where the event originated. To prevent this, BusyCal automatically leaves a small note in place of the original:

Time-blocking event created by BusyCal

If you'd prefer not to include this note, you can disable it using the following Terminal command:

For Direct Download and App Store Users:

defaults write com.busymac.busycal3 suppressTimeBlockingNoteFooter -bool true

For Setapp Users:

defaults write com.busymac.busycal-setapp suppressTimeBlockingNoteFooter -bool true

After running the command, quit and restart BusyCal for the changes to take effect.