# Calfeed: Full Content

> Calfeed turns a written schedule into a subscribable calendar link. Creators describe a schedule in plain language, or upload a PDF, photo, or spreadsheet; audiences subscribe from Apple, Google, or Outlook calendars. Later edits reach every subscriber. Every calendar is free for its first two weeks; $5 or 1 credit covers the whole schedule.

> Disambiguation: Calfeed.ai is calendar-publishing software. It is not CALFEED animal-feed additives, the calcium supplements of the same name, the Cal AI calorie tracker, or cal.com.

Source: https://calfeed.ai · Spec: https://llmstxt.org

## Audience

Parents organizing kids' activities, trainers publishing multi-week programs, event planners running seasons or run-of-show, community organizers (clubs, PTA, religious groups). Common job: one creator, one schedule, an audience of 10-100 people, no desire to text everyone when the schedule changes.

## Pricing

- Every calendar free for its first two weeks; $5 or 1 credit covers the whole schedule.
- Pay-as-you-go credits: from $5 for 1, down to $2.50/calendar in the 10-pack. 1 credit = 1 new calendar, 1 re-open of an archived calendar, or the whole schedule on a calendar still showing its first two weeks.
- Edit lifecycle: every calendar is editable for 7 days after creation; each credit extends the edit window by another 7 days. Archived calendars become read-only but the calendar link keeps serving.

## Core mechanic

1. Paste a schedule in plain text, or upload a spreadsheet, photo, PDF, or calendar file.
2. Calfeed turns it into a calendar.
3. Audiences subscribe to one stable link from Apple, Google, or Outlook.
4. Edits push automatically. Apple polls ~hourly; Google polls every 12-24h.
5. The link never changes.

## Pages

- Home: https://calfeed.ai/
- Pricing: https://calfeed.ai/pricing
- Free Tools: https://calfeed.ai/tools
- Learn: https://calfeed.ai/learn
- Examples: https://calfeed.ai/examples
- Privacy: https://calfeed.ai/privacy
- Terms: https://calfeed.ai/terms
- Refunds: https://calfeed.ai/refunds

## Comparisons

- https://calfeed.ai/vs-addevent: Calfeed vs AddEvent
- https://calfeed.ai/vs-cozi: Calfeed (publisher) vs Cozi (family all-edit)
- https://calfeed.ai/vs-addcal: Calfeed (multi-event feed, AI text input) vs AddCal (structured single-event forms)
- https://calfeed.ai/vs-calget: Calfeed (consumer publisher) vs CalGet (M365/enterprise)
- https://calfeed.ai/vs-smartcalendars: Calfeed (broadcast publisher) vs SmartCalendars (personal calendar replacement)
- https://calfeed.ai/vs-google-calendar: Calfeed (separate branded calendar, text input) vs Google Calendar public sharing (your own account, hand-entered)
- https://calfeed.ai/vs-teamsnap: Calfeed (publish a schedule as a link) vs TeamSnap (active team management: RSVP, roster, chat)
- https://calfeed.ai/vs-spond: Calfeed (public no-install subscribe link) vs Spond (free team app, device-level sync)
- https://calfeed.ai/vs-teamup: Calfeed (one publishes, many subscribe) vs Teamup (shared multi-editor calendar, granular permissions)
- https://calfeed.ai/vs-groupcal: Calfeed (publish to subscribers) vs GroupCal (group co-edits in a shared app)
- https://calfeed.ai/vs-calendly: Calfeed (broadcast a set schedule) vs Calendly (take bookings/appointments)

## Examples

- [Summer Skills](https://calfeed.ai/c/example/summer-skills): Camps & enrichment programs. Branded weekly camp programming. Custom logo and brand color on the public page.
- [Riverside Youth Hockey](https://calfeed.ai/c/example/hockey-practice): Youth sports. Tue/Thu on-ice, Friday games. Recurring practice schedule for a youth team.
- [Studio B Yoga](https://calfeed.ai/c/example/yoga-classes): Studios & teachers. Vinyasa MWF, Sunday Restorative, monthly workshop. Recurring class schedule.
- [The Hendersons](https://calfeed.ai/c/example/family-activities): Families. Kids' activities and family dinner. One link the babysitter, grandparents, and carpool subscribe to.
- [Avery & Sam: Wedding Weekend](https://calfeed.ai/c/example/wedding-weekends): Weddings & events. Every event for one wedding weekend, from bridal shower to farewell brunch.
- [Roselawn Elementary: Field Trips](https://calfeed.ai/c/example/school-trips): Schools. Field trips by grade. Parents subscribe once; reminders update automatically.
- [Prof. Patel: Office Hours](https://calfeed.ai/c/example/office-hours): Educators. Weekly office hours and exam review sessions. Students subscribe once.
- [Lincoln Park Block Party](https://calfeed.ai/c/example/block-parties): Community organizers. Neighborhood weekend. Subscribe so time changes update on every neighbor's calendar.
- [Station 12 · B Platoon](https://calfeed.ai/c/example/station-12-b-platoon): Fire & EMS. 48/96 platoon rotation: two 24-hour shifts, four days off. The whole household subscribes to one link.
- [Harbor Plant · Day Crew](https://calfeed.ai/c/example/pitman-day-crew): Shift work. Pitman 2-3-2 rotation, 12-hour day shifts. Every on-duty day and every 3-day weekend on the family's phones.
- [DuPont Schedule](https://calfeed.ai/c/example/dupont-schedule): Shift work. DuPont rotation: a 28-day cycle of 12-hour day and night shifts, ending in the 7-day break. Subscribe once and the whole cycle stays current.
- [Pitman 2-2-3 Schedule](https://calfeed.ai/c/example/pitman-2-2-3): Shift work. Pitman 2-2-3 day crew: 12-hour shifts on a 14-day cycle, every other weekend off. One link the household subscribes to.
- [Panama 2-2-3 Schedule](https://calfeed.ai/c/example/panama-2-2-3): Shift work. Panama slow rotation: the 2-2-3 pattern with two weeks of day shifts, then two weeks of nights, on a 28-day cycle.
- [4-on-4-off Schedule](https://calfeed.ai/c/example/4-on-4-off): Shift work. Four 12-hour day shifts, then four days off, repeating every 8 days. The block of days off shows months ahead.
- [Kelly Schedule (Fire)](https://calfeed.ai/c/example/kelly-schedule): Fire & EMS. Kelly firefighter rotation: 24-hour shifts on a 9-day cycle. Three shifts, then four days off. One link for the whole household.

---

# Guides

## Calendar Not Syncing? Find the Real Cause First

URL: https://calfeed.ai/learn/calendar-not-syncing
Published: 2026-08-03

Why a Google, iPhone, or Outlook calendar stops syncing: device sync switched off, a subscribed calendar waiting on its refresh cycle, a shared calendar never accepted, or a dead source link. Fixes for each.

**TL;DR**

- Four different problems share this name. Identify yours before touching settings.
- Device sync off for the account is the common one on phones. Check account sync toggles first.
- A subscribed calendar that lags is usually not broken. Google waits 12 to 24 hours between checks.
- An imported calendar file never updates. Only a subscribed link stays current.

Calendar not syncing is four different problems wearing one name, and the fixes do not overlap. Changing settings before knowing which one you have is how an afternoon disappears.

The one-minute triage: a single calendar missing everywhere points at the source or the sharing, everything stale on one device points at device sync, events that arrive late but do arrive are normal refresh lag, and events that never arrive mean the source is broken or was imported as a file.

## Device sync is off

The common one on phones, and the quickest to check.

On iPhone: Settings, Calendar, Accounts. The account has to be listed, and Calendars enabled for it. Then check the account's calendar list, because iOS happily syncs the account while individual calendars stay unticked.

On Android: Settings, Accounts, pick the account, Account sync, confirm Calendar is on. The Google Calendar app has its own layer: open its Settings, tap each calendar's name, and confirm Sync for the specific calendar. A calendar with that toggle off vanishes from the phone while the web version looks fine.

In Outlook: confirm the account is connected in Settings, and the calendar's checkbox is ticked in the sidebar. A hidden calendar and a broken one look identical.

## The subscribed calendar is just slow

A subscribed calendar updates on the app's schedule, and the app does not ask your opinion. [Apple checks about once an hour, Google every 12 to 24 hours, Outlook every few hours](/learn/ics-refresh-rate-apple-google). A change made this morning reaching the phone tonight is the system working as designed, not a bug. There is no button that forces Google to check early.

If a full day passes with nothing: open the subscription link in a browser. A page of calendar text means the source is fine and the lag is real but normal. An error page means the source moved or regenerated its link, and every subscriber is stale until they re-subscribe with the current one.

## The shared calendar was never fully accepted

Three switches have to be on at once: the invitation accepted, the calendar's checkbox ticked on the web, and its sync toggle on in the phone app. Any one of them off looks exactly like sync being broken. Walk all three before concluding anything.

## The source is the problem

Two failure modes here. The link died: the organizer's tool regenerated it, the account behind it closed, or the page hosting it moved. Re-subscribing with the current link is the only fix, and every subscriber has to do it.

Or there never was a link. A calendar file that arrives by email and gets opened is an import: a snapshot of the events as they were that day, with no connection back to the source. It will never update, and the next email with a corrected file starts the cycle again.

Both are the same disease: the schedule has no stable hosted link. That part is fixable. Put the schedule behind one link that updates in place, [Calfeed](/tools/merge-calendars) hosts exactly that, and subscribers stay current on their app's normal refresh cycle. It will not make Google check faster than 12 to 24 hours, nothing will, but the link stops dying and the email-a-new-file cycle ends.

### Steps

1. **Work out which problem you have**: One calendar missing everywhere = source or sharing problem. Everything stale on one device = device sync. Events arrive late but do arrive = normal refresh lag. Events never arrive = a broken or imported source.
2. **Check device sync for the account**: iPhone: Settings, Calendar, Accounts, confirm the account is on and Calendars is enabled for it. Android: Settings, Accounts, pick the account, Account sync, confirm Calendar is on. In the Google Calendar app, open Settings, tap the calendar's name, and confirm Sync is on for that specific calendar.
3. **Give subscribed calendars time, then re-check the link**: Subscribed calendars update on the app's schedule, not yours: Apple about hourly, Google every 12 to 24 hours, Outlook every few hours. If nothing arrives after a full day, open the subscription link in a browser. An error page means the source moved or regenerated its link, and the subscription needs the new one.
4. **Confirm the calendar was shared, accepted, and visible**: A shared calendar needs its invitation accepted, its checkbox ticked in the sidebar on the web, and its sync toggle on in the phone app. All three. Any one of them off looks exactly like sync being broken.

### FAQ

**Why is my Google Calendar not syncing with my iPhone?**

On the iPhone, check Settings, Calendar, Accounts: the Google account must be listed with Calendars enabled. Then check which calendars are selected, since iOS lets you enable the account but leave individual calendars unticked. If only a subscribed calendar inside that Google account lags, that is Google's refresh cycle, not the phone.

**Why is a calendar I subscribed to not updating?**

Usually it is updating, slowly. Apple checks subscribed calendars about once an hour, Google every 12 to 24 hours, Outlook every few hours, and nothing you do forces an early check. If a full day passes with no update, open the subscription link in a browser: an error page means the link is dead or was regenerated, and re-subscribing with the current link is the fix.

**Why did my Outlook calendar stop syncing?**

Check whether the calendar is a subscription or was imported. Outlook refreshes subscribed calendar links every few hours, but a calendar file that was imported is a one-time snapshot and never changes. Beyond that, confirm the account is connected in Settings and the calendar's checkbox is on: a hidden calendar looks identical to a broken one.

**I added a calendar file someone emailed me and it never updates. Why?**

Opening a calendar file imports a copy of the events as they were that day. There is no connection back to the source, so nothing ever updates. To stay current you need a subscription to a hosted calendar link instead. If the person keeps emailing new files, that is the tell: the schedule has no stable hosted link, and putting it behind one (Calfeed does this) fixes the whole class of problem.

---

## When I Work Schedule on a Phone Calendar

URL: https://calfeed.ai/learn/when-i-work-to-calendar
Published: 2026-08-03

How to get a When I Work schedule onto a phone calendar: copy the Calendar Sync link, subscribe on iPhone or Google, and what to do when the link is missing or you juggle two jobs.

**TL;DR**

- The calendar link lives under Calendar Sync, top right of the My Schedule page on the web app.
- The Android app cannot generate it. Sign in at app.wheniwork.com in a browser instead.
- Subscribe once and published shifts up to a year out stay current on their own.
- Second job, or a partner who needs your shifts? Combine feeds into one link with Calfeed.

When I Work already does the hard part: it publishes a personal calendar link for every schedule. The friction is finding it, and knowing the two places where the obvious path fails.

## Find Calendar Sync

Sign in to When I Work in a browser at app.wheniwork.com and open My Schedule. Calendar Sync sits in the top right of the page.

Two things worth naming plainly. The Android app does not offer Calendar Sync at all, so Android users get the link from a browser, not the app. And whichever link you copy is personal: treat it like a password, since anyone holding it can read the schedule.

## Pick the right schedule

Calendar Sync offers separate links. Your Schedule carries only shifts assigned to you. OpenShifts carries unassigned shifts you are qualified to pick up. Managers may also see links for an entire location. Most people want Your Schedule.

The link carries published shifts up to a year out. A shift a manager has drafted but not published is invisible to it.

## Subscribe on iPhone or Google

On iPhone: open the copied link and confirm when Calendar asks to subscribe. Done.

For Google Calendar: open calendar.google.com in a browser, find Other calendars, choose From URL, and paste the link. The Google Calendar phone app cannot add a calendar by link, so this one step needs a browser, after which the calendar shows up on the phone too.

From then on shifts update on their own. [Apple checks about once an hour, Google every 12 to 24 hours](/learn/ics-refresh-rate-apple-google). A swap that happens an hour before a shift may not reach the phone in time, which is worth knowing before trusting it blindly.

## Two jobs, one calendar

A second job, a class schedule, a partner's shifts: each lives in its own system, and none of them merge on their own. Paste the When I Work link plus any other feed links into [Calfeed](/tools/merge-calendars). It reads every source and republishes one combined link, refreshed hourly, that any calendar app can subscribe to.

That combined link is also the clean way to share shifts at home. A partner subscribes once, without a When I Work login, and sees the schedule stay current.

## When Calendar Sync is locked down

Some employers restrict syncing, and some accounts never see the option. The schedule is still on the screen: take a screenshot and paste it into [Calfeed's schedule converter](/tools/shift-schedule-to-calendar). It turns the image into a subscribable calendar in about a minute.

### Steps

1. **Open Calendar Sync**: Sign in to When I Work in a browser (app.wheniwork.com) and go to My Schedule. Calendar Sync sits in the top right. The Android app does not offer it, and the iPhone app buries it, so the browser is the reliable path.
2. **Copy the link for the right schedule**: Calendar Sync offers more than one link: Your Schedule covers only shifts assigned to you, OpenShifts covers unassigned shifts you could pick up. Most people want Your Schedule. Copy that link.
3. **Subscribe on iPhone or Google**: On iPhone, open the link and confirm the subscription when Calendar asks. For Google Calendar, open calendar.google.com in a browser, find Other calendars, choose From URL, and paste the link: the Google Calendar phone app cannot add a calendar by link, so this step needs a browser.
4. **Combine it with everything else**: Working a second job, or sharing a home calendar? Paste the When I Work link plus any other feed links into Calfeed. It reads every source and republishes one combined link anyone can subscribe to, without a When I Work login.

### FAQ

**How do I get my When I Work schedule into Google Calendar?**

Copy the Your Schedule link from Calendar Sync on the My Schedule page, then add it at calendar.google.com under Other calendars, From URL. The phone app cannot add a calendar by link, so use a browser for that step. After that, shifts show up on their own: Google checks subscribed calendars every 12 to 24 hours.

**Why is there no Calendar Sync option in my When I Work app?**

The Android app does not offer Calendar Sync at all, and some employers restrict which schedules employees can sync. Sign in at app.wheniwork.com in a browser and check the top right of My Schedule. If Calendar Sync still is not there, the account's employer has it limited, and a screenshot of the schedule pasted into Calfeed is the workaround.

**My When I Work calendar stopped updating. What happened?**

Three usual causes: the shift was not published yet (the link only carries published shifts, up to a year out), the calendar app has not checked the link recently (Apple checks about hourly, Google every 12 to 24 hours), or the link changed. Regenerating the Calendar Sync link kills the old one, so every calendar that subscribed to it goes stale until the new link replaces it.

**Can my partner see my When I Work shifts without a login?**

Yes. Paste the Calendar Sync link into Calfeed and share the calendar it publishes. A partner subscribes to that link, or opens the calendar page in a browser, without a When I Work account. Shifts stay current as the schedule changes.

---

## Arbiter Sports Schedule on a Phone Calendar

URL: https://calfeed.ai/learn/arbiter-schedule-to-calendar
Published: 2026-07-30

How to get an Arbiter sports schedule onto a phone: request the calendar feed link by email, subscribe once, and combine several teams into one link with Calfeed.

**TL;DR**

- Schedules are public to view. Getting the calendar feed takes a free ArbiterLive account.
- The feed link arrives by email from messaging@arbitersports.com, not on the schedule page.
- Subscribe once on Apple, Google, or Outlook and games plus time changes update automatically.
- Coaching more than one team? Combine every emailed feed into one link with Calfeed.

Search a school on ArbiterLive and the Arbiter schedule for that team is right there, game by game. Getting that schedule onto a phone takes two extra steps most platforms skip: Arbiter wants a free account first, and it emails the calendar feed link instead of showing it on the page.

## Find the team schedule

[ArbiterLive](https://www.arbiterlive.com) is public. Search for the school, then open the specific team's schedule page. No account needed to view it.

## Sign up, then request the feed by email

Click Follow, the button in the upper right of the schedule page. Before anything else, ArbiterLive asks for an account: email, password, free to create. Viewing schedules is anonymous, but following a team and getting its feed is not.

Signed in and following, use the email-me-my-calendar-feed option. Arbiter sends it in a message from `messaging@arbitersports.com`, with the feed link inside. Copy the link out of that email into a calendar app.

Those are the two clunky steps in an otherwise normal setup, worth naming plainly: a sign-up wall in front of the feed, and a link that lands in an inbox instead of sitting on the page. Follow also sets up email or text alerts when Arbiter changes the schedule. Alerts are a separate feature from the calendar feed: the link from the email is what actually goes into a calendar app.

## Subscribe on iPhone or Android

On iPhone: open the email, tap the link, and confirm the subscription when Calendar asks. On Android: open calendar.google.com on a computer or phone browser, go to Other calendars, tap the plus, choose From URL, and paste the link in.

Either way, games and time changes now show up on their own. [Apple checks about once an hour, Google every 12 to 24 hours](/learn/ics-refresh-rate-apple-google).

## Tracking more than one team

Coaching multiple teams, or a parent with kids on varsity and JV? Each Arbiter feed covers one team, and Arbiter has no built-in way to combine them.

Request the emailed feed for every team, then paste all of them into [Calfeed's merge tool](/tools/merge-calendars). It reads every source and republishes one combined calendar link, up to 10 feeds per calendar, instead of a folder of separate emails to keep straight.

### Steps

1. **Open the team's schedule on ArbiterLive**: ArbiterLive (arbiterlive.com) is public. Search for the school, then open the specific team's schedule page. No account needed to view it.
2. **Sign up, follow the team, request the feed**: Click Follow in the upper right. It asks for a free ArbiterLive account (email and password) before anything else. Once signed in and following, use the email-me-my-calendar-feed option. Arbiter sends the link in a message from messaging@arbitersports.com: the clunky part worth naming plainly, since the link never sits on the page, it lands in an inbox instead.
3. **Subscribe on iPhone or Android**: Open the email, tap the link, and confirm the subscription in Calendar on iPhone. On Android, open calendar.google.com, go to Other calendars, click the plus, choose From URL, and paste the link in. Games and time changes show up on their own after that: Apple checks about once an hour, Google every 12 to 24 hours.
4. **Combine more than one team**: Coaching multiple teams, or tracking a kid on varsity and JV? Each Arbiter feed covers one team only. Request the emailed feed for each team, then combine them into one calendar link with Calfeed instead of juggling separate emails.

### FAQ

**Is the Arbiter calendar feed free to use?**

Yes. The ArbiterLive account it requires is free, and requesting the feed and subscribing costs nothing on Arbiter's side or the calendar app's side. Combining several teams into one calendar with Calfeed is free to build, and the next two weeks of games sync free; $5 or 1 credit covers the full season.

**How often does a subscribed Arbiter schedule update?**

On the calendar app's schedule, not Arbiter's: Apple checks subscribed feeds about once an hour, Google every 12 to 24 hours. A change on Arbiter's side reaches a subscriber whenever their app next checks, not instantly.

**Can I combine several Arbiter team schedules into one calendar?**

Yes. Request the emailed feed link for each team, then paste them into Calfeed. It reads every feed and republishes one combined calendar link, so a parent or coach tracking multiple teams gets a single subscribe link instead of one per team.

---

## EventLink Calendar Feed: Subscribe or Combine Teams

URL: https://calfeed.ai/learn/eventlink-calendar-feed
Published: 2026-07-30

How to find an EventLink calendar feed link and subscribe to it, plus how to combine several EventLink team calendars into one link with Calfeed.

**TL;DR**

- Every EventLink team calendar has its own feed link, right on the calendar page.
- The link carries a private token, so treat it like a password, not something to post publicly.
- Subscribe once in Apple, Google, or Outlook and practices plus games update automatically.
- Tracking more than one team? Combine every feed into one link with Calfeed.

Plenty of club and school programs run their team calendars on EventLink. Unlike Arbiter, the calendar feed link sits right on the calendar page, no email round trip needed. The one thing to know: it is a private link, not a headline URL to post anywhere.

## Find the calendar feed link

Open the team's page in EventLink and go to the calendar view. Copy the calendar feed link from that page.

## Treat the link like a password

The EventLink feed link carries a token in the URL, unique to that team's calendar. That is normal, and it is why it should stay private: paste it into a calendar app, or send it directly to the people who need it, but do not post it on a public page or an open group chat.

## Subscribe on iPhone or Android

On iPhone, tap the link (in an email, a text, or Safari) and confirm [the subscription](/learn/calendar-subscriptions-explained) in Calendar. On Android, open calendar.google.com on a computer or phone browser, go to Other calendars, tap the plus, choose From URL, and paste the link in.

Either way, practices and games start updating on their own after that. [Apple checks about once an hour, Google every 12 to 24 hours](/learn/ics-refresh-rate-apple-google).

## Following more than one team

A coach running a full program, or a parent with kids on different teams, ends up with a separate EventLink link for each one. Paste every feed into [Calfeed's merge tool](/tools/merge-calendars) instead, and it reads all of them into one combined calendar link: up to 10 feeds per calendar. A program with seven team calendars gets one link back instead of seven.

### Steps

1. **Open the team's EventLink calendar**: Go to the team's page in EventLink and open the calendar view.
2. **Copy the calendar feed link**: Copy the calendar feed link from the team calendar page. It is a long URL with a token in it, unique to that team, so keep it out of public posts and group chats that are not private.
3. **Subscribe on iPhone or Android**: On iPhone, tap the link and confirm the subscription in Calendar. On Android, open calendar.google.com, go to Other calendars, tap the plus, choose From URL, and paste the link in. Practices and games start updating on their own after that.
4. **Combine more than one team**: Coaching or following several teams? Copy each team's EventLink feed link and combine them into one calendar link with Calfeed instead of juggling a separate subscription for each one.

### FAQ

**Is the EventLink calendar feed free to use?**

Yes. Copying the feed link and subscribing to it costs nothing on EventLink's side or the calendar app's side. Combining several teams into one calendar with Calfeed is free to build, and the next two weeks sync free; $5 or 1 credit covers the full season.

**How often does an EventLink schedule update once you subscribe?**

On the calendar app's schedule, not EventLink's: Apple checks about once an hour, Google every 12 to 24 hours. A change on EventLink reaches a subscriber whenever their app next checks.

**Can I combine several EventLink team calendars into one?**

Yes. Copy the feed link for each team and paste them into Calfeed. It reads every feed and republishes one combined calendar link, so a coach running a full program, or a parent with kids on different teams, gets one subscribe link instead of one per team.

---

## How to Merge Google Calendars (Two Accounts, or Google and Apple)

URL: https://calfeed.ai/learn/merge-google-and-apple-calendar
Published: 2026-07-30

Merge Google calendars inside one account, pull in a calendar from a second Google account, get Google events into Apple Calendar on iPhone, or combine them all into one link.

**TL;DR**

- Add the Google account in iPhone Settings and Apple Calendar shows Google events next to iCloud events.
- It is per-device: every phone, tablet, or computer needs the same account added.
- The two calendars stay separate underneath. Apple Calendar only displays them together.
- For one calendar that is already combined, merge both feed links into one link with Calfeed.

Google Calendar merges calendars freely inside one account and barely at all across two. Getting Google events onto an iPhone alongside iCloud is a third case again, and it needs no app or export, just one account added in Settings. Here is each of the three, and the one link that covers all of them at once.

## Merge calendars inside one Google account

Google Calendar already combines calendars that live in the same account. In the sidebar, every entry under My calendars and Other calendars checks on or off independently. Check the ones to include and they render together in the day, week, or month grid, each in its own color. No merge step, no export.

## Pull in a calendar from a second Google account

A calendar owned by a different Google account needs permission first. Ask the owner to [share it](/learn/share-calendar-with-group) with the account, or to make it public. Then select the plus next to Other calendars and choose Subscribe to calendar, entering that account's email, or From URL if the calendar is already public.

The phone app does not close this gap. Google Calendar on iPhone and Android lets an account add a second Google account from the profile photo menu, but it switches between accounts rather than showing both on one screen.

## Add the Google account to an iPhone

In Settings, find Calendar (it sits under Apps first on current iPhones, so Settings, Apps, Calendar; older versions show Calendar directly). Select Calendar Accounts, then Add Account, choose Google, and sign in. Turn off Mail and Contacts there if only the calendar matters.

## Check both calendars

Open the Calendar app and tap Calendars at the bottom. Make sure both the iCloud calendar and the newly added Google calendar are checked. Events from both now show up together in the day, week, and month views.

## The limit: per device, not merged

This has to happen again on every device that should see both calendars, a second iPhone, an iPad, a Mac. And even on one device, Apple Calendar keeps the two calendars separate underneath. It displays them together; it does not combine them into one calendar.

## One link instead

For one calendar that is already combined before it reaches a device, paste the Google calendar's feed link and the iCloud calendar's feed link into [Calfeed's merge tool](/tools/merge-calendars). One combined link comes back, refreshed hourly, up to 10 feeds per calendar. Any device subscribes to that single link instead of adding two accounts. It is a read-only merge, not the same as the native Google account sync: edits made after subscribing stay on the merged calendar, not the original Google or iCloud one. Downstream, [Apple checks about once an hour, Google every 12 to 24 hours](/learn/ics-refresh-rate-apple-google).

### Steps

1. **Open Calendar settings on the iPhone**: In Settings, find Calendar: on current iPhones it sits under Apps first, so Settings, Apps, Calendar. Older versions show Calendar directly in Settings.
2. **Add the Google account**: Select Calendar Accounts, then Add Account, choose Google, and sign in. Turn off Mail and Contacts there if only the calendar is wanted.
3. **Check both calendars in the Calendar app**: Open the Calendar app, tap Calendars at the bottom, and make sure both the iCloud calendar and the Google calendar are checked. Events from both show up together in the same views.
4. **Know the limit**: This setup has to repeat on every device that should see both calendars, a second iPhone, an iPad, a Mac. Apple Calendar still keeps the two calendars separate underneath. It only displays them together.
5. **Merge the feeds instead**: For one calendar that is already combined before it reaches a device, paste the Google calendar's feed link and the iCloud calendar's feed link into Calfeed. One combined link comes back, and any device subscribes to that single link instead of adding two accounts.

### FAQ

**How do I merge my Google calendar with iCloud?**

Native iOS does not merge them into one calendar. Add the Google account in Settings and Apple Calendar shows the iCloud calendar and the Google calendar together in the same view: they stay separate calendars underneath, with no combined file or link to hand to someone else.

**How do I merge two Google calendars from different accounts?**

The owner of the second calendar has to share it with the specific account, or make it public, first. Then add it from 'Other calendars' using 'Subscribe to calendar' by email, or 'From URL' if it is public. Without that step, one Google account cannot see a calendar that lives in another account.

**Can two Google calendars from different accounts show up together on my phone?**

The Google Calendar app lets an account sign in to more than one Google account, but it switches between them instead of showing both merged on one screen. A view that includes every calendar from every account in one place needs a separate merged link, like the one Calfeed builds.

**How do I sync Google Calendar with my iPhone?**

Add the Google account under Settings, Calendar Accounts, Add Account. Once it is added, Google events appear in the Apple Calendar app and stay current on their own.

**Does a merged Google and Apple calendar link sync changes back to either calendar?**

No. Once a Google account is added natively in Settings, changes do sync back and forth for that one account, since it is a real account connection. A Calfeed merge works differently: it reads both calendars' feed links and republishes one combined, read-only calendar. Edits made after subscribing to that merged link do not travel back to the original Google or iCloud calendar.

---

## Merge Outlook Calendars Into One View (or One Shareable Link)

URL: https://calfeed.ai/learn/merge-outlook-calendars
Published: 2026-07-30

Merge Outlook calendars into one view with Overlay Mode, bring a Google calendar in alongside them, and merge the feeds into one link that works outside Outlook too.

**TL;DR**

- Outlook overlays every checked calendar into one grid. That is a view, not a merge.
- Turn off Split view, or use Overlay Mode in classic Outlook, to lay calendars over each other.
- The overlay lives on one device and produces nothing to hand off or share.
- For a calendar that stays combined everywhere, merge the feed links into one link with Calfeed.

Outlook can put more than one calendar on screen at once, side by side or stacked into a single layered grid. That combined view lives inside Outlook, though: add a calendar, check its box, and the choice is only between two ways of looking at calendars that stay separate underneath.

## Add every calendar to the list

For a calendar that is not already there, select "Add calendar," then "Subscribe from web," and paste its feed link. A calendar someone shared directly shows up under "Open Shared Calendar" instead, no link needed.

## Combine them into one view

Check the box beside every calendar in the list on the left. In classic Outlook, choose View in Overlay Mode from the calendar tab. In new Outlook and Outlook on the web, look for Split view in the Arrange group and turn it off. Either path lays every checked calendar over the others in one grid, each still color-coded by source.

## The limit: a view, not a merge

This only exists on the device it is set up on, and it resets if a calendar drops off the list. Nothing gets produced to hand to someone else. No file, no link, no way for a family member to see the same combined view without repeating every step themselves.

## Bring a Google calendar into the same view

Outlook can hold a Google calendar in that overlay too, but it arrives by link rather than by account. In Google Calendar, open the calendar's settings, scroll to Integrate calendar, and copy the secret address in iCal format. Back in Outlook, choose Add calendar, Subscribe from web, and paste it. It now sits in the calendar list like any other and joins the overlay when checked.

Going the other direction, publish the Outlook calendar to get a link, then add that link in Google Calendar under Other calendars, From URL. Each direction is a separate one-way link. Setting up both does not produce two-way sync, it produces two independent copies that each lag behind their source by a polling interval.

## One link instead

For a calendar that merges for good, not just on one screen, paste every calendar's feed link into [Calfeed's merge tool](/tools/merge-calendars). It reads each source and republishes one combined link, refreshed hourly, up to 10 feeds per calendar. Anyone can subscribe to that one link from Apple, Google, or Outlook, and manual events sit right alongside the merged ones. It is a read-only combined feed, not two-way sync: edits made after subscribing do not travel back to the original calendars. Downstream, [Apple checks about once an hour, Google every 12 to 24 hours](/learn/ics-refresh-rate-apple-google).

### Steps

1. **Add every calendar to the list**: For a calendar that is not already there, select "Add calendar," then "Subscribe from web," and paste its feed link. A calendar someone shared directly appears under "Open Shared Calendar" instead.
2. **Check the box next to each one**: In the calendar list on the left, select the check box beside every calendar to include in the combined view.
3. **Turn on the combined view**: In classic Outlook, check the extra calendar's box, then choose View in Overlay Mode from the calendar tab. In new Outlook or Outlook on the web, check each calendar, then turn off Split view in the Arrange group.
4. **Know the limit**: The overlay is a display setting, not a merge. It only exists on that one device, resets if the calendar list changes, and produces nothing to hand off or subscribe to elsewhere.
5. **Merge the feeds instead**: For a calendar that stays combined everywhere, not just inside Outlook, paste each calendar's feed link into Calfeed. One combined link comes back, refreshed hourly, and any calendar app can subscribe to it, not just Outlook.

### FAQ

**How do I merge two calendars in Outlook?**

Add both calendars to the calendar list, then check the box beside each one. Turn off Split view, or turn on Overlay Mode in classic Outlook, and they lay over each other in one view. It is a view, not a real merge: the calendars stay separate underneath.

**Can Outlook show a combined calendar view instead of two separate calendars?**

Yes, Overlay Mode does exactly that. It stacks every checked calendar into one grid, color-coded by source, on that one device. It does not produce a file or a link, so there is nothing to hand off or share.

**How do I merge an Outlook and a Google calendar?**

Copy the Google calendar's secret iCal address from its settings under Integrate calendar, then in Outlook choose Add calendar, Subscribe from web, and paste it. For the reverse, publish the Outlook calendar and add its link in Google under Other calendars, From URL. Both directions are one-way links set up separately, so neither gives you two-way sync.

**Does merging calendars in Outlook sync both ways?**

No. Outlook's overlay view, and its subscribe or import options, are all one-way: a calendar feeds Outlook, not the other way around. Merging feeds with Calfeed is also one-way and read-only, a combined copy for viewing and subscribing, not a two-way sync.

---

## rSchoolToday Calendar Feed: Subscribe from the Activity Scheduler

URL: https://calfeed.ai/learn/rschooltoday-calendar-feed
Published: 2026-07-30

How to subscribe to an rSchoolToday calendar feed from the Activity Scheduler, and how to combine several sports or teams into one link with Calfeed.

**TL;DR**

- Every public rSchoolToday Activity Scheduler calendar has a Subscribe link, no email step required.
- It lists feed options for Apple, Google, and Outlook side by side, plus a plain download.
- Subscribe once and every practice, game, and schedule change updates automatically.
- Following more than one team or sport? Combine every feed into one link with Calfeed.

rSchoolToday's Activity Scheduler runs public calendars for a lot of school athletic departments, and getting one [onto a phone](/learn/add-school-calendar-to-phone) is the most direct of the three platforms covered here. No emailed link to wait on, no private token to protect. A Subscribe option sits right on the calendar.

## Find the Subscribe link

Open the school or program's rSchoolToday Activity Scheduler calendar. Public calendars are viewable without an account. Look for a Subscribe link near the calendar grid.

## Pick a feed option

The Subscribe link lists feed options for Apple, Google, and Outlook side by side, along with a plain download for anyone who wants a one-time copy instead of a live link. Pick whichever matches the phone.

## Subscribe on iPhone or Android

Tap the Apple option and confirm the subscription in Calendar on iPhone. On Android, open calendar.google.com on a computer or phone browser, go to Other calendars, tap the plus, choose From URL, and paste the Google feed link in.

Either way, practices, games, and schedule changes flow in on their own after that. [Apple checks about once an hour, Google every 12 to 24 hours](/learn/ics-refresh-rate-apple-google).

## Combine more than one sport or team

A school running rSchoolToday across a dozen sports ends up with a dozen separate calendars. Paste each feed into [Calfeed's merge tool](/tools/merge-calendars) and it reads every source into one combined calendar link, up to 10 feeds per calendar. Add a rule to one source, like "only varsity games, skip JV," and Calfeed applies it automatically every time that source updates.

### Steps

1. **Open the Activity Scheduler calendar**: Find the school or program's rSchoolToday Activity Scheduler page. Public calendars are viewable without an account.
2. **Tap Subscribe**: Look for the Subscribe link near the calendar. It lists feed options for Apple, Google, and Outlook side by side, plus a plain download for anyone who wants a one-time copy instead of a live link.
3. **Subscribe on iPhone or Android**: Tap the Apple option and confirm the subscription in Calendar on iPhone. On Android, open calendar.google.com, go to Other calendars, tap the plus, choose From URL, and paste the Google feed link in.
4. **Combine more than one sport or team**: Following a program with varsity, JV, and freshman calendars, or a whole athletic department? Combine every rSchoolToday feed into one calendar link with Calfeed instead of subscribing to each one separately.

### FAQ

**Is the rSchoolToday calendar feed free to use?**

Yes. Subscribing directly from the Activity Scheduler costs nothing. Combining several rSchoolToday calendars into one with Calfeed is free to build, and the next two weeks sync free; $5 or 1 credit covers the full season.

**How often does a subscribed rSchoolToday calendar update?**

Depends on the calendar app, not rSchoolToday: Apple checks subscribed feeds about once an hour, Google every 12 to 24 hours. rSchoolToday updates the source right away; the delay sits entirely on the subscriber's app.

**Can I combine multiple rSchoolToday calendars, like several sports or teams, into one?**

Yes. Copy the Subscribe feed link for each calendar and paste them into Calfeed. It reads every source and republishes one combined calendar link, so a parent or an athletic department gets a single subscribe link instead of one per sport.

---

## How to Add a School Calendar to a Phone

URL: https://calfeed.ai/learn/add-school-calendar-to-phone
Published: 2026-07-28

Three ways to get the school calendar on an iPhone or Android: subscribe to the district's link, convert the PDF, or build the key dates from scratch.

**TL;DR**

- Subscribing to a calendar link beats copying dates off the district PDF every August.
- Many district websites already publish a subscribable calendar; look for "subscribe" or "add to calendar" on the calendar page.
- PDF-only district? Upload the file to Calfeed and publish the link yourself.
- One link covers the whole family, including a co-parent on a different phone platform.

Every August the district publishes the year: first day, last day, a dozen no-school days, half days, conference days. And every family transcribes some of it, misses a date, and gets caught flat on a random closed Monday in October. The fix is the same one that works for [work schedules](/learn/add-work-schedule-to-phone-calendar): stop copying dates and subscribe to a calendar link once.

There are three paths to that link, depending on what the school gives you.

## Check whether the district already publishes a link

Plenty of district and school websites run their calendar on a system that can publish a subscription link. Look on the calendar page for "subscribe," "add to calendar," or a feed icon. If it exists, tap it on the phone and the whole year lands in the calendar app. Done, and updates flow automatically.

Two honest caveats. District sites often bury the option, and some publish a link that includes every sports fixture and board meeting in the district, which floods a family calendar with noise.

## When the calendar is a PDF, flyer, or photo

Most schools still hand parents the year as a PDF or a printed sheet. Upload it to the [PDF to calendar converter](/tools/pdf-to-calendar), or snap a photo of the printout, and Calfeed reads the dates off it and turns them into events. Check the preview against the original, then publish the link.

The useful trick: keep the exceptions, not the routine. A phone calendar doesn't need 180 identical "school day" events. It needs closures, half days, early dismissals, breaks, and conference days. Tell Calfeed to keep just those while converting, or start from the [school year calendar template](/templates/school-year-calendar) and swap in the district's dates.

## On iPhone

1. Get the calendar link (from the district site or from Calfeed).
2. Tap the link on the iPhone. Calendar asks to subscribe; confirm.
3. Open Calendar and check the new calendar appears under Calendars.

Apple refreshes subscribed calendars roughly every hour, so a date change lands the same day.

## On Android and Google Calendar

The Google Calendar phone app can't add a calendar by URL, so do it once in a browser:

1. Open calendar.google.com on a computer or in the phone browser (desktop mode).
2. Under Other calendars, tap the plus, then From URL.
3. Paste the link and add. The calendar then shows in the Google Calendar app on the phone.

Google refreshes subscribed calendars on its own cycle, sometimes 12 to 24 hours. Fine for a school year; for a same-day change the school will send a message anyway.

## One link for the whole family

The subscribe-once model is built for households. Publish the school year as a link and send it to the family group chat: a co-parent on Android, grandparents on iPhone, the sitter on whatever they carry. Everyone sees the same dates, and when the district moves a conference day, [one edit updates every subscribed phone](/learn/share-calendar-with-group). No screenshots, no "did you see the email."

## Students: class schedules work too

The same paste-and-subscribe move handles a class or bell schedule. Paste the semester, add plain-word instructions like "ignore Wednesdays" or "drop everything after November 7," and the trimmed schedule becomes a subscribable calendar. College students do this with a syllabus using the [syllabus to calendar converter](/tools/syllabus-to-calendar).

### Steps

1. **Find or build the calendar link**: Check the district website's calendar page for a subscribe option. If the year only exists as a PDF or printout, upload it to Calfeed and publish the link.
2. **Open the link on the phone**: On iPhone, tap the link and confirm the subscription in Calendar. On Android, add it in Google Calendar on the web under Other calendars, From URL.
3. **Share it with the family**: Send the same link to a co-parent, grandparents, or the sitter. Everyone subscribes once and sees the same dates.
4. **Let updates flow**: Date changes appear on their own. Apple refreshes roughly hourly, Google can take up to a day.

### FAQ

**How do I put the school district calendar on an iPhone?**

Subscribe to it as a calendar link. If the district publishes one, tap it on the phone and confirm. If it only publishes a PDF, upload the PDF to Calfeed, publish the link it builds, then tap that. Either way the dates land in the Calendar app and future changes flow in on their own.

**The school only posts a PDF. Can that become a phone calendar?**

Yes. Upload the PDF, or a photo of the printed calendar, and Calfeed reads the dates off it and turns them into events. Check the preview, fix anything odd, and publish the link.

**Can both parents see the same school calendar?**

Yes, and that is the point of a link. Each person subscribes once on their own phone, iPhone or Android, and every district change shows up for both. Nobody forwards screenshots of the fridge printout.

**What about a class or bell schedule, not just days off?**

Paste it. A pasted class schedule converts the same way, and instructions like "ignore Wednesdays" or "skip everything after November 7" trim it while converting. Works for a college semester too.

---

## How to Share a Work Schedule With Family

URL: https://calfeed.ai/learn/share-work-schedule-with-family
Published: 2026-07-28

One link a spouse or family checks or subscribes to. Share a rotating work schedule without screenshots, group texts, or a shared login.

**TL;DR**

- Screenshots of the schedule go stale the first time a shift moves. A link never does.
- Family has two ways in - open the link like a page, or subscribe inside their own calendar app.
- Nobody needs an account or an app. The link works in any browser and any calendar.
- Rotating patterns like 2-2-3, 48/96, and DuPont take one sentence to build, not months of typing.

The schedule comes out, and the ritual starts: photograph the posted roster, text it to the group chat, answer "so are you off Saturday or not?" three times, and repeat the whole thing when two shifts get swapped on Wednesday. Sharing a work schedule with family this way means the family never actually has the schedule. They have a photo of what it used to be.

The fix is to share a link instead of a picture. One published calendar link carries every shift and every future change. Send it once and the question "when do you work?" answers itself.

## Why screenshots keep failing

A screenshot is frozen. The posted schedule is not. Rotations get adjusted, shifts get swapped, overtime appears. Every change turns the last screenshot into misinformation sitting in a group chat, and the correction is another photo, another scroll-past, another "wait, which one is right?"

A calendar link points at the live schedule. There is nothing to re-send, because nobody is holding a copy. They are all looking at the same calendar.

## Two ways in: check the page, or subscribe

People relate to someone else's schedule differently, and one link serves both.

**Checking the page.** For a quick "is she on nights this weekend?", the link opens in any browser like a web page — the current shift sits at the top, the rest of the schedule below it. No app, no account, no setup. Some families keep it saved on the home screen next to the weather.

**Subscribing.** For the person coordinating dinners, school pickups, and childcare around the rotation, subscribing puts every shift inside their own calendar app, right next to everything else. They tap the subscribe button on the calendar page once, and from then on the shifts maintain themselves — including changes. (Details on how fast changes arrive: [how often Apple and Google refresh subscribed calendars](/learn/ics-refresh-rate-apple-google).)

Neither person needed the employer's scheduling app, which almost never lets a spouse log in anyway.

## Building the link takes one input

Whatever form the schedule takes, it becomes a calendar in about a minute:

- **A posted printout or break-room board.** Snap a photo and upload it to the [photo to calendar converter](/tools/image-to-calendar).
- **A message or email from the scheduler.** Paste the text into the [shift schedule converter](/tools/shift-schedule-to-calendar).
- **A repeating rotation.** Describe it once: "2-2-3 day shift starting Monday June 22, 6:00 to 18:00" builds six months of shifts. Templates exist for [2-2-3 / Panama](/templates/panama-schedule), [firefighter 48/96](/templates/firefighter-48-96), [DuPont](/templates/dupont-schedule), and [Pitman](/templates/pitman-schedule).

Check the preview, publish, and the link is ready to text.

## Edit once, everyone is current

When the schedule changes, and it will, edit the published calendar. That is the entire update workflow. The page reflects it instantly; subscribed calendars pick it up on their next refresh. For a swap happening today, send a text too, since subscribed calendars refresh on their own cycle rather than instantly.

The person working the rotation stops being the family's schedule hotline. The link answers.

### Steps

1. **Build the calendar once**: Paste the schedule text, upload a photo of the posted roster, or describe the rotation ("2-2-3 day shift starting Monday, 6a to 6p"). Calfeed turns it into a published calendar with one link.
2. **Send the link once**: Text it to the family group chat, or add it to the fridge board as a QR code from the calendar page. That is the last time the schedule needs sending.
3. **Let everyone pick their way in**: A spouse who plans dinners might subscribe so shifts sit inside the family calendar. A teenager who just needs "is mom home Thursday?" opens the link and looks.
4. **Edit in one place**: Swapped a shift? Change it on the calendar. The page is current the moment you save, and subscribed calendars pick it up on their next refresh.

### FAQ

**How do I share my work schedule with my wife or husband?**

Publish it as a calendar link and send the link once. They can subscribe from their own phone so your shifts appear next to their events, or just open the link when they need to check a day. Both stay current when the schedule changes.

**Does my family need the app my employer uses?**

No. Employer scheduling apps usually only show the schedule to employees. A published calendar link is public to whoever you send it to, works in any browser, and needs no login or account.

**What happens when my schedule changes?**

Edit the calendar once. The link shows the change immediately, and subscribed calendars update on their own - Apple refreshes roughly hourly, Google can take up to a day. For a same-day swap, a text is still the fastest channel.

**Can I share a rotating shift schedule without typing every shift?**

Yes. Describe the rotation once - "48/96 starting July 4" or "2-2-3 nights, 6p to 6a" - and Calfeed generates months of shifts in one pass. Ready-made templates exist for 2-2-3, DuPont, Pitman, Kelly, 4-on-4-off, and firefighter rotations.

---

## How to share a camp schedule with parents

URL: https://calfeed.ai/learn/share-camp-schedule-with-parents
Published: 2026-06-05

Camp directors: publish one calendar link parents subscribe to. Edit once when an activity moves and every subscribed phone picks up the change. No app, no account, no new PDF.

**TL;DR**

- Publish a subscribable link, not a PDF. A PDF is wrong the first time anything moves.
- Put the link in the registration confirmation email, where every parent already looks.
- Edit silently for changes more than a day out. The calendar carries the update.
- Same-day weather call? Edit the calendar AND send the text. The message covers the gap.

Week three of camp: the field is double-booked, archery moves to Thursday, swim slides to the morning. The PDF every family has (welcome email, fridge printout) is now wrong, and Wednesday morning the phone starts. Here is the pattern that turns that edit into one minute and zero emails. (Building the calendar from scratch? The [summer camp schedule template](/templates/summer-camp-schedule) has a themed season pre-written.)

## Why the registration platform doesn't do this

| | Built around | Live schedule on parents' calendars? |
|---|---|---|
| **Team sports apps** | Rosters: practices, games | Yes. Subscribe once, every change auto-updates |
| **Camp software** (CampMinder, Sawyer, UltraCamp, Jumbula) | Registration: signups, payment, forms, photos | No. At most a one-time "add to calendar" at signup |

The feed team parents take for granted is tied to a roster. Camps don't have rosters, they have registrations, so the feed never gets generated, and the **daily schedule** (the part that changes mid-week) ends up in a PDF. That's the gap you can close yourself, with one link.

## Step 1: Publish a subscription, not a PDF

A [subscribable calendar link](/learn/calendar-subscriptions-explained) is a URL the calendar app re-reads on its own; a PDF is frozen the moment it leaves your outbox. No rebuilding needed. Paste the schedule you already made (Word doc, spreadsheet, flyer) into [Calfeed](/), or upload [the PDF itself](/tools/pdf-to-calendar), and it turns the document into a published calendar with one shareable link.

## Step 2: Put the link in the confirmation email

Camp parents reliably read two things: the registration confirmation and the welcome packet. Put the link in both, one line:

> "Add the camp schedule to your calendar: tap the link, pick your calendar app, and every change this summer will show up automatically."

## Step 3: Include sync help

Around one in five parents won't know what "subscribe to a calendar" means. Calfeed puts a sync-help walkthrough (Apple, Google, Outlook) on every public calendar page, so when a parent emails "it didn't work," send the page link instead of typing instructions.

## Step 4: Edit silently for changes more than a day out

Archery moves to Thursday? Change it on the calendar. Done. [Apple subscribers](https://support.apple.com/en-us/102301) pick it up within about an hour, [Google](https://support.google.com/calendar/answer/37100) within a day ([full refresh breakdown](/learn/ics-refresh-rate-apple-google)). Every edit you *don't* announce trains parents to trust the calendar instead of digging through email.

## Step 5: Send a text for same-day changes

A 7am weather call is the one case the calendar can't carry alone. Some phones won't re-check the feed before pickup. Do both: the text handles the next few hours, the calendar edit makes sure everyone who double-checks later sees the right plan. One source of truth, no "ignore my last email."

## Set it up before the season, or this week

Best time: with the welcome packet, before week one. Second best: paste the current schedule into [Calfeed](/) today and send the link in this week's update. Running a sports camp or clinic? The same pattern covers [practice and session schedules](/learn/for-instructors); for the family side, see [sharing kid schedules](/learn/for-parents).

### Steps

1. **Publish a subscription, not a PDF**: Turn the schedule into a subscribable calendar link. A subscription is a URL the calendar app re-reads on its own. A PDF is a copy that is wrong the first time anything moves. Paste the schedule document into Calfeed and it builds the link for you.
2. **Put the link in the confirmation email**: Add the calendar link to the registration confirmation and the welcome packet. Those are the two things every camp parent actually reads. One line is enough. "Add the camp schedule to your calendar, and every change shows up automatically."
3. **Include sync help**: Around one in five parents will not know how to subscribe to a calendar. Link a help page or send a one-paragraph follow-up. Calfeed includes a sync-help walkthrough for Apple, Google, and Outlook on every public calendar page.
4. **Edit silently for changes more than a day out**: Archery moves from Tuesday to Thursday? Change it on the calendar and stop. Apple subscribers see it within about an hour, Google within a day. Announcing every edit in email trains parents to ignore the calendar.
5. **Send a text for same-day changes**: Weather call at 7am? Edit the calendar and send the message. The text covers the next few hours; the calendar makes sure anyone who double-checks later sees the right plan.

### FAQ

**Doesn't CampMinder or Sawyer already send parents the schedule?**

They handle registration, payment, forms, and photos. Some add the session dates to a parent's calendar once at signup. None publish a live feed of the daily schedule, so a mid-week change still means a new PDF or a blast email. The daily schedule is the part that changes, and it is the part those platforms leave in a document.

**What about same-day weather changes?**

Edit the calendar and send a text. Apple calendars refresh about hourly and Google can take up to a day, so for a change landing in the next few hours the message does the urgent work. The calendar edit makes sure parents who double-check later see the right time.

**Do parents need an app or an account?**

No. The link opens in whatever calendar app is already on the phone, Apple, Google, or Outlook. Nothing to install, nothing to sign up for. That is the difference from a camp app, which only reaches the parents who downloaded it.

**Should I still hand out a printed schedule?**

Print one for the bulletin board if you like. Skip the per-family handout. Every printout is wrong the first time an activity moves. The link stays current, and parents check their phone before they check a folder.

---

## How to Add a Work Schedule to iPhone Calendar

URL: https://calfeed.ai/learn/add-work-schedule-to-phone-calendar
Published: 2026-06-04

Three ways to add a work schedule to an iPhone or Android calendar: subscribe to a link, snap a photo of the posted schedule, or build the rotation once.

**TL;DR**

- Subscribing to a calendar link beats re-typing shifts every week.
- Employer scheduling apps like When I Work and Planday hide a sync link in settings.
- No employer app? Snap a photo of the posted schedule and Calfeed builds the link.
- Rotating patterns like 2-2-3 and DuPont take one description, not months of typing.

Every shift worker knows the Sunday ritual: open the posted schedule, open the phone calendar, and type the week in one shift at a time. Then the schedule changes on Wednesday. The fastest way to add a work schedule to an iPhone calendar, or any phone calendar, is to stop typing shifts and subscribe to a calendar link once. The link carries every shift, and every future change, straight into the calendar app.

There are three paths to that link. Which one fits depends on how the schedule arrives.

## Subscribe once instead of re-typing

If the workplace runs a scheduling app like When I Work, Planday, or Sling, the link already exists. It hides under names like "calendar sync" or "subscribe" in the app settings. Find it, tap it on the phone, and the work schedule shows up next to personal events. Done.

Plenty of workplaces have no scheduling app. The schedule is a printout in the break room, a PDF in email, or a screenshot in the group chat. That used to mean typing. Now it means making the link once: paste the schedule text into Calfeed, or upload the file, and publish a [calendar link](/learn/share-calendar-with-group) anyone can subscribe to. The person who makes it can fix a swap in one place and everyone subscribed sees the update.

## On iPhone

1. Get the calendar link (from the employer app or from Calfeed).
2. Tap the link on the iPhone. Calendar asks to subscribe; confirm.
3. Open Calendar and check the new calendar appears under Calendars.

Apple refreshes subscribed calendars roughly every hour, so most changes land the same day. Shifts that run overnight, like 7pm to 7am, show correctly across both days.

## On Android and Google Calendar

The Google Calendar phone app can't add a calendar by URL, so do it once in a browser:

1. Open calendar.google.com on a computer or in the phone browser (desktop mode).
2. Under Other calendars, tap the plus, then From URL.
3. Paste the link and add. The schedule then shows in the Google Calendar app on the phone.

One honest caveat: Google refreshes subscribed calendars on its own cycle, sometimes 12 to 24 hours. The schedule stays current, but a same-day swap deserves a text on top.

## When the schedule is a photo or screenshot

A picture of the break-room board, a screenshot of the group chat, a photo of a printed roster: upload it to the [image to calendar converter](/tools/image-to-calendar) and Calfeed reads the shifts straight off the picture. Check the preview, then publish the link.

## Rotating shifts: 2-2-3, DuPont, Pitman

Rotating patterns are the worst case for hand-typing because they never line up with a weekly repeat. Skip the typing: describe the rotation once ("2-2-3, 12-hour days, 7am to 7pm, first shift Monday") and the [shift calendar maker](/tools/shift-schedule-to-calendar) builds out months of shifts. Presets cover 2-2-3, DuPont, Pitman, and 4-on-4-off; edit the times and start date to match the crew.

The payoff compounds at home. Publish the rotation as a link and a spouse or roommate subscribes once. Every pickup and swap shows on their phone without another screenshot ever changing hands.

### Steps

1. **Find or build the calendar link**: Check the employer scheduling app for a calendar sync option. No app? Paste the schedule text or upload a photo to Calfeed and publish the link.
2. **Open the link on the phone**: On iPhone, tap the link and confirm the subscription in Calendar. On Android, add it in Google Calendar on the web under Other calendars, From URL.
3. **Check the events landed**: Open the calendar app and look for the new calendar in the list. Shifts show alongside personal events.
4. **Let updates flow**: Schedule changes appear on their own. Apple refreshes roughly hourly, Google can take up to a day, so urgent swaps still deserve a text.

### FAQ

**Can an iPhone add a work schedule automatically?**

Yes, through a calendar subscription. Tap a calendar link once and every shift lands in the Calendar app, including future changes. The trick is getting a link, either from the employer scheduling app or by building one from the schedule text or photo with Calfeed.

**How do I get my work schedule from a photo into my calendar?**

Upload the photo to an image-to-calendar converter. Calfeed reads the dates, times, and shift names off the picture and turns them into a subscribable calendar link.

**Does Google Calendar update a subscribed work schedule instantly?**

No. Google refreshes subscribed calendars on its own cycle, often 12 to 24 hours. Apple Calendar polls more often, roughly hourly. For a same-day swap, send a text too.

**What about rotating shifts like 2-2-3 or DuPont?**

Describe the rotation once, in plain words, with the start date. Calfeed builds out months of shifts in one pass. The shift calendar maker has tappable presets for 2-2-3, DuPont, Pitman, and 4-on-4-off.

---

## Can ChatGPT make an ICS file? What works and what breaks

URL: https://calfeed.ai/learn/can-chatgpt-make-an-ics-file
Published: 2026-06-04

ChatGPT can write a one-off ICS calendar file you import. Time zones, recurring rules, and overnight shifts often break, and the file never updates.

**TL;DR**

- ChatGPT writes a downloadable ICS file from pasted text. Simple one-off events usually import.
- Common failures: wrong time zones, broken recurring rules, invented times for "TBD" items.
- The file is frozen at download. Re-importing after a change creates duplicate events.
- For schedules that change, a hosted calendar link beats a file. Subscribe once, updates flow.

Can ChatGPT make an ICS file? Yes. Ask it to turn a pasted schedule into a calendar file and it will produce one you can download and import into Google Calendar, Apple Calendar, or Outlook. For five simple events next week, that usually works.

The interesting question is where it stops working, because the failure modes are quiet. The file imports without complaint and the events are wrong.

## What ChatGPT does well

ChatGPT is good at the reading half of the job. Give it a messy paste, a bulleted email, or a photographed schedule and it will pull out dates, times, and titles with decent accuracy. The ICS format itself is plain text, so writing one is well within reach.

For a short list of one-off events in your own time zone, the generated file is usually fine. Download, import, done.

## Where the file breaks

| Failure | What happens | Why |
|---|---|---|
| Time zones | Events land an hour or three off | Floating times with no TZID, or the wrong zone named |
| Daylight saving | Events after the transition shift by an hour | Hand-written ICS rarely carries correct DST rules |
| Recurring events | The pattern drifts or stops early | [RRULE syntax](/learn/rrule-explained) is easy to get subtly wrong |
| Overnight shifts | A 7pm-to-7am shift ends before it starts | The end time needs to land on the next day |
| "TBD" items | A confident 9:00 AM appears from nowhere | Models fill gaps instead of leaving them blank |
| Long schedules | Events past a certain point vanish | Output limits truncate the file mid-list |

None of these announce themselves. Calendar apps import what they can and skip or misplace the rest, so the only defense is checking the events against the original schedule, one by one.

## The bigger limit: a file is frozen

Even a perfect file has a structural problem. The moment it is generated, it stops being connected to anything. Import it and the events are copies in your calendar, full stop.

Then the schedule changes. A shift gets swapped, a practice moves, a class is canceled. The file knows nothing. You regenerate it, re-import, and now every event exists twice, because calendar apps do not reconcile a new import against an old one. Cleaning up duplicates by hand is the tax on every update.

This is the difference between importing and subscribing. An import is a one-time copy. A [calendar subscription](/learn/calendar-subscriptions-explained) is a live link: the calendar app checks the hosted feed [on its own schedule](/learn/ics-refresh-rate-apple-google) and picks up every change. Nobody re-imports anything.

## When ChatGPT is the right tool

A fair split:

- **One-off events, near-term, your own time zone, nothing recurring:** ChatGPT is fine. Inspect the file, import it, move on.
- **A schedule that repeats, rotates, crosses midnight, or will ever change:** generate a hosted link instead. The reading step is the same idea, but the output is a URL that stays current.

That second case is what [Calfeed's text-to-calendar tool](/tools/text-to-calendar) is for. Paste the same text you would give ChatGPT. It turns the schedule into events you can review and correct before anything goes out, then publishes a calendar link. People subscribe once, and edits reach their phones without anyone touching a file again.

The honest summary: ChatGPT can make an ICS file, and for a disposable one, it should. For a schedule other people follow, the file format is the wrong artifact. What they need is a link.

### Steps

1. **Ask for the file explicitly**: Paste the schedule and ask for "an ICS file I can download, with my time zone named on every event." Naming the time zone in the prompt prevents the most common failure.
2. **Inspect before importing**: Open the file in a text editor. Every DTSTART line should carry a TZID matching the schedule's time zone. Spot-check three events against the original schedule, including any that cross midnight.
3. **Import into the calendar app**: Google Calendar: Settings, Import & export, upload the file. Apple Calendar: double-click the file on a Mac, or open it from Mail or Files on iPhone.
4. **Verify the times landed correctly**: Check an event near a daylight-saving boundary if the schedule spans one. Wrong-by-one-hour events are the signature of a time zone bug in the file.

### FAQ

**Can ChatGPT make a calendar file from a screenshot?**

Yes. Upload the image and ask for an ICS file. Accuracy drops compared to pasted text, so check every date and time against the picture before importing. Tools built for this, including Calfeed's image input, run the same kind of model with validation on top.

**Why did my ChatGPT ICS file import with the wrong times?**

Almost always time zone handling. The file used floating times with no TZID, named the wrong zone, or ignored a daylight-saving transition. Ask for the zone explicitly and inspect the DTSTART lines before importing.

**Can ChatGPT update the calendar after I import the file?**

No. An imported file is a snapshot. If the schedule changes, you regenerate and re-import, and the old events stay behind as duplicates unless you delete them by hand. A subscribed calendar link is the only path where edits reach people automatically.

**Is there a way to turn a schedule into a calendar without ChatGPT?**

Yes. Paste the same text into Calfeed's text-to-calendar tool. It turns the schedule into events you can check before publishing, and the output is a hosted link people subscribe to, so later edits reach everyone without a re-import.

---

## DuPont Schedule Explained, and How to Track One

URL: https://calfeed.ai/learn/dupont-schedule
Published: 2026-06-04

How the DuPont 12-hour shift schedule works: the 28-day cycle, the 7 days off, the day/night flips, and how to get the whole rotation into a phone calendar.

**TL;DR**

- DuPont = a 28-day cycle of 12-hour shifts with one 7-day break per cycle.
- Calendar weeks run 48, 72, 48, then 0 hours, flipping between days and nights. Average: 42.
- The 7 days off every 4 weeks is the draw. The day/night whiplash is the cost.
- It is the worst pattern to type into a calendar by hand. Describe it once instead.

The DuPont schedule covers 24/7 operations with four teams working 12-hour shifts through a 28-day cycle. Born at the DuPont chemical company in the 1950s, it is still the default in plants, refineries, and utilities. One feature explains its survival: every cycle ends with 7 consecutive days off.

## The 28-day pattern

The common sequence: 4 nights, 3 off, 3 days, 1 off, 3 nights, 3 off, 4 days, then 7 straight days off.

<ShiftCycle
  rows="NNNN--- DDD-NNN ---DDDD -------"
  caption="One 28-day DuPont cycle, shown starting on a Monday. Week two packs 6 shifts; week four is the full break."
/>

Counted by calendar week, the hours run 48, 72, 48, 0. That 72-hour week is DuPont's famous catch, and the zero week is its famous reward. The average is 42 hours, and sites vary the exact sequence, but the signature parts are constant: 12-hour shifts, day and night blocks mixed within the cycle, and the full week off.

## The trade

**The draw** is the 7-day break. Once every 4 weeks, a real vacation-length stretch without using leave. Shift workers plan trips around it.

**The cost** is the whiplash. DuPont switches between night blocks and day blocks with as little as one day off between them. Sleep never settles. Of the common 12-hour rotations, DuPont is the one sleep researchers like least, and most crews accept it specifically for the week off.

## Why tracking it by hand fails

A [Pitman schedule](/learn/pitman-schedule) is awkward to put in a calendar. DuPont is worse, for three reasons:

1. The cycle is 28 days, so a weekly [repeat rule](/learn/rrule-explained) is useless.
2. Half the blocks are overnights, where a shift starting 7pm Tuesday ends 7am Wednesday. Hand-typed versions reliably get the end date wrong.
3. Days and nights interleave, so copy-pasting last week's events produces wrong clock times.

The way out is to stop treating shifts as things you type. Describe the rotation once in plain words, with the cycle's anchor date, and let the [shift calendar maker](/tools/shift-schedule-to-calendar) build months of events in one pass. The DuPont preset is tappable, or start from the ready-made [DuPont schedule template](/templates/dupont-schedule): edit the times and start date, check the preview against the posted roster, publish. The [shift rotation generator](/tools/shift-rotation-generator) is the no-typing path: pick DuPont, set your cycle's start date and timezone, and publish.

The output is a calendar link, not a file. [Subscribe on the phone](/learn/add-work-schedule-to-phone-calendar) and the whole cycle is there, overnights ending on the correct mornings. A spouse subscribes to the same link and sees the 7-day break coming without asking.

## If your site runs a variant

Plenty of sites run modified DuPonts: different block orders, 8-hour hybrid versions, or an extra off day. The approach holds. Describe what the roster actually does, week by week, in plain words. The generated preview either matches the posted schedule or it tells you which sentence to fix.

### Steps

1. **Get the cycle anchor from the roster**: DuPont only makes sense relative to where your team is in the 28-day cycle. Find the first day of the current cycle, or just the date of your next 7-day break, and work backward.
2. **Describe the rotation**: Plain words work: DuPont rotating shift schedule, 28-day cycle, 12-hour shifts, week 1 four nights 7pm to 7am, week 2 three off then three days, week 3 one off then three nights, week 4 three off then four days then seven off. The shift calendar maker has a DuPont preset with this text.
3. **Check the preview against the posted schedule**: Verify the next two weeks shift-for-shift, and confirm the 7-day break lands where the roster says it does. If it is off by a week, the anchor date is wrong.
4. **Publish and subscribe**: Publish the calendar link and subscribe on the phone. Family members subscribe to the same link and can finally see the 7-day break coming.

### FAQ

**How many hours a week is a DuPont schedule?**

42 on average over the 28-day cycle, but individual calendar weeks swing hard, commonly 48, 72, 48, and 0. The 72-hour week is the cycle's documented low point, and many sites pay it as scheduled overtime.

**Why is it called the DuPont schedule?**

It originated at the DuPont chemical company in the 1950s for continuous plant operations and the name stuck across the chemical, energy, and manufacturing industries.

**What is the hardest part of working DuPont?**

The day/night flips. The cycle switches between night blocks and day blocks with as little as one day off in between, so sleep never settles into one rhythm. The 7-day break is the recovery valve.

**Can a normal calendar app handle a DuPont rotation?**

Not with a repeat rule. Calendar apps repeat weekly or monthly, and DuPont's 28-day mix of days, nights, and off-blocks fits neither. The workable path is generating all the shifts as events and subscribing to them as a calendar link.

---

## Firefighter Shift Calendars: 48/96, Kelly, 24/48

URL: https://calfeed.ai/learn/firefighter-shift-calendar
Published: 2026-06-04

How the common firefighter schedules work (48/96, Kelly, 24/48), and how to turn a platoon rotation into a calendar the whole family can subscribe to.

**TL;DR**

- Common firehouse rotations: 24/48, 48/96, and Kelly variants, run by A/B/C platoons.
- 48/96 repeats every 6 days, 24/48 every 3, Kelly cycles vary by department.
- None fit a weekly repeat rule, which is why paper shift calendars still hang on fridges.
- Describe the rotation once, anchor it to your platoon's next shift, and subscribe by link.

Fire departments run rotations built from 24-hour shifts, organized into A, B, and C platoons. The patterns repeat on 3-day, 6-day, or longer cycles, never weekly, which is why the colored paper shift calendar is still a firehouse institution. This guide covers the common rotations and the modern replacement: a subscribable calendar that knows your platoon's whole year.

## The common rotations

| Schedule | Pattern | Cycle | Avg hours/week |
|---|---|---|---|
| 24/48 | 1 day on, 2 off | 3 days | 56 |
| 48/96 | 2 days on, 4 off | 6 days | 56 |
| Kelly variants | 24-hour shifts every other day, plus a recurring Kelly day off | Varies by department | Set by the Kelly cadence |

**24/48** is the classic 3-platoon schedule: one 24-hour shift, two days off, forever. Simple, but no off-block is longer than 2 days without leave. The [24/48 template](/templates/firefighter-24-48) has the full rotation pre-written.

**48/96** packs the same hours into two back-to-back 24s followed by 4 full days off. Departments across the western US have moved to it; firefighters tend to like the 4-day blocks and the halved commuting.

**Kelly schedules** layer a recurring extra day off (the Kelly day) onto an every-other-day pattern to bring average hours down to contract targets. The exact cycle length differs by department, so confirm yours against the posted platoon calendar rather than a generic template.

The [shift rotation generator](/tools/shift-rotation-generator) has 24/48, 48/96, and Kelly built in: pick yours, set your platoon's next shift date and timezone, and publish a calendar link in seconds.

## Why these never fit a calendar app

Every consumer calendar app repeats things weekly or monthly. A 48/96 repeats every 6 days, so the same shift lands on Monday one cycle and Thursday the next. There is no [repeat rule](/learn/rrule-explained) for that, and a 24-hour shift also has to end the next day, which hand-typed entries regularly get wrong.

<ShiftCycle
  rows="OO----O O----OO ----OO- ---OO--"
  caption="A 48/96 over four weeks, starting on a Monday. The two-shift block drifts backward through the week every cycle, which is exactly what weekly repeat rules cannot express."
/>

The workable approach: describe the rotation once, in plain words, anchored to your platoon's next duty day, and have the [shift calendar maker](/tools/shift-schedule-to-calendar) generate a year of shifts as real events. The ready-made [48/96 schedule template](/templates/firefighter-48-96) is the same thing with the description pre-written. Check the preview against the platoon calendar, publish, and [subscribe on the phone](/learn/add-work-schedule-to-phone-calendar).

## The family is the real subscriber

Firefighter households organize life around the platoon calendar: holidays that land on duty days, school events, every fourth Christmas. That is why the fridge calendar exists.

A published calendar link does the same job on everyone's phone. A spouse subscribes once. Parents who watch the kids subscribe once. When a [trade or schedule change](/learn/edit-vs-new-calendar) gets edited into the calendar, every subscribed phone updates on its next refresh, no group text required.

One honest caveat: subscribed calendars refresh on the phone's schedule, roughly [hourly on Apple and up to a day on Google](/learn/ics-refresh-rate-apple-google). For tonight's trade, still send the text. For the other 99% of the year, the link carries it.

## Setting up a 48/96 in one paste

The 48/96 preset description looks like this: 24-hour shifts starting at 8:00am, work 2 consecutive days, then 4 days off, repeating, first shift on your platoon's next duty date, build 12 months. Edit the start time to match your department's shift change and the preview shows every duty day for the year ahead, each one ending 8:00am the following morning.

### Steps

1. **Identify the rotation and your anchor date**: You need two facts: the pattern (48/96, 24/48, or your department's Kelly cycle) and the date of your platoon's next on-duty day. Both are on the posted platoon calendar.
2. **Describe it in plain words**: Example: 48/96 schedule, 24-hour shifts starting 8am, work 2 consecutive days then 4 days off, repeating, first shift this Friday. Build 12 months. For Kelly cycles, spell out one full cycle the way the roster shows it.
3. **Check the preview against the platoon calendar**: Compare a full cycle, not just next week. If shift 3 drifts a day, the anchor date or the cycle description is off by one.
4. **Publish and share the link**: Subscribe on the phone, then send the same link to a spouse or parents. Each person subscribes once and every duty day shows on their own calendar, trades excepted.

### FAQ

**What is a 48/96 schedule?**

Two consecutive 24-hour shifts followed by 96 hours (4 days) off, repeating every 6 days. It averages 56 hours a week, the standard firefighter workweek, and has been widely adopted because it halves the commute count and gives real multi-day breaks.

**What is a Kelly day?**

A scheduled extra day off inserted into a rotation to pull average hours down to the department's target. Kelly cycles vary by department, which is why two firefighters on "the Kelly schedule" can have different calendars.

**How do A, B, and C shifts work?**

Departments split crews into three platoons labeled A, B, and C. On any date, exactly one platoon is on duty. The colored fridge calendar answers "which letter works today"; your own subscription calendar answers "which days am I on."

**Can I put shift trades in the calendar?**

A generated rotation covers the pattern, not trades. When a trade happens, edit the published calendar (swap the affected days) and every subscriber's phone picks up the change on the next refresh.

---

## Pitman Schedule Explained, Plus How to Put It on a Phone

URL: https://calfeed.ai/learn/pitman-schedule
Published: 2026-06-04

How the Pitman 2-3-2 shift schedule works: 14-day cycle, every other weekend off, fixed vs rotating. And how to get the whole rotation into a phone calendar.

**TL;DR**

- Pitman = 2-3-2: a 14-day cycle of 12-hour shifts with every other weekend off.
- Four teams, two on days and two on nights, cover around the clock. Average week: 42 hours.
- Fixed Pitman keeps a team on days or nights permanently. Rotating Pitman alternates.
- The pattern never fits a weekly repeat, so describe it once and subscribe to a calendar link.

The Pitman schedule runs four teams of 12-hour shifts through a 14-day cycle: work 2, off 2, work 3, off 2, work 2, off 3. Two teams hold days, two hold nights, and on any date one day team and one night team are on duty. The payoff that made it standard in police departments, dispatch centers, hospitals, and plants: every other weekend off, as a full 3-day weekend.

## The 14-day pattern

<ShiftCycle
  rows="DD--DDD --DD---"
  caption="One 14-day Pitman cycle for a day-shift team, shown starting on a Monday. Week two ends with the 3-day weekend."
/>

Seven 12-hour shifts per cycle: 84 hours, a 42-hour weekly average. One calendar week runs heavy and the next light, which is why Pitman positions often build the overtime expectation into pay.

The Friday-Saturday-Sunday block at the end of the cycle is the celebrated part. In a 24/7 operation, a guaranteed full weekend every other week is rare.

## Fixed vs rotating

**Fixed Pitman** assigns each team to days or nights permanently. Sleep stays stable. The night teams carry the whole night burden.

**Rotating Pitman** flips teams between days and nights, commonly each month. The burden spreads evenly, at the cost of resetting everyone's sleep on each flip.

Which one you are on changes nothing about the 2-3-2 on/off pattern. It only changes the clock times.

## Why it never fits a normal calendar

Calendar apps [repeat weekly](/learn/rrule-explained). Pitman repeats every 14 days, and the two weeks differ. There is no "every Monday" to anchor on, so people end up typing each shift by hand and re-typing when the cycle resets or a swap lands.

The shortcut is to stop typing shifts and describe the rotation once. The [shift calendar maker](/tools/shift-schedule-to-calendar) has a Pitman preset: tap it, set the real start date and shift times, and it builds out months of shifts in one pass, overnights included. Or start from the ready-made [Pitman schedule template](/templates/pitman-schedule). Publish the result as a calendar link and [subscribe on the phone](/learn/add-work-schedule-to-phone-calendar). Prefer no typing? The [shift rotation generator](/tools/shift-rotation-generator) has Pitman built in: pick it, set your start date and timezone, and publish.

A household bonus: the same link works for anyone. A spouse subscribes once and sees every on-duty day on their own phone, including the 3-day weekends worth planning around.

## Pitman vs the other 12-hour rotations

| Pattern | Cycle | Shape | Weekend rhythm |
|---|---|---|---|
| Pitman (2-3-2) | 14 days | 2 on, 2 off, 3 on / 2 off, 2 on, 3 off | Every other weekend off, 3 days |
| 2-2-3 (Panama) | 14 days | Same block family, naming varies | Every other weekend off |
| [DuPont](/learn/dupont-schedule) | 28 days | Mixed day/night weeks + 7 straight days off | One long break per cycle |
| 4-on-4-off | 8 days | 4 on, 4 off | Weekends drift through the cycle |

If the roster says "2-2-3" or "Panama," the same preset approach works: the differences are starting point and labels, not math. The ready-made [Panama schedule template](/templates/panama-schedule) has that variant pre-written.

## The hard parts

Twelve hours is a long shift, and the 3-shift stretch wears. On rotating Pitman, the day/night flip is the common complaint: the first night shift after a flip lands on a body still set to days. None of that is fixable with a calendar, but seeing the full cycle laid out months ahead makes the recovery days plannable, which is most of what shift workers ask for.

### Steps

1. **Describe the rotation in plain words**: Something like: Pitman 2-3-2 schedule, 12-hour day shifts 7am to 7pm, work 2, off 2, work 3, off 2, work 2, off 3, two-week cycle starting Monday. The shift calendar maker has a tappable Pitman preset with this text.
2. **Anchor the start date**: The whole 14-day cycle hangs on which day starts it. Check the posted roster for the first day of the current cycle and use that date.
3. **Check the preview against the roster**: Compare the generated shifts to the posted schedule for the next two weeks. Verify the weekend you have off matches.
4. **Publish and subscribe**: Publish the calendar and subscribe on the phone. A spouse or roommate can subscribe to the same link and see every shift without an app.

### FAQ

**What does 2-3-2 mean in a Pitman schedule?**

The on-duty blocks across the two-week cycle. Week one is work 2, off 2, work 3. Week two is off 2, work 2, off 3. Then the cycle repeats. Every shift is 12 hours.

**How many hours a week is a Pitman schedule?**

42 on average, from 7 twelve-hour shifts per 14-day cycle. Individual calendar weeks swing heavier and lighter depending on where the cycle starts, and pay often builds in scheduled overtime for the heavy week.

**What is the difference between fixed and rotating Pitman?**

Fixed Pitman keeps each team permanently on days or nights. Rotating Pitman flips teams between days and nights on a set interval, often monthly, which spreads the night burden but is harder on sleep.

**Is Pitman the same as 2-2-3?**

They are the same family. Both run a work 2, off 2, work 3 style block over a 14-day cycle with 12-hour shifts. Naming varies by industry, and some places call the fixed version Pitman and the slow-rotating version Panama.

---

## What Is an ICS File? The Calendar Format, Explained

URL: https://calfeed.ai/learn/what-is-an-ics-file
Published: 2026-06-04

An ICS file is the plain-text format every calendar app understands. What's inside one, how to open it, and the difference between importing a file and subscribing to a link.

**TL;DR**

- ICS = iCalendar, the plain-text calendar format from RFC 5545. Every major calendar app reads it.
- A file holds events: title, start, end, time zone, location, and repeat rules.
- Opening a file imports a one-time copy. Subscribing to a hosted ICS URL stays live.
- Meeting invites, 'Add to calendar' buttons, and calendar feeds are all ICS underneath.

An ICS file is a plain-text file that carries calendar events in the iCalendar format, the lingua franca of scheduling. Google Calendar, Apple Calendar, Outlook, and effectively every other calendar app can read one. When a meeting invite lands in email, when an event page offers "Add to calendar," when a team publishes a schedule feed, the thing moving underneath is ICS.

## What's inside one

Open an ICS file in a text editor and it is readable:

| Line | Meaning |
|---|---|
| `BEGIN:VCALENDAR` | Start of the calendar |
| `BEGIN:VEVENT` | Start of one event |
| `SUMMARY:Team practice` | The event title |
| `DTSTART;TZID=America/Chicago:20260612T180000` | Start: June 12, 2026, 6:00pm Central |
| `DTEND;TZID=America/Chicago:20260612T193000` | End: 7:30pm |
| `RRULE:FREQ=WEEKLY;BYDAY=TH` | Repeats every Thursday |
| `UID:abc123@example.com` | Unique ID so apps can match updates to events |

The format dates to 1998 and is standardized today as RFC 5545. The repeat rules deserve their own explainer: see [RRULE explained](/learn/rrule-explained). The time zone field is the one that bites: events written without a proper `TZID` land an hour off for somebody, which is the most common flaw in hand-made and AI-generated files, covered in [can ChatGPT make an ICS file](/learn/can-chatgpt-make-an-ics-file).

## File vs link: the distinction that matters

The same format gets delivered two ways, and they behave differently:

**An ICS file is a snapshot.** Import it and the events are copied into your calendar. If the source schedule changes later, your copy does not. Re-importing a corrected file stacks duplicates next to the originals.

**An ICS link is a feed.** Apps subscribe to the URL and re-check it: [roughly hourly on Apple, every 12 to 24 hours on Google](/learn/ics-refresh-rate-apple-google). Events added, moved, or canceled at the source flow to every subscriber without anyone touching a file. This is how [calendar subscriptions](/learn/calendar-subscriptions-explained) work, and it is the right delivery for any schedule that can change: team seasons, work rotations, class schedules.

Rule of thumb: a file for a one-time handoff, a link for an ongoing schedule.

## Where ICS files come from

- **Calendar apps export them.** Google Calendar downloads each calendar as a file; Apple Calendar exports via File, Export.
- **Email invites are ICS.** The .ics attachment on a meeting invite is how the event, its updates, and RSVPs travel between calendar systems.
- **Event sites generate them.** "Add to calendar" buttons either download a file or hand the app a feed URL.
- **You can make one from a schedule.** A schedule that exists as pasted text, a [CSV](/tools/csv-to-calendar) or [Google Sheet](/tools/google-sheets-to-calendar), a [PDF](/tools/pdf-to-calendar), or a [photo of the break-room printout](/tools/image-to-calendar) can be turned into events. Calfeed does this and publishes the result as a hosted feed, so the output is a subscribe link rather than a frozen file. A [schedule validator](/tools/schedule-validator) can check an existing file or feed for the time zone and recurrence problems that make imports go wrong.

## Quick reference

| Question | Answer |
|---|---|
| File extension | `.ics` |
| Format name | iCalendar (RFC 5545) |
| Content type | Plain text |
| Read by | Google Calendar, Apple Calendar, Outlook, and most others |
| One-time copy | Import the file |
| Stays updated | Subscribe to a hosted feed URL |

### Steps

1. **Open it on a computer**: Double-click the file. macOS opens Apple Calendar, Windows opens Outlook or Calendar, and both offer to add the events. To inspect first, open it in any text editor: it is readable text.
2. **Import into Google Calendar**: Google Calendar on the web, gear icon, Settings, Import & export, select the file, pick a destination calendar, Import. The mobile app cannot import files.
3. **Open it on a phone**: On iPhone, tap the file in Mail or Files and Calendar offers to add the events. On Android, import via Google Calendar on the web in a browser.
4. **Or subscribe instead of importing**: If what you have is a link to an ICS feed rather than a file, add it as a subscription (From URL in Google, Add Subscription Calendar in Apple). Subscriptions keep updating; imports do not.

### FAQ

**How do I open an ICS file?**

Double-click it on a computer and the default calendar app imports it. On Google Calendar, use Settings, Import & export on the web. On iPhone, tap the attachment and confirm. It is also plain text, so any text editor can show what is inside.

**Is ICS the same as iCal or iCalendar?**

Yes. iCalendar is the standard, .ics is its file extension, and iCal was the old name of Apple's calendar app, which is why the names blur together. One format, three names.

**What is the difference between an ICS file and an ICS link?**

The content is identical; the delivery differs. A file is a one-time copy you import. A link points to a hosted feed that calendar apps re-check on a schedule, so events added or changed at the source appear on subscribers' calendars automatically.

**How do I make an ICS file or feed?**

Every calendar app exports one (Google Calendar's export downloads each calendar as a file). To go the other direction, from a schedule that exists as text, a spreadsheet, or a photo, Calfeed turns it into events and publishes a hosted feed you can share as a subscribe link.

---

## Embed a Calendar on a Website

URL: https://calfeed.ai/learn/embed-calendar-on-website
Published: 2026-05-21

Embed a subscribable calendar on any website. One iframe, auto-resizes, updates when you edit. Works in WordPress, Squarespace, Webflow, and Notion.

**TL;DR**

- Every published calfeed calendar has a one-iframe embed snippet you can drop on any page.
- The embed reads from the same feed as the subscribe link, so edits show up in both surfaces at once.
- Works on WordPress, Squarespace, Webflow, Notion, and plain HTML.
- Pair the embed with the subscribe button so visitors can take the calendar with them.

Showing a calendar on a website used to mean a static PDF, a hand-coded table, or a Google Calendar embed that only updates when you edit inside Google. None of those work when the schedule changes often, and none of them give visitors a way to take the calendar with them.

Calfeed gives every published calendar a one-iframe embed snippet. Drop it onto any page. The events render in real time from the same feed the subscribe link serves.

## Why an embed beats a static schedule page

A live embed reads the source feed on every load, so edits show up instantly and the embed never drifts from the subscribe link. A static page is a copy that goes stale the moment you edit the source. Visitors see whatever version was live when the page was last saved. If you also have a subscribable link, the two surfaces drift apart fast.

An embed reads the calendar feed directly. Edit the calendar once. The embed auto-updates on the next page load, and every subscriber's calendar app sees the new version on its next refresh. No second copy to maintain.

## How the calfeed embed works

Every public calfeed calendar exposes a code snippet to its owner from the calendar's owner view. The snippet is a single [iframe](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe) with auto-height behavior built in. The frame talks back to the host page enough to resize itself when the event count or device width changes.

The embed inherits custom branding (logo and color) if you have it set on your calfeed profile. Visitors see the same brand whether they read it on your site or after they subscribe.

## Drop it into WordPress, Squarespace, Webflow, or Notion

The same iframe snippet works on every major site builder. Paste it into the platform's HTML or embed block and publish. No plugins, no scripts, no setup.

- **WordPress.** Add a [Custom HTML block](https://wordpress.org/documentation/article/custom-html/). Paste the snippet. Publish.
- **Squarespace.** Add a [Code Block](https://support.squarespace.com/hc/en-us/articles/206543167-Code-blocks). Set the language to HTML. Paste.
- **Webflow.** Add a [Code Embed element](https://university.webflow.com/videos/custom-code-embed). Paste. Publish the page.
- **Notion.** Paste as an iframe block. Notion requires the iframe wrapper to be created via the iframe block, not Custom HTML.
- **Plain HTML.** Paste anywhere a div would go. The iframe takes care of its own height.

The snippet is identical across hosts. Generate it once and reuse it.

## Embed plus subscribe button: pair them

The embed shows events. The subscribe button lets a visitor take the events with them. Put both on the page.

Below the embed, link to the calfeed calendar page. Visitors who want updates on their own device tap Subscribe and pick Apple, Google, or Outlook. The calendar lands in their app before they close the tab. ([Subscribe-flow walkthrough.](/learn/calendar-subscriptions-explained))

One schedule, two surfaces. Visitors who want to browse, browse. Visitors who want to follow along, subscribe.

[Open a calendar](/) and grab the embed snippet from the owner panel.

### Steps

1. **Open the calendar in calfeed**: From the dashboard, open the calendar you want to embed. The embed section sits on the calendar's owner view.
2. **Copy the embed snippet**: Click the embed code box. The snippet is a single iframe tag with auto-height on by default. Copy the whole snippet.
3. **Paste into your site**: In WordPress, use a Custom HTML block. In Squarespace, a Code Block. In Webflow, an Embed element. In Notion, an iframe block. In plain HTML, paste anywhere a div would go.
4. **Pair with a subscribe link**: Below the embed, link to the calfeed calendar page. Visitors who want the calendar on their own device tap Subscribe and pick Apple, Google, or Outlook.

### FAQ

**Will the embed update when I edit the calendar?**

Yes. The embed reads the same feed as the subscribable link. Any edit you make in calfeed shows up in both surfaces.

**Does the embed work in WordPress, Squarespace, Webflow, or Notion?**

Yes. The embed is a single iframe tag. Paste it into any HTML block. WordPress (Custom HTML), Squarespace (Code Block), Webflow (Embed element), Notion (iframe block), and plain HTML all accept it.

**Do visitors need a calfeed account to view the embedded calendar?**

No. Visitors see events render directly in the embed. The subscribe button next to the embed lets them add the same feed to Apple, Google, or Outlook with one tap. No signup required for visitors.

**How is this different from embedding Google Calendar?**

A Google Calendar embed only updates when you edit inside Google Calendar. A calfeed embed updates from any input you support, carries your custom branding, and pairs natively with a subscribe button that pulls the feed into any calendar app.

**Does the embed resize to fit the page width?**

Yes. The iframe auto-resizes to match the available width and the event count. You do not need to set a fixed height.

---

## Class Schedule App for Instructors

URL: https://calfeed.ai/learn/for-instructors
Published: 2026-05-20

Post a class schedule once as a live link. Students subscribe in Apple, Google, or Outlook. Edits show up on their calendars automatically, no texts needed.

**TL;DR**

- Paste a class series into Calfeed and get a subscribable calendar link in seconds.
- Students add the link once. Every schedule change reaches them automatically.
- Works for fitness, yoga, dance, music, and tutoring. Any class series you repeat.
- Calfeed is a class timetable app, not a booking tool. No accounts for students.

A fitness instructor teaches six classes a week. Before each week she texts the schedule to clients. They save it, miss the pinned message, ask what time Tuesday is, and then the Thursday session moves. She texts again. Half the group sees the update. The other half shows up at the wrong time.

The fix is a class schedule app built around subscriptions. Paste the week's classes once, get a link, send the link once. Clients add it to Apple or Google Calendar. Every change flows to them automatically. No group texts for every edit, no "wait, what changed?" replies.

Calfeed is that tool. The [class schedule template](/templates/class-schedule) is a pre-written weekly timetable to start from.

## How instructors publish a class series once

Paste the class series into Calfeed as plain text, get back a subscribable link, and send it to clients once. Future edits reach every subscriber automatically. The publishing flow is the same for any class series. Type or paste the schedule in plain text: class name, day, time, location. Calfeed turns it into a live calendar feed. You get a shareable link.

Send the link to clients in whatever channel you already use: email list, WhatsApp group, studio newsletter. Each client taps the link (sometimes called a webcal link, since calendar apps treat it as a subscription URL) and [adds it to their calendar app](https://support.apple.com/guide/calendar/subscribe-to-calendars-icl1022/mac). That one subscribe action wires them to your live feed. Every edit you make from that point forward auto-updates their calendar on the next sync.

CSV also works if you run the schedule in a spreadsheet. Drop the file into the [CSV to calendar tool](/tools/csv-to-calendar) and Calfeed reads it the same way.

The students never need a Calfeed account. They just need the link and the calendar app they already have.

## Fitness, yoga, music, dance: same pattern

The instructor-to-students pattern works across every class format.

[A yoga studio](/c/example/yoga-classes) publishes the week's flow sessions and workshops. A dance teacher lists recital rehearsals and open floor nights. [A music teacher](/c/example/office-hours) maintains lesson blocks and makeup slots. A personal trainer posts small-group sessions. A tutor keeps a subject schedule for multiple families.

The class timetable is different in each case, but the publishing model is identical. You control one source of truth. Clients subscribe once. Changes propagate without you nudging anyone. (For weekly classes that repeat for months, the [recurring-event format](/learn/rrule-explained) handles the structure for you.)

The term "class timetable app" fits here more accurately than "class schedule app." A timetable implies a recurring structure with a live, authoritative version. That is what a calendar feed delivers. Static PDFs and group-chat pinned messages are copies. A feed subscription, built on the [open iCalendar standard](https://datatracker.ietf.org/doc/html/rfc5545), is the live version.

## Class timetable app vs. studio booking software

Calfeed is not a studio booking platform. It does not take reservations, manage waitlists, process payments, or track who attended. Mindbody, Acuity, Pike13, and similar tools do that.

Calfeed does one thing: it turns a class schedule into a subscribable calendar link. If clients already book through an existing system, Calfeed handles the "when are classes?" side without touching the booking side. The two tools can coexist in the same workflow.

If you need just the schedule publishing piece and nothing else, Calfeed is the right fit. If you need booking as well, add Calfeed on top of whatever handles bookings. The overhead is low: paste a schedule, copy a link, send it once.

## Sending a class schedule to clients without their email

The calendar link works without a direct email list. Post it in the studio's bio link, a pinned WhatsApp message, a text, or the footer of any newsletter. The recipient does not need a Calfeed account. They tap the link, subscribe, and that is the last manual step on their end.

This also covers clients who join mid-season. Send them the same link you sent at the start. They [subscribe](https://support.google.com/calendar/answer/37100) and pick up the current schedule immediately. No re-exporting, no sending a fresh file. The link is the same one the original group has. Everyone stays on the same version.

Edits you make later, like cancelling a Saturday class or adding an extra session before a holiday, push to every subscriber on the next sync. Apple checks roughly hourly, Google every 12 to 24 hours ([full breakdown](/learn/ics-refresh-rate-apple-google)). No separate announcement required for schedule maintenance. Reserve direct messages for same-day changes or cancellations within a few hours.

## Getting started

Paste a week of classes into Calfeed, copy the link, and send it to one client as a test. Watch it appear in their calendar. That one round trip is the whole model. Scale from there. See [how to share a calendar with a group](/learn/share-calendar-with-group) for the message pattern that gets 30 clients subscribed in one round.

[Turn a class schedule into a live link](/) in under a minute, or [try the text-to-calendar tool](/tools/text-to-calendar) without signing up.

### FAQ

**Does this replace Mindbody or Acuity?**

No. Mindbody and Acuity handle booking, payments, and studio management. Calfeed handles the publishing side only: turning a class schedule into a subscribable link students add to their calendar app. The two can coexist.

**How do students subscribe to the class schedule?**

You send them the calendar link. They tap it, their calendar app opens, and they choose Subscribe. That is it. No account, no app download, no sign-up required from them.

**Can students see changes when you update the schedule?**

Yes. When you edit events, subscribers see the updated version the next time their calendar app checks the feed. Apple Calendar checks about once an hour. Google Calendar checks every 12 to 24 hours.

**Does Calfeed handle booking or payments?**

No. Calfeed publishes schedules. Booking, waitlists, and payments are outside its scope. If you need those, keep your existing booking tool and use Calfeed for the schedule-publishing piece.

---

## Shared Family Calendar App for Parents

URL: https://calfeed.ai/learn/for-parents
Published: 2026-05-20

A shared family calendar app built for parents who publish kid sports, school, and custody schedules. One link, live updates, no app installs for subscribers.

**TL;DR**

- One parent publishes the schedule. Everyone else subscribes to the link.
- Subscribers get live updates in Apple Calendar, Google Calendar, or Outlook. No app installs.
- Works for kid sports, school events, and joint-custody handoffs.
- iPhone calendar share with family takes two taps after the link lands.

Every parent knows the drill. One parent types out the soccer schedule, texts it to twelve people, and then edits it three days later when the venue changes. The original message is buried. Half the family misses the update. The other half texts back asking which version is right.

A shared family calendar app solves this, but only if the format is right. The best setup is [publisher mode](/learn/shared-calendar-app): one parent publishes the schedule, everyone else subscribes to a single link. Calfeed is built for exactly that. Paste the schedule as plain text, get a subscribable link back, send it once. Every edit after that is automatic.

The rest of this article walks through the pattern for kid sports, school events, custody handoffs, and getting the link onto iPhone in two taps.

## How one parent publishes a family schedule once

One parent pastes the schedule into Calfeed, gets a subscribable link, and sends it once. Every family member subscribes in their own calendar app. Future edits propagate automatically. The key shift is thinking of the calendar as a feed, not a file. When you email a PDF or paste events into a group chat, every edit means another message. When you publish a subscribable link, the edit happens once on your end. Subscribers get the new version automatically the next time their calendar app refreshes.

Calfeed builds the feed from whatever text you already have. Paste the schedule from an email, a coach's PDF, a school newsletter, or just type it out. Calfeed turns it into a structured calendar and hands back a link. That link is the only thing you ever send.

Family members click the link on their phone or computer. Apple Calendar, Google Calendar, and Outlook all recognize the format (sometimes labeled a webcal subscription) and add it as a subscribed calendar. No one needs to create a Calfeed account. No one needs to install anything. The schedule auto-updates inside whatever calendar app they already use.

## Sharing kids sports, school, and custody schedules

Kid sports, school events, and joint-custody handoffs are the three jobs Calfeed handles best for parents. Each has one owner of the schedule and a wider audience that just needs to follow it. Three use cases drive most of the parent traffic on Calfeed.

**Kid sports.** Soccer, hockey, dance, and swim schedules change constantly. Rainouts, rescheduled games, venue swaps. Instead of re-texting 15 parents every time, start from the [practice schedule template](/templates/practice-schedule) (or the [team schedule template](/templates/team-season-schedule), which adds the full game slate), publish the season as a link, and send it once at the start of the season. Every change updates in place. Parents see the current schedule inside their calendar, not scattered across a thread. ([See a youth hockey example](/c/example/hockey-practice).)

**School events.** Back-to-school night, picture day, half-days, field trips. Paste the school's event list and publish it as a separate calendar. Teachers can do the same for classroom-specific events. Subscribers add both calendars and see school and sports side by side with their personal schedule. ([See a school field-trips example](/c/example/school-trips).)

**Joint custody.** A shared custody calendar needs to be readable by both parents without requiring one to approve the other's edits or share an account. Publish the schedule once and send the link to both co-parents. Each adds it independently. Neither has write access to the other's calendar. Edits go live automatically on both sides. ([See a family-activities example](/c/example/family-activities).)

## iPhone Family Sharing vs a calfeed calendar

Apple Family Sharing is an all-edit household calendar capped at six Apple users. Calfeed is a publisher-mode feed: one parent owns the schedule, anyone on any platform subscribes. Different jobs. [Apple Family Sharing](https://support.apple.com/guide/iphone/share-icloud-calendars-iph7613c4fb/ios) has a built-in family calendar. Up to six members share one calendar where everyone can add, see, and edit events. It is a household app. It is great for "who's picking up the kids" and "date night."

A calfeed calendar is a different shape. One parent publishes the schedule. Anyone (family, grandparents, babysitters, custody co-parent, coaches) subscribes to the link in whatever calendar app they already use. iPhone, Android, Outlook, Google. No Apple ID required to subscribe.

Use Apple Family Sharing when everyone in your household needs write access to the same board. Use calfeed when one person owns the schedule and a larger group (often beyond the six-person Family Sharing cap) needs to see it.

The two work side by side. Family Sharing for daily household logistics. Calfeed for the kid sports calendar everyone's grandparents want to follow.

## iPhone calendar: share with family in 2 taps

When a subscriber on iPhone taps the calendar link, iOS recognizes the subscription URL and opens a dialog asking which app to use. For most iPhones that is Apple Calendar. They tap "Subscribe," confirm, and the calendar appears under "Other Calendars" in the app.

The whole flow takes under 10 seconds. The subscriber sees the schedule as colored events alongside their personal calendar. When you edit a game time or add a makeup practice, the change shows up on their iPhone the next time Apple Calendar refreshes ([usually within an hour](/learn/ics-refresh-rate-apple-google)).

If the subscriber uses Google Calendar on iPhone instead, they can go to calendar.google.com on the web, find "Other calendars," choose [From URL](https://support.google.com/calendar/answer/37100), and paste the link. It syncs to the Google Calendar app on their iPhone from there. The same link works for both paths.

## Calendar app to share with friends, neighbors, and the school group

Publisher mode scales past immediate family. The same link pattern works for:

- A neighborhood swim team where parents rotate drive duty
- A grandparent who wants school and sports events on their calendar without a group chat
- A babysitter who needs to know game days and pickup times
- A classroom parent group coordinating volunteer schedules

The key difference between Calfeed and a shared-edit app like [Cozi](/vs-cozi) is ownership. [Shared-edit apps](https://www.cozi.com/feature-overview/) assume everyone in the group wants to add and change events. That works for household logistics but falls apart when the schedule has one source of truth. A school calendar, a sports league, a custody arrangement all have one person who owns the data. Publisher mode keeps that clean. The publisher edits. Subscribers receive.

Send the link to whoever needs it. They subscribe once and stop asking "did anything change this week?" See [how to share a calendar with a group](/learn/share-calendar-with-group) for the share-message pattern that lands.

### FAQ

**What's the best calendar to share with family?**

A subscribable calendar link beats a shared-edit app when one parent owns the schedule. Subscribers see live updates in Apple Calendar, Google Calendar, or Outlook without touching a separate app. Calfeed builds that link from plain text in under a minute.

**Do family members need to install an app to subscribe?**

No. The link opens directly in Apple Calendar, Google Calendar, or Outlook on any device. Android, iPhone, and desktop all work. No account, no download, no signup required for subscribers.

**Can I share with both parents in a joint-custody schedule?**

Yes. Publish the schedule once and send the link to both parents. Each subscribes on their own device in their preferred calendar app. Edits show up automatically on both sides without re-sending anything.

**Will this work on iPhone, Android, and Outlook?**

Yes. The calendar link is a standard subscription URL. Apple Calendar, Google Calendar on Android, Outlook on desktop, and Outlook on the web all accept it. Subscribers add it once and get all future updates.

---

## Best Shared Calendar App for Every Use

URL: https://calfeed.ai/learn/shared-calendar-app
Published: 2026-05-20

Not every shared calendar app works the same way. Which apps suit families who all edit, and which suit publishers broadcasting a schedule to subscribers.

**TL;DR**

- "Shared calendar app" covers two very different jobs: all-edit family apps and publisher-mode broadcast apps.
- Cozi, TimeTree, and Google Family Group are best for households where everyone adds and edits events.
- Calfeed is best when one person publishes a schedule and an audience subscribes to it.
- Subscribers never need to install Calfeed. The calendar link works in Apple Calendar, Google Calendar, and Outlook.

When people search for a shared calendar app, they usually have one of two very different things in mind. The first is a family or household app where everyone can add, edit, and delete events (a shared board for life logistics). The second is a way to publish a schedule so an audience can subscribe to it and follow along. Most search results for "shared calendar app" show you the first kind. This article covers both, honestly, so you can pick the right tool. (Sharing one person's work schedule with the household is its own job, covered in [share a work schedule with family](/learn/share-work-schedule-with-family).)

## Shared family calendar that works on Apple and Google

A good shared family calendar lands inside Apple Calendar and Google Calendar without anyone installing a new app. Calfeed builds exactly that: one subscribable link that works in both. The fastest test for "is this a good shared family calendar app?" is whether the calendar lands inside Apple Calendar and Google Calendar without anyone installing a new app. That rules out most household-only apps that need a download on every device.

Calfeed builds calendars that work in both. The publisher (one parent, usually) types the schedule in plain text and gets back a single subscribable link. Family members tap the link on iPhone and it opens Apple Calendar. Tap the same link on Android and it opens Google Calendar. Tap it on a laptop and Outlook or the desktop calendar app accepts it.

No accounts. No app installs. No "which app are we using this year?" Each family member subscribes once in whatever calendar they already use, and every future edit shows up automatically.

## How Calfeed works as a shared calendar app

Calfeed is a publisher-mode shared calendar app. One person (the coach, the organizer, the parent) creates the calendar by pasting in a schedule. It can be plain text, a CSV, a link to a page, or an image. Calfeed turns it into a structured calendar and hands back a subscription link.

That link is the only thing the publisher ever sends. Subscribers tap it, and it opens directly in Apple Calendar, Google Calendar, or Outlook. No app download. No account creation. The calendar appears under "Other Calendars" in whatever app the subscriber already uses.

From that point forward, every edit the publisher makes shows up automatically. Apple Calendar checks for updates about once an hour. Google Calendar checks every 12 to 24 hours. ([Full refresh-cadence breakdown.](/learn/ics-refresh-rate-apple-google)) The publisher edits once; every subscriber's calendar updates on its own. No re-sending the schedule every time a game moves.

The subscription link is stable forever. A sports season with 40 subscribers stays subscribed through every venue change, rainout, and rescheduled date. The URL does not change when the calendar does.

## When you want a real all-edit shared calendar instead

Calfeed is not the right answer for every shared calendar job. If you need a family calendar where your spouse can add doctor appointments, you can add date nights, and the kids can see (but not edit) the household schedule, you want a different tool.

**[Cozi](/vs-cozi)** is purpose-built for families. [One shared account, color-coded by family member](https://www.cozi.com/feature-overview/), grocery list bundled in, available on iOS and Android. It is the standard recommendation for two-parent households that want one calendar both adults can edit.

**[TimeTree](https://timetreeapp.com/intl/en)** is popular for couples and small households. It has a conversation layer alongside the calendar (you can comment on events) that Cozi does not have. Better for households that want to coordinate in the calendar itself rather than switching to iMessage.

**Google Calendar's family group** (free, built into Google accounts) works well if everyone in the household already has a Google account. One click to share a calendar across the family. Each person can have their own calendars and the family calendar layered on top.

Use Calfeed when the job is publishing: [coach publishing team schedule](/learn/for-instructors), school publishing events, [parent publishing custody calendar](/learn/for-parents), instructor publishing class schedule. Use Cozi, TimeTree, or Google Family when the job is household logistics where multiple people need write access.

## Best shared calendar app for each audience

The "best shared calendar app" depends on who is holding the pen.

**Families coordinating household life:** Cozi. It has the widest adoption for this exact use case, free tier is generous, and the grocery list integration is useful. TimeTree if you want in-calendar conversation. Google Calendar family group if you are already deep in Google Workspace.

**Teams in a business context:** Google Workspace shared calendars or Microsoft 365 shared calendars. Both are built into tools most teams already pay for. Better for meeting scheduling and room booking than for publishing a schedule to an outside audience.

**Coaches, instructors, and organizers broadcasting to a group:** Calfeed. The audience does not need to create accounts, join a group, or install an app. They add one link and the season lives in their calendar. Works for [club soccer](/c/example/hockey-practice), [yoga studio class schedules](/c/example/yoga-classes), [school events](/c/example/school-trips), neighborhood pools.

**Parents sharing kid schedules across households:** Calfeed. One parent publishes. The other parent, the grandparent, the babysitter, and the carpool driver all subscribe to the same link. ([Family-activities example.](/c/example/family-activities)) No shared account. No write access disputes. One source of truth that everyone reads in their own calendar app.

## Free shared calendar app options

All of the major options have a free tier. Here is the breakdown.

**Google Calendar** shared calendars are free for any personal Google account. Create a calendar, share the link, and others can subscribe for free. The limitation is that you manage it inside Google Calendar, which is great if you live there but adds friction if the schedule source is text, email, or a coach's PDF.

**TimeTree** is free with optional paid features (ad removal, some business features). For most families, the free version covers everything.

**Calfeed** is [pay as you go](/pricing), with no monthly fee. Build the calendar with no account and no card: the page shows every event, and the first two weeks of the schedule sync to any calendar app. $5, or 1 credit, covers the rest of that schedule for good. For a coach publishing one season, or a parent tracking a few kid calendars, that is the whole cost.

## Apps that share calendars across Apple, Google, and Outlook

A subscribable calendar link works across Apple Calendar, Google Calendar, and Outlook on every device. Any tool that publishes one, including Calfeed, hits all three platforms with one URL. The interoperability question comes up often: what shareable calendar app works across iPhone and Android? What if some subscribers use Outlook?

The answer is a subscribable calendar link, which is a [standard format](https://datatracker.ietf.org/doc/html/rfc5545) (sometimes noted as a webcal or subscription URL) that all three major calendar platforms accept. Apple Calendar, [Google Calendar on Android](https://support.google.com/calendar/answer/37100), Outlook on desktop, and Outlook on the web all support adding a calendar from a URL.

Any tool that publishes a subscription link (including Calfeed) works across all three platforms. The publisher creates the calendar once. iPhone subscribers add it in Apple Calendar. Android subscribers add it in Google Calendar. Outlook users paste the URL into "Add Calendar from Internet." The same link feeds all three. No platform-specific versions, no duplicate work.

The cross-platform case is where publisher-mode apps like Calfeed have a real advantage over all-edit apps. Cozi has its own app. TimeTree has its own app. If your audience is mixed iPhone/Android/desktop, asking everyone to install a new app creates friction. A subscription link does not.

The practical workflow: publish on Calfeed, [send one link](/learn/share-calendar-with-group), let each subscriber add it in whatever calendar app they already have. Done.

### FAQ

**What is the best shared calendar app for families?**

It depends on the job. If everyone in the household needs to add and edit events (shared chores, appointments, date nights), use Cozi or the Google Calendar family group. If one parent publishes the schedule and others just follow it (sports season, school events, custody calendar), Calfeed fits better. Publisher mode keeps one source of truth instead of a free-for-all.

**Is there a free shared calendar app?**

Yes. Google Calendar shared calendars are free for individuals. TimeTree is free with optional paid features. Calfeed is free to build and needs no account, and the first two weeks of a schedule sync free; $5 or 1 credit covers the rest of it permanently. There is no subscription.

**How does Calfeed compare to Cozi or TimeTree?**

Cozi and TimeTree are all-edit apps designed for households. Everyone can add and change events. Calfeed is a publisher-mode app. One person publishes the schedule, the audience subscribes to the link. Different jobs. If your whole family needs to add events to a shared board, use Cozi or TimeTree. If you publish a schedule others follow, use Calfeed.

**Do I need an app to subscribe to a Calfeed calendar?**

No. Subscribers tap the calendar link and it opens directly in Apple Calendar, Google Calendar, or Outlook. No Calfeed account, no download, no signup. The schedule appears in whatever calendar app they already use.

**Can a shared calendar app work across iPhone and Android?**

Yes. A subscribable calendar link works on both platforms. The publisher creates the calendar once. iPhone subscribers add it to Apple Calendar. Android subscribers add it to Google Calendar. Outlook users on desktop add it there. One link, all platforms, no duplicating work.

---

## How calendar subscriptions work

URL: https://calfeed.ai/learn/calendar-subscriptions-explained
Published: 2026-05-15

Why pasting a calendar link into Apple or Google is different from saving a calendar file once.

**TL;DR**

- A calendar subscription is a live link your calendar app re-reads on a schedule.
- A calendar file is a one-time copy. Edits never reach you.
- Apple checks subscriptions about once an hour. Google checks every 12 to 24 hours.
- The link stays the same forever. That is the entire point.

Most people have done both of these things and never noticed the difference.

You clicked "Add to calendar" on an event page. You picked Google. Your calendar opened, the event appeared, and that was it. You imported a calendar file. The event is a copy. If the organizer changes the time tomorrow, your copy will not change.

You opened a sports schedule that ended in `.ics`. You added the link to Apple Calendar. The whole season showed up. A week later you noticed an extra game appear in your calendar by itself. You did not do anything. That is a subscription.

## A subscription is a live link

A calendar subscription is a URL your calendar app re-reads on a schedule (sometimes called a webcal link or webcal feed). The app stores the URL. Every hour or two, it fetches the latest events from that URL and auto-updates what you see. The events on your phone are always whatever the URL says right now.

This is the same idea as following a podcast. You do not download every episode. Your app checks the feed and adds new episodes automatically. A calendar subscription works the same way. (For the exact poll intervals, see [how often Apple and Google refresh subscribed calendars](/learn/ics-refresh-rate-apple-google).)

The link is the product. The events live on the publisher's server, not on your phone.

## An import is a one-time copy

When you import a calendar file, your calendar app reads it once and saves the events directly into your calendar. After that, the file is gone. There is no link to check later.

This is useful for a single event you are confirming. It is the wrong tool for a season, a class schedule, or any list that might change.

The give-away is the question your calendar asks when you click the link. "Add events to your calendar?" means import. "Subscribe to this calendar?" means live link.

## Why publishers care about the difference

If you publish a schedule that changes, imports leave you stuck. You hand out [a CSV](/tools/csv-to-calendar). People add the events. You move one event a week later. You now have to email everyone, hope they see it, and hope they delete the old event and add the new one. Most of them will not.

A subscription removes that work. You edit the event once on the publisher side. Every subscriber's calendar updates the next time their app checks. See [how to share a calendar with a group](/learn/share-calendar-with-group) for the message pattern that gets a 30-person group subscribed in one round.

This is why Calfeed publishes subscribable calendar links by default. The first edit pays for the architecture.

## How often the link gets checked

The refresh rate is controlled by the subscriber's calendar app, not the publisher.

- **Apple Calendar:** about once an hour by default. Users can pick faster or slower. ([Apple's subscribe-in-iCloud guide](https://support.apple.com/en-us/102301) walks through the URL flow.)
- **Google Calendar:** every 12 to 24 hours. There is no user setting to make it faster. ([Google's "Subscribe to someone else's calendar"](https://support.google.com/calendar/answer/37100) covers the From-URL flow.)
- **Outlook / Microsoft 365:** every few hours. ([Microsoft's subscribe guide](https://support.microsoft.com/en-us/office/import-or-subscribe-to-a-calendar-in-outlook-com-or-outlook-on-the-web-cff1429c-5af6-41ec-a5b4-74f2c278e98c) notes updates can take up to 24 hours.)

For most schedules this is fine. For time-sensitive changes (a practice cancelled 30 minutes before start), the subscription will not catch it in time. Send a one-off email or text in addition.

## The link is forever

Once Calfeed gives you a calendar link, that link stays the same. Edit the events all you want. Add events. Remove events. Rename the calendar. The link does not change. (Wondering when to edit the existing calendar vs publish a new one? See [the rule of thumb](/learn/edit-vs-new-calendar).)

This matters because every subscriber on every device is keyed to that link. If the link changed when you edited the calendar, every subscriber would have to re-subscribe. They would not. The audience would dissolve every time you updated the schedule.

The stability is the moat. A calendar with 30 subscribers stays that way through every edit.

## What this means in practice

If you are publishing a schedule for an audience of more than five people, publish it as a subscription. The cost of writing one event into your dashboard is the same as the cost of writing it into your own calendar. The cost of every edit after that drops to zero.

If you are sending one event to one person, an import or a calendar invite is fine.

[Try Calfeed](/) to publish a schedule as a subscribable calendar link, or [test an existing subscription link](/tools/subscribe-link-tester) before you share it. For real examples, see the [yoga studio](/c/example/yoga-classes), [youth hockey team](/c/example/hockey-practice), or [school field-trip](/c/example/school-trips) calendars.

### FAQ

**What is the difference between subscribing and importing?**

Subscribing means your calendar app reads a live link on a schedule. Importing means you save the events once and never see updates.

**How fast do subscribers see edits?**

Apple Calendar usually checks every hour. Google Calendar checks every 12 to 24 hours. Outlook checks on a similar cadence.

**Will the link ever change?**

No. Once Calfeed publishes a calendar link, that link stays the same for the life of the calendar. Subscribers never have to re-subscribe.

---

## How to charge for a calendar subscription

URL: https://calfeed.ai/learn/charge-for-calendar
Published: 2026-05-15

Most creators give the schedule away because they assume it has no price. Here is when a calendar is worth paying for.

**TL;DR**

- The audience pays for predictability, not the events.
- The price ceiling is whatever the alternative costs in time or texts.
- Charge once at the season boundary, not per event.
- One-time pricing beats subscription for most schedules.

Most creators give the calendar away because they assume it has no price. That is the right move for most calendars. For some, it is leaving money on the table.

Here is how to tell the difference.

## What the audience is actually paying for

A schedule is not what people pay for. The events themselves are usually free to read. A public school posts a calendar. A community group posts events. A trainer announces session times. Nobody pays $20 to read a list of times.

People pay for predictability. Knowing that the schedule on their phone is the right schedule, that it will update when something changes (the auto-refresh behavior [Apple Calendar](https://support.apple.com/guide/calendar/subscribe-to-calendars-icl1022/mac) and [Google Calendar](https://support.google.com/calendar/answer/37100) both bake into subscribed feeds), and that they will not be re-typing dates from a text message at 9 PM. That predictability has a price.

The audiences who pay are the ones where the alternative is real labor. [A trainer's audience](/learn/for-instructors) would otherwise be reading 14 different text threads. A school's audience would otherwise be checking three different web pages. [A small program's audience](/learn/for-parents) would otherwise be filling in a personal calendar by hand.

If the alternative is labor, the calendar has a price.

## The ceiling

The price ceiling for a calendar is the cost of the program it describes.

A free community calendar is free. The events are free. Nobody is paying for the program. The calendar follows.

A $400 summer training program can fold a $20 calendar fee into the package or include it for free. Standalone, the calendar is not worth $20 to most parents. Bundled with the program, the calendar is the reason the program runs smoothly. Charge for it or do not, but the price ceiling is set by what people already pay for the program.

A free meetup with a $50 dinner each month can charge for the calendar. Or include it. The dinner is the anchor.

The ceiling is never higher than the underlying program. Usually it is one-tenth or less.

## Pricing patterns that work

Three pricing patterns hold up for calendars: one-time per season, bundled with a paid program, and free with a donation ask. Each matches the bursty rhythm of how calendars actually get used.

**One-time per season.** Charge at the season boundary. Audience pays once, calendar runs for the season, edits during the season are free. This matches the bursty schedule of trainers, leagues, and seasonal organizers.

**Bundled with program.** Calendar is free for paying program members. Non-members do not get the link. This is the most natural fit. Calendar is a member benefit, not a line item. (See the [branded summer-program example](/c/example/summer-skills) for what this looks like in practice.)

**Free, donation-funded.** Calendar is free for everyone. Public-page CTA includes a donation link. Works for community organizers and religious groups.

## Pricing patterns that do not work

Three patterns fail consistently: per-event charges, monthly subscriptions, and per-edit fees. Each fights the underlying behavior of how people use a subscribed calendar.

**Per-event.** Audiences will not pay for a single event subscription. The price of one event is below the friction of paying for it.

**Monthly subscription.** Calendars are bursty. A trainer publishes for 8 weeks then nothing. A monthly bill for 4 months of nothing is a churn machine.

**Per-edit.** Charging the creator per edit makes them avoid editing, which defeats the calendar's purpose. Charging the subscriber per edit makes no sense.

## The Calfeed model

Calfeed charges per calendar, not per month, because most calendars are bursty. A trainer who publishes an 8-week schedule then nothing pays for 1 calendar, not 12 months. Building one is free and the first two weeks of the schedule sync free; $5 or 1 credit covers the rest. Edits during the active window cost nothing. See [when to edit a calendar vs publish a new one](/learn/edit-vs-new-calendar) for how this plays out across seasons.

Calfeed does not yet gate calendars behind a subscriber-paid wall, but it is on the future-features list. The pattern when it lands will be one-time per calendar, paid by the audience to access the link. Same shape as a digital download but for a live [iCalendar feed](https://datatracker.ietf.org/doc/html/rfc5545).

If you charge for calendars today, the pattern that works best is bundled-with-program. Make the calendar the reason the program runs smoothly, not a separate purchase. Most audiences will pay more for a program with an organized calendar than the same program without one, even if the calendar itself is never priced.

[See Calfeed pricing](/pricing) for the credit packs.

### FAQ

**Is paid-calendar a viable business?**

Yes for some niches. Trainers, coaches, and small-program organizers who run paid programs anyway can fold the calendar into the program fee. Standalone paid calendars are harder.

**How much can I charge?**

Less than your audience already pays for the program itself. The calendar is part of the service, not the service. Use it to reduce friction, not to add a line item.

**Does Calfeed handle paid calendars?**

Paid calendars are on the future-features list. For now Calfeed publishes free subscribable links. Paid gating is coming.

---

## When to edit a calendar vs publish a new one

URL: https://calfeed.ai/learn/edit-vs-new-calendar
Published: 2026-05-15

The rule of thumb is simple. Same audience equals same calendar. Different audience equals new calendar.

**TL;DR**

- Edit the existing calendar when the audience stays the same.
- Publish a new calendar when the audience changes.
- Renaming a calendar is fine. Re-sharing is the cost to avoid.
- The link is the moat. Protect it.

Most calendars never face this decision. They get published, run for a season, and stop being relevant. No replacement needed.

Some calendars do face it. [A trainer who runs the same summer program next year](/learn/for-instructors). A school that publishes a new fall schedule. [A team that adds a winter season](/learn/for-parents). Editing the existing calendar or publishing a new one is a small decision with a big downstream effect.

The rule of thumb is one sentence. **Same audience equals same calendar. Different audience equals new calendar.**

## Same audience, same calendar

If the same parents are watching the same kids do the same sport next season, edit the existing calendar.

Open the calendar in the dashboard. Clear the old events. Add the new ones. Save. The feed auto-updates on every subscriber's device on [their next refresh](/learn/ics-refresh-rate-apple-google), whether they are on [Apple Calendar](https://support.apple.com/guide/calendar/subscribe-to-calendars-icl1022/mac) or [Google Calendar](https://support.google.com/calendar/answer/37100). No re-sharing. No "the link changed" message. No churn.

This is the case Calfeed is built for. The first calendar you ever publish should outlive every individual season inside it.

The subscriber count is the asset. [Protect it](/learn/share-calendar-with-group).

## Different audience, new calendar

If the audience is different, publish a separate calendar.

A trainer who runs a summer program and a winter program publishes two calendars, not one. The two audiences overlap but are not identical. Some families do summer only. Some do winter only. Mixing them produces a calendar where every subscriber sees half-irrelevant events.

A school that publishes a calendar for each grade publishes a separate calendar per grade. The parents of a 5th grader and the parents of a 9th grader are different audiences. They should not subscribe to one merged feed.

This is the case where a new calendar wins. Every calendar should have one audience.

## Edit cases that look like new-calendar cases (but are not)

Edit in place when the audience stays the same, even if the schedule looks different. Name changes, schedule-wide time shifts, visual refreshes, and added event types all keep the same audience and belong on the same link.

**Name change.** A "Summer 2026 Training" calendar that should now be called "Year-Round Training" can be renamed in place. The link is unchanged. Subscribers see the new name on the next refresh.

**Time change for the entire schedule.** Every event moves an hour later. Edit in place. The calendar is the same calendar.

**Big visual refresh.** New logo, new brand color, new public-page layout. Edit in place. The chrome can change. The link cannot. The [iCalendar feed format (RFC 5545)](https://datatracker.ietf.org/doc/html/rfc5545) lets you swap event content underneath a stable URL.

**Adding a new event type.** Adding game days to a calendar that previously only had practices. Same audience. Edit in place.

## Cases where a new calendar wins

Publish a new calendar when the audience splits, the visibility scope flips, or the buyer changes. Each of these breaks the "same audience" rule even when the schedule itself feels like a continuation.

**Splitting one audience into two.** "I had one program, now I have a beginner group and an advanced group." Make a new calendar for each group. Email both audiences with their new links.

**Going from private to public** (or back). A calendar that was previously shared inside one family now needs to be visible to a broader audience, or vice versa. The audience boundary changed. New calendar.

**Selling to a different organization.** The original audience has nothing to do with the new audience. New calendar.

## The cost of getting it wrong

Publishing a new calendar when an edit would do means re-sharing. Re-sharing means subscribers do nothing or unsubscribe. The audience count resets to zero. Every viral coefficient and every share-message reply lands you back where you started.

Editing in place when a new calendar would be cleaner is a lower-cost mistake. Subscribers see a slightly weird feed for a season. Audience does not churn.

When in doubt, edit.

[Edit an existing calendar](/) and watch the refresh land. A new calendar is free to build, with its first two weeks syncing free; $5 or 1 credit covers the whole schedule. See [pricing](/pricing).

### FAQ

**Can I rename a calendar without breaking subscribers?**

Yes. The link stays the same. Subscribers see the new name on their next refresh. No re-sharing needed.

**What if the schedule is completely different next season?**

If the same audience cares, edit the existing calendar. If a different audience cares, publish a new one.

**Is there a limit to how many edits I can make?**

No structural limit. Edit as much as you want. Each edit pushes to subscribers on their next refresh.

---

## How often Google and Apple Calendar update subscribed calendars

URL: https://calfeed.ai/learn/ics-refresh-rate-apple-google
Published: 2026-05-15

Google Calendar updates subscribed calendars every 12 to 24 hours. Apple checks about hourly, Outlook 1 to 4 hours. How to get urgent changes through faster.

**TL;DR**

- Apple Calendar checks subscribed feeds about once an hour.
- Google Calendar checks every 12 to 24 hours. There is no faster setting.
- Outlook and Microsoft 365 are in the 1 to 4 hour range.
- For changes that must reach subscribers in the next 30 minutes, send a text or email too.

## At a glance

| Platform | Refresh interval | Source |
|---|---|---|
| Apple Calendar (iOS, iPadOS, macOS) | About once per hour by default; user-configurable from 5 minutes to never | [Apple Support](https://support.apple.com/en-us/102301) |
| Google Calendar | 12 to 24 hours; no faster setting for user or publisher | [Google Workspace](https://support.google.com/calendar/answer/37100) |
| Outlook / Microsoft 365 | 1 to 4 hours typical; up to 24 hours worst case | [Microsoft Support](https://support.microsoft.com/en-us/office/import-or-subscribe-to-a-calendar-in-outlook-com-or-outlook-on-the-web-cff1429c-5af6-41ec-a5b4-74f2c278e98c) |

[Subscribed calendars](/learn/calendar-subscriptions-explained) do not get pushed. The subscriber's calendar app pulls. The poll interval between pulls is set by the app, not the publisher.

Here is what each major app actually does.

## Apple Calendar (iOS, iPadOS, macOS)

Apple Calendar checks subscribed feeds about once an hour by default. The user can change it to 5 minutes, 15 minutes, hourly, daily, weekly, or never. Most users leave it on hourly. ([Apple's own subscribe-in-iCloud doc](https://support.apple.com/en-us/102301) walks through the URL flow per device.)

This is the fastest of the major calendar apps. For a typical weekly schedule, Apple subscribers see every edit within 60 minutes.

There is no setting for the publisher to make the refresh faster. The cadence is per-subscriber, per-device.

## Google Calendar

Google Calendar checks subscribed feeds every 12 to 24 hours. There is no user setting to make it faster. There is no publisher setting either. ([Google's own subscribe-to-a-calendar guide](https://support.google.com/calendar/answer/37100) covers the From-URL flow without exposing a refresh control.)

This is the cadence that surprises new publishers. An event added on Monday afternoon may not appear in Google subscribers' calendars until Tuesday morning. For most schedules this is fine because the next event is still days away. For last-minute changes it is not fine.

Google does this to limit how often its servers poll third-party feeds. There is no way around the poll cadence.

## Outlook and Microsoft 365

Outlook on the web and Microsoft 365 sit in the middle. Refresh happens every 1 to 4 hours, depending on the account type and load. ([Microsoft's subscribe-or-import guide](https://support.microsoft.com/en-us/office/import-or-subscribe-to-a-calendar-in-outlook-com-or-outlook-on-the-web-cff1429c-5af6-41ec-a5b4-74f2c278e98c) notes updates can take up to 24 hours in the worst case.)

Outlook desktop is similar but can be slower if the app is closed.

## What this means for publishers

Publishers should plan around the slowest subscriber, which is Google at 12 to 24 hours. Anything added days ahead reaches every app in time. Anything inside 24 hours needs a backup channel.

For a normal weekly schedule, the polling cadence is invisible. You add events days or weeks in advance. Everyone sees them well before they happen.

For edits inside the next 24 hours, the cadence matters. A practice cancellation announced 30 minutes before start time will reach Apple subscribers in time but will not reach Google subscribers in time. For those cases, send a one-off email or text too. See [how to share a calendar with a group](/learn/share-calendar-with-group) for when to use the calendar vs the emergency channel.

Calfeed will eventually add an out-of-band notification path so a single edit can fire both the feed update and an email blast to subscribers who opted in. Until then, treat the calendar as the source of truth and the text message as the emergency channel.

## What subscribers can do

Subscribers on Google cannot speed up their own polling. The setting does not exist.

Subscribers on Apple can drop their refresh interval to 5 or 15 minutes for a specific calendar. Right-click the calendar in the sidebar, pick "Get Info", change "Auto-refresh".

For most groups, hourly is fine. For one urgent calendar, ask Apple subscribers to set it to 15 minutes.

[Test a subscription link](/tools/subscribe-link-tester) before you share it.

### FAQ

**Why can Google not check more often?**

Google polls subscribed calendars on its own schedule. There is no user-facing or publisher-facing setting to make it faster. Most calendar platforms work this way to limit load.

**Does setting a shorter refresh in Apple Calendar actually work?**

Yes. Apple lets the subscriber pick 5 minutes, 15 minutes, hourly, daily, weekly, or never. Most subscribers leave it on hourly.

**Can Calfeed push updates instantly?**

No tool can. Push-style updates are not part of the calendar subscription protocol. The polling cadence is set by the subscriber app.

**How do I force Google Calendar to refresh a subscribed calendar?**

You cannot force it from inside Google Calendar. There is no refresh button and no interval setting for subscribed calendars, so the 12 to 24 hour poll stands. The one reliable workaround is to remove the subscription and add the link again, which pulls a fresh copy immediately. For a change subscribers need in the next 30 minutes, send a text or email alongside the edit.

**How often does Google Calendar sync?**

Two different things get called sync. A Google account's own calendars sync to the Google Calendar app within seconds to a couple of minutes. A calendar you subscribed to by link is not synced, it is polled, and Google polls every 12 to 24 hours. The gap between those two behaviours is what most "my calendar is not updating" reports turn out to be.

**How often does Apple Calendar refresh?**

About once an hour by default, and the subscriber can change it. On iPhone, Settings, Apps, Calendar, Accounts, Subscribed Calendars, pick the calendar, then Refresh Calendars, with options from every 5 minutes to never. On Mac it is Calendar, Settings, Accounts, Refresh Calendars. It is a per-subscriber setting, so the publisher cannot set it for everyone.

---

## RRULE explained: syntax, examples, and common patterns

URL: https://calfeed.ai/learn/rrule-explained
Published: 2026-05-15

The RRULE format in plain English, with copy-paste strings for common patterns: every Monday, first Monday of the month (BYDAY=1MO), every two weeks (INTERVAL=2).

**TL;DR**

- RRULE is the recurring-event format every calendar app understands.
- Three parts do most of the work FREQ, INTERVAL, and BYDAY.
- UNTIL ends the series. EXDATE skips specific dates.
- Calfeed writes RRULE for you. Read this to understand what it is doing.

Recurring events are the reason [calendar files](/learn/calendar-subscriptions-explained) are not just lists of dates. A weekly piano lesson is not 40 separate events. It is one event with a rule that says "repeat every week on Mondays at 4 PM until June."

That rule lives on one line in a calendar file. The line is called an RRULE, and the full grammar is defined in [RFC 5545, the iCalendar standard](https://datatracker.ietf.org/doc/html/rfc5545). Reading one is harder than writing one. Here is the whole grammar.

## The shape of an RRULE

An RRULE is a single line that describes a repeat pattern using two or three key-value pairs. A simple weekly rule has FREQ, BYDAY, and an end condition. Here is one.

```
RRULE:FREQ=WEEKLY;BYDAY=MO;UNTIL=20260601T000000Z
```

Three parts. Each part is a key, an equal sign, and a value. Parts are separated by semicolons.

Read it left to right. FREQ is "how often". BYDAY is "which days of the week". UNTIL is "when to stop". That rule says "every week, on Mondays, until June 1, 2026."

## FREQ

FREQ is the only required field. It controls the unit of recurrence.

- `FREQ=DAILY` is every day
- `FREQ=WEEKLY` is every week
- `FREQ=MONTHLY` is every month
- `FREQ=YEARLY` is every year

Most schedules are WEEKLY. A weekly class, a weekly meeting, a weekly practice. The other three are less common but work the same way.

## INTERVAL

INTERVAL controls "how many of the unit". The default is 1.

- `FREQ=WEEKLY;INTERVAL=2` is every other week
- `FREQ=MONTHLY;INTERVAL=3` is every quarter
- `FREQ=DAILY;INTERVAL=14` is every two weeks expressed as days

Drop INTERVAL if it is 1.

## BYDAY

BYDAY pins the recurrence to specific weekdays. Days are two-letter codes.

- `MO TU WE TH FR SA SU`

A typical weekly schedule uses BYDAY with two or three days.

- `FREQ=WEEKLY;BYDAY=TU,TH` is every Tuesday and Thursday
- `FREQ=WEEKLY;BYDAY=MO,WE,FR` is Mondays, Wednesdays, Fridays

For monthly rules, BYDAY can include a position. `1MO` is "first Monday of the month". `-1FR` is "last Friday".

- `FREQ=MONTHLY;BYDAY=1MO` is the first Monday of every month
- `FREQ=MONTHLY;BYDAY=-1FR` is the last Friday of every month

## UNTIL and COUNT

UNTIL is "stop on this date". COUNT is "stop after this many events". You use one or the other, not both.

- `UNTIL=20260731T000000Z` stops on July 31, 2026
- `COUNT=10` stops after 10 occurrences

UNTIL uses the iCalendar timestamp format. Year, month, day, "T", hours, minutes, seconds, "Z" for UTC. The "Z" is what trips people up. Calendar apps convert it back to local time.

If you skip both UNTIL and COUNT, the rule repeats forever. Avoid that. Audiences with forever-events in their calendar do not love it.

## EXDATE

EXDATE is "skip this specific date". It lives on a separate line, not inside the RRULE. ([RFC 5545 §3.8.5.1](https://datatracker.ietf.org/doc/html/rfc5545#section-3.8.5.1) defines the exception-date property.)

```
RRULE:FREQ=WEEKLY;BYDAY=TU,TH;UNTIL=20260731T000000Z
EXDATE:20260630T120000Z,20260702T120000Z
```

This is the "every Tuesday and Thursday except the week of July 4" pattern. You write the rule once, then list the exceptions.

## What Calfeed does for you

[Calfeed reads sentences](/tools/text-to-calendar) like "every Tuesday and Thursday from 11:45 to 12:45, June 9 through July 31, except the week of July 4" and writes the rule above. You stay in plain English. The compiled RRULE lives in the calendar file Calfeed publishes.

If you [edit the rule later](/learn/edit-vs-new-calendar) (move the end date, add a day, skip a different week), Calfeed rewrites the RRULE for you. You never type the syntax.

Read this once and you will understand what is in your calendar file. You do not need to write it.

Try the [RRULE generator](/tools/rrule-builder).

### FAQ

**Is RRULE the same as iCalendar?**

RRULE is one part of the iCalendar format. iCalendar is the file format. RRULE is the line inside it that describes a recurring event.

**Can RRULE handle "every Tuesday and Thursday except holidays"?**

Yes. Use BYDAY for the days and EXDATE for the holidays you want to skip.

**Why does the time zone show up at the end?**

Recurring rules need a starting point that is not ambiguous. The Z at the end of an UNTIL value means UTC. Apps convert it back to local time for display.

---

## How to share a calendar with a group

URL: https://calfeed.ai/learn/share-calendar-with-group
Published: 2026-05-15

Group calendar pattern for organizers: publish one link, 30 people subscribe, edit once, everyone sees it. PTA, clubs, congregations, volunteer rotations.

**TL;DR**

- Send one link, not 30 invites.
- Use a subscription, not a file.
- Add a sync-help page for less technical members.
- Stop messaging the group every time you edit. The feed handles it.

A group of 30 people is large enough that broadcasting matters. The way you [share the calendar](/learn/calendar-subscriptions-explained) determines whether the next edit reaches everyone or not.

Here is the pattern that works.

## A group calendar app for organizers

A group calendar app has to do one job well: keep 30+ people looking at the same schedule without each of them re-opening a chat thread to find the latest version. The classic apps (Outlook group calendars, SharePoint, Google group calendars) lean on shared write access. That works for small teams. It falls apart at 30+ where you do not want 30 people editing.

Calfeed flips the model. One person publishes the schedule. The group subscribes to a single link. Edits happen once on the publisher's side and the calendar auto-updates on every subscriber's device. No write access to share, no permissions to manage, no one wondering whose version is current.

## Common groups that use the pattern

Four group shapes use this pattern most: PTAs and schools, religious congregations, clubs and social communities, and volunteer rotations. The mechanics are identical. The intro message you send is the only thing that changes.

**PTA and school groups.** Picture day, fundraisers, parent-teacher conferences, board meetings. Publish the year's schedule once at the start of the term. Send the link in the welcome email. Edits replace last-minute group emails.

**Religious congregations.** Service times, holidays, study groups, special events. The schedule changes seasonally (Lent, Ramadan, High Holy Days, Advent) and weekly (sermon series, guest speakers). One published calendar covers a whole congregation. Send the link with the membership packet. For the church year itself, there are ready-made [liturgical calendars to subscribe to](/templates/liturgical-calendar), including [Catholic](/templates/catholic-liturgical-calendar) and [Orthodox](/templates/orthodox-liturgical-calendar) versions.

**Clubs, hobby groups, social communities.** Book clubs, run clubs, dinner clubs, hobby meetups. The group has a rhythm. The calendar holds the rhythm. Members add it once and stop missing meetings.

**Volunteer and duty rotations.** On-call shifts, classroom helpers, hospitality rotations, carpool drivers. A subscribable rotation calendar means each volunteer sees their own dates next to everything else on their personal calendar. No more "wait, is it my week?"

## Step 1: Publish a subscription, not a file

Publish the calendar as a subscribable link, not a one-time download. This is the only decision that matters long term, because a subscription stays current and a download freezes the day it leaves your hands.

A subscription is a URL the calendar app re-reads on a schedule, built on the [iCalendar standard (RFC 5545)](https://datatracker.ietf.org/doc/html/rfc5545) that every major calendar app supports. A download is a copy that never updates. The first time you edit an event, the difference shows up. Subscribers see the new version automatically. People who downloaded a file are stuck with the old one.

[Calfeed](/) publishes subscriptions by default. Skip any tool that hands you a single download.

## Step 2: Send one link

Send the calendar link once. To everyone. In one message.

The message is short. Three sentences.

> "Here is the schedule as a subscribable calendar. Tap the link and pick your calendar app to add it. Every change I make later will show up on your calendar on its own."

That is the entire message. Do not attach a PDF too. Do not write out every event in the body. The link replaces both.

## Step 3: Include a sync-help page

About 20% of any 30-person group will not know how to subscribe to a calendar. They will tap the link, see an unfamiliar screen, and either bail or save it to the wrong place.

Send a one-paragraph sync-help message after the link. Or link to a help page. Calfeed includes a sync-help surface on every public calendar page that walks subscribers through the steps for Apple, Google, and Outlook.

The goal is zero "I cannot add this" replies.

## Step 4: Stop messaging on edits

The biggest mistake group organizers make is announcing every calendar edit in the group chat.

You do not have to. The whole reason you used a subscription was so the edits push themselves. Every time you announce a change, you train the group to ignore the calendar and watch the chat instead. The calendar becomes redundant.

Reserve announcements for changes that are time-sensitive within the next 24 hours. For everything else, edit silently. [Apple subscribers](https://support.apple.com/guide/calendar/subscribe-to-calendars-icl1022/mac) will see the change within an hour. [Google subscribers](https://support.google.com/calendar/answer/37100) within a day. ([Full refresh-cadence breakdown.](/learn/ics-refresh-rate-apple-google)) That is fast enough for nearly every weekly schedule.

## Step 5: Watch the subscriber count

Calfeed shows you how many devices have subscribed to each calendar. The number tells you whether your share message worked.

If the count is below 50% of the group size two days after sending the link, your message did not land. Resend with a sync-help reminder. Pin the message. If the count is still low, the group does not trust the format. Send the chronological list once and try again next season.

If the count is above 80%, the format is working. Do not re-share. The link is the same forever.

[Make a calendar](/) and try it on one group. For audience-specific patterns, see [coaches and instructors](/learn/for-instructors) or [parents sharing kid schedules](/learn/for-parents).

### Steps

1. **Publish a subscription, not a file**: Publish the calendar as a subscribable link, not a one-time download. A subscription is a URL the calendar app re-reads on a schedule. A download is a copy that never updates. Calfeed publishes subscriptions by default.
2. **Send one link**: Send the calendar link once, to everyone, in one message. Keep the message short. Do not attach a PDF or write out every event in the body. The link replaces both.
3. **Include a sync-help page**: About 20% of any 30-person group will not know how to subscribe to a calendar. Send a one-paragraph sync-help message after the link, or link to a help page. Calfeed includes a sync-help surface on every public calendar page.
4. **Stop messaging on edits**: The whole reason you used a subscription was so edits push themselves. Reserve announcements for time-sensitive changes within 24 hours. Edit silently for everything else.
5. **Watch the subscriber count**: Calfeed shows how many devices have subscribed to each calendar. If the count is below 50% of the group two days after sending, your share message did not land. If it is above 80%, do not re-share.

### FAQ

**Should I email or text the link?**

Either works. Text gets higher open rates for small groups. Email is better when you want a record of who got the link.

**What if someone is using Outlook instead of Apple or Google?**

A subscribable calendar link works in Outlook the same as it does in Apple and Google. The button to add it is in a slightly different place in each app.

**How do I know who subscribed?**

You see total subscriber count per calendar in the Calfeed dashboard. Calendars do not surface individual identities. That is a calendar-protocol limitation, not a Calfeed limitation.

---

# Tools

## Text to Calendar Converter (Free iCal Maker)

URL: https://calfeed.ai/tools/text-to-calendar

Paste a schedule in plain English. Calfeed turns it into an iCal feed and shareable calendar link. Includes ICS export and a recurring-event maker.

An iCal maker that takes plain English. Type the schedule the way you would say it, Calfeed builds the calendar.

[Trainers](/learn/for-instructors), organizers, and [parents](/learn/for-parents) have schedules that live in text messages, emails, [PDFs](/tools/pdf-to-calendar), and [photos](/tools/image-to-calendar) of printed rosters. Re-typing each event into a calendar app one at a time is a tax. Calfeed removes the tax.

Paste a paragraph like "Group 1 on Tuesdays and Thursdays from 11:45 to 12:45, June 9 through July 31, no class the week of July 4." Calfeed reads it, finds the dates, builds the events, and publishes a [subscribable calendar link](/learn/calendar-subscriptions-explained). The recurring pattern compiles to an [RRULE](/learn/rrule-explained) the calendar app understands. Rotating shifts? The [shift calendar maker](/tools/shift-schedule-to-calendar) has 2-2-3, DuPont, and Pitman presets.

Add it once to Apple, Google, or Outlook and it stays current: edit once and it updates on its own, wherever it's been added. The link never changes, so share it with anyone who needs to subscribe too. Apple checks hourly, Google every 12 to 24 hours ([details](/learn/ics-refresh-rate-apple-google)).

---

## CSV to iCal Converter (CSV to ICS Calendar)

URL: https://calfeed.ai/tools/csv-to-calendar

Free CSV to iCal converter. Drop a spreadsheet, Calfeed maps the columns and builds a calendar link for Apple, Google, and Outlook. The first two weeks are free; $5 covers the whole schedule.

Convert CSV to iCal. Drop the spreadsheet, Calfeed maps the columns.

Spreadsheets are how most people already track events. Calfeed reads any sensible CSV: date or start date, end date or time, title, location, and notes. For free-form text instead, see the [plain-text to calendar tool](/tools/text-to-calendar).

Calfeed handles the messy parts. Mixed date formats. Multi-day rows. Time zones implied from a location column. You do not need to clean the file first.

The output is a [subscribable calendar link](/learn/calendar-subscriptions-explained). Add it once to Apple, Google, or Outlook and it stays current: edit a row in the dashboard later and it updates on its own [the next time the calendar app checks](/learn/ics-refresh-rate-apple-google). For getting the link onto 30 phones in one round, see [how to share a calendar with a group](/learn/share-calendar-with-group).

---

## Google Sheets to Calendar Converter

URL: https://calfeed.ai/tools/google-sheets-to-calendar

Turn a Google Sheet into a calendar link. Export the sheet, drop it in, and Calfeed maps the columns into a calendar for Apple, Google, and Outlook.

Export the sheet. Calfeed maps the columns and builds the calendar.

A lot of schedules already live in a spreadsheet: practice dates, shift rosters, class times, content plans. People keep the sheet current, then re-type every row into a calendar by hand. Download the sheet as a CSV (File, Download, Comma-separated values) and Calfeed reads it instead. Got a raw CSV exported by another app? The [CSV to calendar tool](/tools/csv-to-calendar) does the same job.

Calfeed handles the messy parts. Mixed date formats, multi-day rows, a time zone implied by a location column. You do not need to clean the sheet first.

The output is a [subscribable calendar link](/learn/calendar-subscriptions-explained). Add it once to Apple, Google, or Outlook and it stays current: when the schedule changes, edit it in the dashboard and it updates on its own [the next time the calendar app checks](/learn/ics-refresh-rate-apple-google). No re-sending, no second export.

---

## Photo to Calendar Converter (Image or Picture to Calendar)

URL: https://calfeed.ai/tools/image-to-calendar

Turn a photo or image of a schedule into calendar events. Works with screenshots, pictures of posters, flyers, and printed rosters. Free to run, no account needed.

Snap or screenshot a schedule. Calfeed reads the photo and builds the calendar.

Most schedules arrive as a picture: a screenshot of a group chat, a photo of a printed practice sheet, a poster on a wall. Re-typing every line into a calendar app is the tax Calfeed removes.

Upload the photo or screenshot. Calfeed reads the dates, times, and titles straight off the picture and turns them into events. Mixed formats, handwriting-style fonts, and multi-column layouts are fine.

Out comes a [calendar link](/learn/share-calendar-with-group) anyone adds to Apple, Google, or Outlook. It is free to build and the first two weeks of the schedule sync straight away; $5, or 1 credit, covers the rest of it for good.

---

## PDF to Calendar Converter

URL: https://calfeed.ai/tools/pdf-to-calendar

Turn a PDF schedule into a calendar link. Upload a season schedule, school calendar, agenda, or exported timetable and Calfeed builds it. Free to run, no account needed.

Upload a PDF schedule. Calfeed reads it and builds the calendar.

Season schedules, school-year calendars, conference agendas, class timetables. They almost always arrive as a PDF that nobody can subscribe to, so people copy each date by hand. Calfeed reads the PDF and does it for you.

Upload the file (up to 20 pages). Calfeed turns the rows, grids, and date ranges into events, exceptions and all. Word doc or webpage? Print it to PDF first, then upload.

Out comes a [calendar link](/learn/share-calendar-with-group) the whole audience subscribes to once, in Apple, Google, or Outlook. Free to build, with the first two weeks of the schedule syncing right away; $5, or 1 credit, covers the rest for good.

---

## Syllabus to Calendar Converter

URL: https://calfeed.ai/tools/syllabus-to-calendar

Turn a class schedule or syllabus into a calendar. Upload the PDF or paste the weekly times and due dates, and Calfeed builds recurring lectures and deadlines for Google Calendar.

Upload the syllabus or paste it. Calfeed reads the class times and due dates.

A syllabus buries the schedule in prose: lectures on these days, labs on those, midterms and assignments scattered across the term. Most students copy each date into a calendar by hand at the start of every semester. Paste the text and Calfeed reads the recurring class times and the one-off deadlines for you. Upload the file directly if it is a PDF or a photo, or paste the text.

Calfeed handles weekly patterns and the exceptions: a Monday lecture that skips a holiday, a lab that meets every other week, a paper due on one date only.

Add the [calendar link](/learn/calendar-subscriptions-explained) to your phone and it stays with you all term. Share the same link with a study group so everyone tracks the same due dates.

No syllabus to hand yet? The [class schedule template](/templates/class-schedule) and the [school year calendar template](/templates/school-year-calendar) start from a blank week you can edit.

---

## Email to Calendar Converter

URL: https://calfeed.ai/tools/email-to-calendar

Paste an email with a schedule in it. Calfeed reads the dates and times and builds a subscribable calendar link you add to Apple, Google, or Outlook.

Paste the email. Calfeed reads the dates and times and builds the calendar for you.

Coaches, teachers, and organizers send schedules as emails: a season of practices, a camp's daily sessions, a run of class dates. Re-typing each one into a calendar app is a tax. Calfeed removes the tax.

Paste the whole email. Calfeed reads it, cross-references the day-of-week rules against the listed dates, builds every event, and publishes a [subscribable calendar link](/learn/calendar-subscriptions-explained). A two-month schedule with 21 sessions comes out as 21 events, not two.

Using Gmail or Gemini and it only added some of the events? That is a known limit. Here is [why assistants miss schedule events](/gmail-add-to-calendar) and how to get all of them. Add the Calfeed link once to Apple, Google, or Outlook and it stays current; every later edit updates it on its own, and you can share the same link with anyone who needs it.

---

## Schedule Conflict Checker for Calendars

URL: https://calfeed.ai/tools/schedule-validator

Schedule conflict checker. Spot overlapping events, gaps, and bad dates before they go out. Validate your calendar feed in seconds.

Catch the conflicts before you share it.

Most schedule mistakes are quiet. A double-booked time slot. A 3:00 PM that should be 3:00 AM. A date in the wrong year. Calfeed scans for these as you build the calendar. Works with input from the [plain-text](/tools/text-to-calendar) and [CSV](/tools/csv-to-calendar) tools.

You see flagged events in the dashboard before publishing. Fix them in place. Republish without re-sharing the link. See [when to edit vs publish a new calendar](/learn/edit-vs-new-calendar) for the longer-term rule.

The broken version never goes out. The feed stays stable for [the people who depend on it](/learn/share-calendar-with-group).

---

## Merge Calendars into One Feed (Free Calendar Merger)

URL: https://calfeed.ai/tools/merge-calendars

Merge several calendar feeds into one link that stays in sync. Paste each source, Calfeed labels it, and republishes the combined calendar every hour.

A calendar merger that keeps working. One subscribe link, built from every feed you add, re-synced hourly.

One service reads several calendar feeds and serves them back as a single link. Calfeed does this by reading every feed you paste in. The result is [one combined link](/learn/calendar-subscriptions-explained), refreshed every hour.

It works no matter where a feed comes from: Google Calendar, Outlook, Apple Calendar, a league site, a team app, anything that publishes a calendar feed link. Each source keeps its own label, shown as a colored chip on every event, so a reader can tell a practice from a game without opening anything. Add an optional rule per source, like "only practices, drop games," and Calfeed applies it every time that source changes.

One link serves every source calendar you add, not one link per team. Downstream, [Apple checks it roughly every hour, Google every 12 to 24 hours](/learn/ics-refresh-rate-apple-google), so the merge shows up on each app's own schedule. Manual events sit on the same calendar too: add a one-off directly and it stays next to everything pulled in from a source. [Test the merged link](/tools/subscribe-link-tester) before sending it out.

Coaches combining [ArbiterSports](/learn/arbiter-schedule-to-calendar) or [EventLink](/learn/eventlink-calendar-feed) team feeds use the same paste-in flow. So does anyone merging [Outlook calendars](/learn/merge-outlook-calendars) or [Google and Apple](/learn/merge-google-and-apple-calendar) calendars. Merging feeds privately instead of publishing them? See how Calfeed compares to [MergeCal](/vs-mergecal).

---

## RRULE Generator, Validator, and Editor in Plain English

URL: https://calfeed.ai/tools/rrule-builder

Free online RRULE generator. Describe a repeat in plain English, get a valid iCalendar recurrence rule back, check it against your dates, and edit it in words instead of syntax.

Skip the RRULE syntax. Describe the pattern in words.

[RRULE](/learn/rrule-explained) is the recurring-event format every calendar app understands. It is also dense. "FREQ=WEEKLY;BYDAY=TU,TH;UNTIL=20260731T000000Z" is what "every Tuesday and Thursday until July 31" actually compiles to.

Calfeed lets you stay on the left side of that equal sign. Describe the repeat the way it shows up in your head. Calfeed builds the rule and adds the events. For free-form schedules with mixed recurrence, the [plain-text to calendar tool](/tools/text-to-calendar) handles it end to end.

It works as an online RRULE editor and validator too. Paste a rule you already have, see the dates it actually produces, and catch the ones that silently generate nothing (a BYDAY that never lands inside the range, an UNTIL in the past). Reading the expanded dates is faster than re-reading the syntax.

Edit the words later, not the syntax. Calfeed regenerates the rule for you. See [when to edit vs publish a new calendar](/learn/edit-vs-new-calendar) for the rule of thumb across seasons.

**Example**

Input: Every Tuesday and Thursday until July 31, except the week of July 4.

Output: Recurring rule plus an exclusion for June 30 and July 2.

---

## Test a Calendar Subscription Link

URL: https://calfeed.ai/tools/subscribe-link-tester

Test a calendar subscription link before sharing. Calfeed checks that the link loads, events render, and time zones display in Apple, Google, Outlook.

Confirm the link works before you share it with 30 people.

A [calendar link](/learn/calendar-subscriptions-explained) that does not load is a silent failure. The creator does not see the error. Anyone who added it sees an empty calendar or no events at all.

Calfeed tests every link you publish. Loadable. Valid events. Correct time zones. Refreshable. You see green before you share it. Handy if you publish from the [plain-text](/tools/text-to-calendar) or [merge-calendars](/tools/merge-calendars) tools.

Anyone who added it sees a calendar that works on day one. You see fewer support questions. For getting the link onto 30 phones cleanly, see [how to share a calendar with a group](/learn/share-calendar-with-group).

---

## Calendar Change Notifications

URL: https://calfeed.ai/tools/calendar-change-alerts

Keep a group updated when a schedule changes. Publish a calendar others can subscribe to, edit it once, and their own calendar reminders carry the new times.

Edit the schedule once. Everyone who added it gets the new times.

The hard part of a changing schedule is not the first send, it is the tenth. A practice moves, a room changes, a date slips, and someone has to text 30 people and hope it lands. Most people reach for group texts or a fresh email each time.

A subscribed calendar changes the loop. People add the [calendar link](/learn/calendar-subscriptions-explained) once. When you edit a time in the dashboard, their calendar app picks up the change on its next refresh, and the reminders they already set fire on the new time. You update one place instead of messaging everyone.

One honest limit: a subscribed calendar is not an instant push. Apple checks roughly hourly, Google every several hours, so [refresh timing varies by app](/learn/ics-refresh-rate-apple-google). For a same-day cancellation, still send a direct message. For everything that changes days ahead, the calendar carries it on its own.

---

## Shift Schedule Generator: 2-2-3, DuPont, Pitman

URL: https://calfeed.ai/tools/shift-schedule-to-calendar

Free shift schedule generator. Turn a 2-2-3, DuPont, Pitman, or 4-on-4-off rotation into a calendar link. Add it once, edit when the rotation changes.

Turn a rotating shift into a subscribable calendar link. Add it once to Apple, Google, or Outlook and it stays current: edit when the rotation changes and it updates on its own, wherever it's been added.

A rotating work schedule never fits the weekly repeat in a calendar app. A 2-2-3 flips every week. DuPont runs a 28-day cycle. Nurses, EMTs, dispatchers, and plant crews end up typing every shift by hand, then re-typing when the rotation resets.

Describe the rotation in plain words instead, or tap a preset below and edit the dates and times. Calfeed builds out months of shifts in one pass, overnights included.

The pattern names: 2-2-3 means work 2, off 2, work 3, flipping each week. Pitman runs the same family on a fixed two-week cycle. DuPont rotates days and nights across 4 weeks with a full week off. 4-on-4-off is exactly what it says.

The part no shift app does: publish the result as a [calendar link](/learn/share-calendar-with-group). A spouse or roommate subscribes once and sees every swap, pickup, and schedule change on their own phone. Prefer a head start? The [schedule templates](/templates) have 2-2-3, DuPont, Pitman, and 48/96 pre-written.

---

## Shift Rotation Calendar Generator: Free Rota & Roster Maker

URL: https://calfeed.ai/tools/shift-rotation-generator

Free rota generator for named rotations (DuPont, Pitman, Panama, 4-on-4-off, Kelly, 48/96, 24/48). Set start date, timezone, and shift hours, and publish a calendar link to subscribe to.

Pick your rotation, set your start date and timezone, and get a subscribable calendar link in seconds.

Named shift rotations repeat on cycles that no calendar app can express with a weekly rule: DuPont runs 28 days, Kelly runs 9, 48/96 runs 6. This generator knows each pattern. Choose yours, set the date your current cycle starts, and it builds every shift out to next year.

Everything is keyed to your inputs. Set your own timezone so the times are right where you are, and set your crew's start date so the on and off days line up with your roster. Day, night, and 24-hour start times are editable if your department runs off-standard hours.

The preview updates as you type. When it matches your posted schedule, publish, and the result is a calendar link. Subscribe on your phone, send the same link home, and every shift and every stretch of days off shows up for the whole household.

Same tool, different name depending on where you work: it's a rota generator or rota calculator in the UK and Ireland, and a shift roster generator in Australia and New Zealand. Whatever the posted sheet is called, the output is the same subscribable calendar link, free to build and share for its first two weeks.

Prefer a pre-written starting point? The [Panama schedule template](/templates/panama-schedule) and [Pitman schedule template](/templates/pitman-schedule) come with the full rotation already described. Need a one-off or an irregular pattern instead? The shift schedule maker turns a plain-text description into the same kind of calendar link.
