Title, location, date and time, time zone, repeat, invitees, alerts, and notes — then download the .ics file or open it straight in your calendar. You can also paste a schedule or attach a document or photo to make several events at once.

How do I make a calendar event repeat every week or every month?

A repeat is one line in the .ics file: RRULE:FREQ=WEEKLY, with INTERVAL for every second or third period and COUNT or UNTIL to end the series. ICS Maker's form sets the frequency (daily, weekly, monthly, yearly), the interval, and whether the series never ends, stops after a number of occurrences, or runs to a date — and writes the RRULE into the downloaded file, which the reading calendar expands itself, so a series of any length stays one small file. Choosing a particular day is not in the form and is a one-line edit to the file: FREQ=MONTHLY;BYMONTHDAY=-1 for the last day of the month, BYDAY=1MO for the first Monday, BYDAY=MO,TU,WE,TH,FR for weekdays only. This page lists twelve such rules to paste.

The rule inside the file

A repeat is one line: RRULE:FREQ=WEEKLY. Calendars read it and generate the occurrences themselves, which is why a repeating event stays one small file no matter how long it runs. The rule can also carry an interval (INTERVAL=2 for fortnightly), an end date (UNTIL), or a limit (COUNT).

The builder writes all of it. Pick a frequency, set the interval — every 2 weeks, every 3 months — and choose whether the series never ends, stops after a number of occurrences, or runs until a date. The line it produces is standard, so the calendar that opens the file creates exactly the series described.

Repeat rules you can paste

The form covers frequency, interval, and how the series ends. Picking a particular day — the last day of the month, the first Monday, weekdays only — is a one-line edit to the file after you download it: open it in a text editor and replace the RRULE: line with one of these. The parts are all from RFC 5545, so Google Calendar, Outlook, Apple Calendar, and Thunderbird all read them the same way.

Every week, same day
RRULE:FREQ=WEEKLY
Every other week (fortnightly)
RRULE:FREQ=WEEKLY;INTERVAL=2
Every weekday, Monday to Friday
RRULE:FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR
The 1st of every month
RRULE:FREQ=MONTHLY;BYMONTHDAY=1
The last day of every month
RRULE:FREQ=MONTHLY;BYMONTHDAY=-1
The first Monday of every month
RRULE:FREQ=MONTHLY;BYDAY=1MO
The last Friday of every month
RRULE:FREQ=MONTHLY;BYDAY=-1FR
The last working day of every month
RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1
Every three months (quarterly)
RRULE:FREQ=MONTHLY;INTERVAL=3
Every year, on the start date
RRULE:FREQ=YEARLY
Twelve times, then stop
RRULE:FREQ=MONTHLY;COUNT=12
Weekly until a fixed date
RRULE:FREQ=WEEKLY;UNTIL=20261231T235959Z

How the parts fit together

FREQ is the only required part; everything else narrows it. INTERVAL skips periods, so FREQ=WEEKLY;INTERVAL=2 is every second week rather than every second day. BYDAY takes two-letter weekday codes, and a number in front of one picks an occurrence within the month — 1MO is the first Monday, -1FR the last Friday. BYMONTHDAY counts dates instead, and counts backwards from the end when negative, which is what makes BYMONTHDAY=-1 the reliable way to say “the last day”. BYSETPOS picks from whatever the rest of the rule matched in each period, so a weekday list with BYSETPOS=-1 lands on the last working day.

Which frequency to pick

Weekly is anchored to the day of the week you chose for the start, monthly to the date. A monthly event on the 31st is the classic trap: months without one are skipped by most calendars rather than moved, so use BYMONTHDAY=-1 when you mean the last day of every month, rather than starting the series on the 31st and hoping.

Questions

How do I stop a repeating event?
Set "Repeat ends" to a number of times or to a last date, and the file carries COUNT or UNTIL accordingly. Leave it on Never and the series runs until you end it in your own calendar, which can always edit a series it imported.
What is the difference between COUNT and UNTIL?
COUNT stops the series after a number of occurrences — COUNT=12 gives twelve and no more, whatever the dates work out to be. UNTIL stops it at a moment in time, written as a UTC timestamp like UNTIL=20261231T235959Z, and any occurrence that would fall after it simply does not happen. They do the same job from opposite ends, and RFC 5545 does not allow both in one rule.
Can I make an event repeat every other week?
Yes — choose Weekly and set the interval to 2. The file gets INTERVAL=2 on its repeat rule, which every calendar reads as fortnightly. The same works for every 3 days, every 6 months, and so on.
How do I repeat on the last day of every month?
Use FREQ=MONTHLY;BYMONTHDAY=-1, which is a hand edit to the downloaded file — the form sets the frequency, interval, and end, but not which day of the month is picked. Negative numbers count backwards from the end, so it lands on the 28th, 29th, 30th, or 31st as each month requires. Starting a monthly series on the 31st instead is the common mistake: most calendars skip the months that have no 31st rather than moving the event.
How do I skip one occurrence of a series?
Add an EXDATE line beside the RRULE, listing the start time of the occurrence to drop — EXDATE:20261225T090000Z removes that one instance and leaves the rest. To move it rather than delete it, pair the EXDATE with a second VEVENT carrying the same UID and a RECURRENCE-ID pointing at the original slot.
Will the repeat survive being imported into Outlook or Google?
Yes. RRULE is part of RFC 5545 and both read it, along with Apple Calendar and Thunderbird. They expand the series on import rather than storing every occurrence.