Class RecurrenceRule

RecurrenceRule

Represents a recurrence rule for an event series.

Note that this class also behaves like the EventRecurrence that it belongs to, allowing you to chain rule creation together like so:

recurrence.addDailyRule().times(3).interval(2).addWeeklyExclusion().times(2);
Modifiers like times(times) and interval(interval) are applied to the most recently added rule.

Methods

Method Return type Brief description
RecurrenceRule Adds a rule that excludes occurrences on a daily basis.
RecurrenceRule Adds a rule that causes the event to recur on a daily basis.
EventRecurrence Adds a rule that causes the event to recur on a specific date.
EventRecurrence Adds a rule that excludes an occurrence for a specific date.
RecurrenceRule Adds a rule that excludes occurrences on a monthly basis.
RecurrenceRule Adds a rule that causes the event to recur on a monthly basis.
RecurrenceRule Adds a rule that excludes occurrences on a weekly basis.
RecurrenceRule Adds a rule that causes the event to recur on a weekly basis.
RecurrenceRule Adds a rule that excludes occurrences on a yearly basis.
RecurrenceRule Adds a rule that causes the event to recur on a yearly basis.
RecurrenceRule Configures the rule to only apply at this interval of the rule's time unit.
RecurrenceRule Configures the rule to only apply to a specific month.
RecurrenceRule Configures the rule to only apply to specific months.
RecurrenceRule Configures the rule to only apply to a specific day of the month.
RecurrenceRule Configures the rule to only apply to specific days of the month.
RecurrenceRule Configures the rule to only apply to a specific week of the year.
RecurrenceRule Configures the rule to only apply to a specific day of the week.
RecurrenceRule Configures the rule to only apply to specific days of the week.
RecurrenceRule Configures the rule to only apply to specific weeks of the year.
RecurrenceRule Configures the rule to only apply to a specific day of the year.
RecurrenceRule Configures the rule to only apply to specific days of the year.
EventRecurrence Sets the time zone for this recurrence.
RecurrenceRule Configures the rule to end after a given number of occurrences.
RecurrenceRule Configures the rule to end on a given date (inclusive).
RecurrenceRule Configures which day a week starts on, for the purposes of applying the rule.

Detailed documentation

addDailyExclusion()

Adds a rule that excludes occurrences on a daily basis.

 // 
  
 Creates 
  
 a 
  
 rule 
  
 that 
  
 recurs 
  
 every 
  
 week 
  
 after 
  
 the 
  
 first 
  
 30 
  
 days 
 . 
 var 
  
 recurrence 
  
 = 
  
 CalendarApp 
 . 
 newRecurrence 
 () 
 . 
 addWeeklyRule 
 () 
 . 
 addDailyExclusion 
 () 
 . 
 times 
 ( 
 30 
 ); 

Return

RecurrenceRule — the new RecurrenceRule

Authorization

Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API :

  • https://www.googleapis.com/auth/calendar
  • https://www.google.com/calendar/feeds

addDailyRule()

Adds a rule that causes the event to recur on a daily basis.

 // 
  
 Creates 
  
 a 
  
 rule 
  
 that 
  
 recurs 
  
 every 
  
 day 
  
 for 
  
 ten 
  
 days 
 . 
 var 
  
 recurrence 
  
 = 
  
 CalendarApp 
 . 
 newRecurrence 
 () 
 . 
 addDailyRule 
 () 
 . 
 times 
 ( 
 10 
 ); 

Return

RecurrenceRule — the new RecurrenceRule

Authorization

Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API :

  • https://www.googleapis.com/auth/calendar
  • https://www.google.com/calendar/feeds

addDate(date)

Adds a rule that causes the event to recur on a specific date.

Parameters

Name Type Description
date
Date

Return

EventRecurrence — this EventRecurrence for chaining

Authorization

Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API :

  • https://www.googleapis.com/auth/calendar
  • https://www.google.com/calendar/feeds

addDateExclusion(date)

Adds a rule that excludes an occurrence for a specific date.

Parameters

Name Type Description
date
Date

Return

EventRecurrence — this EventRecurrence for chaining

Authorization

Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API :

  • https://www.googleapis.com/auth/calendar
  • https://www.google.com/calendar/feeds

addMonthlyExclusion()

Adds a rule that excludes occurrences on a monthly basis.

By default the exclusion is applied on the same day of the month as the first event in the series, but this can be altered by calling onlyOnMonthDay(day) or onlyOnMonthDays(days) .

Return

RecurrenceRule — the new RecurrenceRule

Authorization

Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API :

  • https://www.googleapis.com/auth/calendar
  • https://www.google.com/calendar/feeds

addMonthlyRule()

Adds a rule that causes the event to recur on a monthly basis.

By default the event recurs on the same day of the month as the first event in the series, but this can be altered by calling onlyOnMonthDay(day) or onlyOnMonthDays(days) .

 // 
  
 Creates 
  
 a 
  
 rule 
  
 that 
  
 recurs 
  
 every 
  
 month 
  
 for 
  
 three 
  
 months 
 . 
 var 
  
 recurrence 
  
 = 
  
 CalendarApp 
 . 
 newRecurrence 
 () 
 . 
 addMonthlyRule 
 () 
 . 
 times 
 ( 
 4 
 ); 

Return

RecurrenceRule — the new RecurrenceRule

Authorization

Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API :

  • https://www.googleapis.com/auth/calendar
  • https://www.google.com/calendar/feeds

addWeeklyExclusion()

Adds a rule that excludes occurrences on a weekly basis.

By default the exclusion is applied on the same day of the week as the first event in the series, but this can be altered by calling onlyOnWeekday(day) or onlyOnWeekdays(days) .

 // 
  
 Creates 
  
 a 
  
 rule 
  
 that 
  
 recurs 
  
 every 
  
 day 
  
 except 
  
 the 
  
 first 
  
 four 
  
 Wednesdays 
 . 
 var 
  
 recurrence 
  
 = 
  
 CalendarApp 
 . 
 newRecurrence 
 () 
 . 
 addDailyRule 
 () 
  
 . 
 addWeeklyExclusion 
 () 
 . 
 onlyOnWeekday 
 ( 
 CalendarApp 
 . 
 Weekday 
 . 
 WEDNESDAY 
 ) 
 . 
 times 
 ( 
 4 
 ); 

Return

RecurrenceRule — the new RecurrenceRule

Authorization

Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API :

  • https://www.googleapis.com/auth/calendar
  • https://www.google.com/calendar/feeds

addWeeklyRule()

Adds a rule that causes the event to recur on a weekly basis.

By default the event recurs on the same day of the week as the first event in the series, but this can be altered by calling onlyOnWeekday(day) or onlyOnWeekdays(days) .

 // 
  
 Creates 
  
 a 
  
 rule 
  
 that 
  
 recurs 
  
 every 
  
 week 
  
 for 
  
 ten 
  
 weeks 
 . 
 var 
  
 recurrence 
  
 = 
  
 CalendarApp 
 . 
 newRecurrence 
 () 
 . 
 addWeeklyRule 
 () 
 . 
 times 
 ( 
 10 
 ); 

Return

RecurrenceRule — the new RecurrenceRule

Authorization

Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API :

  • https://www.googleapis.com/auth/calendar
  • https://www.google.com/calendar/feeds

addYearlyExclusion()

Adds a rule that excludes occurrences on a yearly basis.

By default the exclusion is applied on the same day of the year as the first event in the series, but this can be altered by calling onlyOnYearDay(day) or onlyOnYearDays(days) .

Return

RecurrenceRule — the new RecurrenceRule

Authorization

Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API :

  • https://www.googleapis.com/auth/calendar
  • https://www.google.com/calendar/feeds

addYearlyRule()

Adds a rule that causes the event to recur on a yearly basis.

By default the event recurs on the same day of the year as the first event in the series, but this can be altered by calling onlyOnYearDay(day) or onlyOnYearDays(days) .

Return

RecurrenceRule — the new RecurrenceRule

Authorization

Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API :

  • https://www.googleapis.com/auth/calendar
  • https://www.google.com/calendar/feeds

interval(interval)

Configures the rule to only apply at this interval of the rule's time unit.

 // 
  
 Creates 
  
 a 
  
 rule 
  
 that 
  
 recurs 
  
 every 
  
 fourth 
  
 week 
 . 
 var 
  
 recurrence 
  
 = 
  
 CalendarApp 
 . 
 newRecurrence 
 () 
 . 
 addWeeklyRule 
 () 
 . 
 interval 
 ( 
 4 
 ); 

Parameters

Name Type Description
interval
Integer the interval in the rule's time unit

Return

RecurrenceRule — this RecurrenceRule for chaining


onlyInMonth(month)

Configures the rule to only apply to a specific month.

 // 
  
 Creates 
  
 a 
  
 rule 
  
 that 
  
 recurs 
  
 every 
  
 week 
  
 in 
  
 February 
 . 
 var 
  
 recurrence 
  
 = 
  
 CalendarApp 
 . 
 newRecurrence 
 () 
  
 . 
 addWeeklyRule 
 () 
 . 
 onlyInMonth 
 ( 
 CalendarApp 
 . 
 Month 
 . 
 FEBRUARY 
 ); 

Parameters

Name Type Description
month
Month the month

Return

RecurrenceRule — this RecurrenceRule for chaining


onlyInMonths(months)

Configures the rule to only apply to specific months.

 // 
  
 Creates 
  
 a 
  
 rule 
  
 that 
  
 recurs 
  
 every 
  
 week 
  
 in 
  
 February 
  
 and 
  
 March 
 . 
 var 
  
 recurrence 
  
 = 
  
 CalendarApp 
 . 
 newRecurrence 
 () 
  
 . 
 addWeeklyRule 
 () 
 . 
 onlyInMonths 
 ([ 
 CalendarApp 
 . 
 Month 
 . 
 FEBRUARY 
 , 
  
 CalendarApp 
 . 
 Month 
 . 
 MARCH 
 ]); 

Parameters

Name Type Description
months
Month[] the months

Return

RecurrenceRule — this RecurrenceRule for chaining


onlyOnMonthDay(day)

Configures the rule to only apply to a specific day of the month.

 // 
  
 Creates 
  
 a 
  
 rule 
  
 that 
  
 recurs 
  
 every 
  
 month 
  
 on 
  
 the 
  
 fifth 
  
 day 
  
 of 
  
 the 
  
 month 
 . 
 var 
  
 recurrence 
  
 = 
  
 CalendarApp 
 . 
 newRecurrence 
 () 
 . 
 addMonthlyRule 
 () 
 . 
 onlyOnMonthDay 
 ( 
 5 
 ); 

Parameters

Name Type Description
day
Integer the day of the month

Return

RecurrenceRule — this RecurrenceRule for chaining


onlyOnMonthDays(days)

Configures the rule to only apply to specific days of the month.

 // 
  
 Creates 
  
 a 
  
 rule 
  
 that 
  
 recurs 
  
 every 
  
 month 
  
 on 
  
 the 
  
 first 
  
 and 
  
 fifteenth 
  
 day 
  
 of 
  
 the 
  
 month 
 . 
 var 
  
 recurrence 
  
 = 
  
 CalendarApp 
 . 
 newRecurrence 
 () 
 . 
 addMonthlyRule 
 () 
 . 
 onlyOnMonthDays 
 ([ 
 1 
 , 
  
 15 
 ]); 

Parameters

Name Type Description
days
Integer[] the days of the month

Return

RecurrenceRule — this RecurrenceRule for chaining


onlyOnWeek(week)

Configures the rule to only apply to a specific week of the year.

 // 
  
 Creates 
  
 a 
  
 rule 
  
 that 
  
 recurs 
  
 on 
  
 the 
  
 fifth 
  
 week 
  
 of 
  
 every 
  
 year 
 . 
 var 
  
 recurrence 
  
 = 
  
 CalendarApp 
 . 
 newRecurrence 
 () 
 . 
 addWeeklyRule 
 () 
 . 
 onlyOnWeek 
 ( 
 5 
 ); 

Parameters

Name Type Description
week
Integer the week

Return

RecurrenceRule — this RecurrenceRule for chaining


onlyOnWeekday(day)

Configures the rule to only apply to a specific day of the week.

 // 
  
 Creates 
  
 a 
  
 rule 
  
 that 
  
 recurs 
  
 every 
  
 week 
  
 on 
  
 Wednesdays 
 . 
 var 
  
 recurrence 
  
 = 
  
 CalendarApp 
 . 
 newRecurrence 
 () 
  
 . 
 addWeeklyRule 
 () 
 . 
 onlyOnWeekday 
 ( 
 CalendarApp 
 . 
 Weekday 
 . 
 WEDNESDAY 
 ); 

Parameters

Name Type Description
day
Weekday the day of the week

Return

RecurrenceRule — this RecurrenceRule for chaining


onlyOnWeekdays(days)

Configures the rule to only apply to specific days of the week.

 // 
  
 Creates 
  
 a 
  
 rule 
  
 that 
  
 recurs 
  
 every 
  
 week 
  
 on 
  
 Tuesdays 
  
 and 
  
 Thursdays 
 . 
 var 
  
 recurrence 
  
 = 
  
 CalendarApp 
 . 
 newRecurrence 
 () 
  
 . 
 addWeeklyRule 
 () 
 . 
 onlyOnWeekdays 
 ( 
  
 [ 
 CalendarApp 
 . 
 Weekday 
 . 
 TUESDAY 
 , 
  
 CalendarApp 
 . 
 Weekday 
 . 
 THURSDAY 
 ]); 

Parameters

Name Type Description
days
Weekday[] the days of the week

Return

RecurrenceRule — this RecurrenceRule for chaining


onlyOnWeeks(weeks)

Configures the rule to only apply to specific weeks of the year.

 // 
  
 Creates 
  
 a 
  
 rule 
  
 that 
  
 recurs 
  
 on 
  
 the 
  
 fifth 
  
 and 
  
 tenth 
  
 weeks 
  
 of 
  
 every 
  
 year 
 . 
 var 
  
 recurrence 
  
 = 
  
 CalendarApp 
 . 
 newRecurrence 
 () 
 . 
 addWeeklyRule 
 () 
 . 
 onlyOnWeeks 
 ([ 
 5 
 , 
  
 10 
 ]); 

Parameters

Name Type Description
weeks
Integer[] the weeks

Return

RecurrenceRule — this RecurrenceRule for chaining


onlyOnYearDay(day)

Configures the rule to only apply to a specific day of the year.

 // 
  
 Creates 
  
 a 
  
 rule 
  
 that 
  
 recurs 
  
 every 
  
 year 
  
 on 
  
 February 
  
 15 
  
 ( 
 the 
  
 46 
 th 
  
 day 
 ) 
 . 
 var 
  
 recurrence 
  
 = 
  
 CalendarApp 
 . 
 newRecurrence 
 () 
 . 
 addYearlyRule 
 () 
 . 
 onlyOnYearDay 
 ( 
 46 
 ); 

Parameters

Name Type Description
day
Integer the day of the year

Return

RecurrenceRule — this RecurrenceRule for chaining


onlyOnYearDays(days)

Configures the rule to only apply to specific days of the year.

 // 
  
 Creates 
  
 a 
  
 rule 
  
 that 
  
 recurs 
  
 every 
  
 year 
  
 on 
  
 January 
  
 20 
  
 and 
  
 February 
  
 15. 
 var 
  
 recurrence 
  
 = 
  
 CalendarApp 
 . 
 newRecurrence 
 () 
 . 
 addYearlyRule 
 () 
 . 
 onlyOnYearDay 
 ([ 
 20 
 , 
  
 46 
 ]); 

Parameters

Name Type Description
days
Integer[] the days of the year

Return

RecurrenceRule — this RecurrenceRule for chaining


setTimeZone(timeZone)

Sets the time zone for this recurrence. This affects the date and time that events recur on, and whether the event shifts with daylight savings time. Defaults to the calendar's time zone.

Parameters

Name Type Description
timeZone
String the time zone, specified in "long" format (e.g., 'America/New_York', as listed by Joda.org )

Return

EventRecurrence — this EventRecurrence for chaining

Authorization

Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API :

  • https://www.googleapis.com/auth/calendar
  • https://www.google.com/calendar/feeds

times(times)

Configures the rule to end after a given number of occurrences.

 // 
  
 Creates 
  
 a 
  
 rule 
  
 that 
  
 recurs 
  
 every 
  
 day 
  
 for 
  
 ten 
  
 days 
 . 
 var 
  
 recurrence 
  
 = 
  
 CalendarApp 
 . 
 newRecurrence 
 () 
 . 
 addDailyRule 
 () 
 . 
 times 
 ( 
 10 
 ); 

Parameters

Name Type Description
times
Integer the number of times to recur

Return

RecurrenceRule — this RecurrenceRule for chaining


until(endDate)

Configures the rule to end on a given date (inclusive).

 // 
  
 Creates 
  
 a 
  
 rule 
  
 that 
  
 recurs 
  
 every 
  
 day 
  
 through 
  
 the 
  
 end 
  
 of 
  
 2013. 
 var 
  
 recurrence 
  
 = 
  
 CalendarApp 
 . 
 newRecurrence 
 () 
  
 . 
 addDailyRule 
 () 
 . 
 until 
 ( 
 new 
  
 Date 
 ( 
 'December 31, 2013' 
 )); 

Parameters

Name Type Description
endDate
Date

Return

RecurrenceRule — this RecurrenceRule for chaining

Authorization

Scripts that use this method require authorization with one or more of the following scopes or appropriate scopes from the related REST API :

  • https://www.googleapis.com/auth/calendar
  • https://www.google.com/calendar/feeds

weekStartsOn(day)

Configures which day a week starts on, for the purposes of applying the rule.

 // 
  
 Creates 
  
 a 
  
 weekly 
  
 rule 
  
 where 
  
 weeks 
  
 start 
  
 on 
  
 Monday 
 . 
 var 
  
 recurrence 
  
 = 
  
 CalendarApp 
 . 
 newRecurrence 
 () 
  
 . 
 addWeeklyRule 
 () 
 . 
 weekStartsOn 
 ( 
 CalendarApp 
 . 
 Weekday 
 . 
 MONDAY 
 ); 

Parameters

Name Type Description
day
Weekday the day on which the week starts

Return

RecurrenceRule — this RecurrenceRule for chaining