diff --git a/generator/app.go b/generator/app.go
index afbcdde6d..c2b1871cc 100644
--- a/generator/app.go
+++ b/generator/app.go
@@ -229,6 +229,7 @@ type Meeting struct {
URL string `yaml:",omitempty"`
ArchiveURL string `yaml:"archive_url,omitempty"`
RecordingsURL string `yaml:"recordings_url,omitempty"`
+ CalendarURL string `yaml:"calendar_url,omitempty"`
}
// Contact represents the various contact points for a group.
diff --git a/generator/committee_readme.tmpl b/generator/committee_readme.tmpl
index a237b808b..e9e9f2369 100644
--- a/generator/committee_readme.tmpl
+++ b/generator/committee_readme.tmpl
@@ -14,7 +14,7 @@ The [charter]({{.CharterLink}}) defines the scope and governance of the {{.Name}
{{- end }}
{{- range .Meetings }}
-* {{.Description}}: [{{.Day}}s at {{.Time}} {{.TZ}}]({{.URL}}) ({{.Frequency}}). [Convert to your timezone](http://www.thetimezoneconverter.com/?t={{.Time}}&tz={{.TZ | tzUrlEncode}}).
+* {{.Description}}{{if .CalendarURL}} ([calendar]({{.CalendarURL}})){{end}}: [{{.Day}}s at {{.Time}} {{.TZ}}]({{.URL}}) ({{.Frequency}}). [Convert to your timezone](http://www.thetimezoneconverter.com/?t={{.Time | urlquery}}&tz={{.TZ | tzUrlEncode}}).
{{- if .ArchiveURL }}
* [Meeting notes and Agenda]({{.ArchiveURL}}).
{{- end }}
@@ -99,7 +99,7 @@ The following [subprojects][subproject-definition] are owned by the {{.Name}} Co
{{- if .Meetings }}
- **Meetings:**
{{- range .Meetings }}
- - {{.Description}}: [{{.Day}}s at {{.Time}} {{.TZ}}]({{.URL}}) ({{.Frequency}}). [Convert to your timezone](http://www.thetimezoneconverter.com/?t={{.Time}}&tz={{.TZ | tzUrlEncode}}).
+ - {{.Description}}{{if .CalendarURL}} ([calendar]({{.CalendarURL}})){{end}}: [{{.Day}}s at {{.Time}} {{.TZ}}]({{.URL}}) ({{.Frequency}}). [Convert to your timezone](http://www.thetimezoneconverter.com/?t={{.Time | urlquery}}&tz={{.TZ | tzUrlEncode}}).
{{- if .ArchiveURL }}
- [Meeting notes and Agenda]({{.ArchiveURL}}).
{{- end }}
diff --git a/generator/list.tmpl b/generator/list.tmpl
index f1e5f21cd..8e874f754 100644
--- a/generator/list.tmpl
+++ b/generator/list.tmpl
@@ -27,12 +27,12 @@ When the need arises, a [new SIG can be created](sig-wg-lifecycle.md)
|------|-------|--------|---------|----------|
{{- range .Sigs}}
|[{{.Name}}]({{.Dir}}/README.md)|[{{.Label}}](https://github.com/kubernetes/kubernetes/labels/sig%2F{{.Label}})|{{range .Leadership.Chairs}}* [{{.Name}}](https://github.com/{{.GitHub}}){{if .Company}}, {{.Company}}{{end}}
{{end}}|* [Slack](https://kubernetes.slack.com/messages/{{.Contact.Slack}})
* [Mailing List]({{.Contact.MailingList}})|{{- range .Meetings -}}
- * {{.Description}}: [{{.Day}}s at {{.Time}} {{.TZ}} ({{.Frequency}})]({{.URL}})
+ * {{.Description}}{{if .CalendarURL}} ([calendar]({{.CalendarURL}})){{end}}: [{{.Day}}s at {{.Time}} {{.TZ}} ({{.Frequency}})]({{.URL}})
{{- end -}}
{{- range .Subprojects -}}
{{ $name := .Name }}
{{- range .Meetings -}}
- * ({{ $name }}) {{.Description}}: [{{.Day}}s at {{.Time}} {{.TZ}} ({{.Frequency}})]({{.URL}})
+ * ({{ $name }}) {{.Description}}{{if .CalendarURL}} ([calendar]({{.CalendarURL}})){{end}}: [{{.Day}}s at {{.Time}} {{.TZ}} ({{.Frequency}})]({{.URL}})
{{- end -}}
{{- end -}}
{{- end }}
@@ -42,7 +42,7 @@ When the need arises, a [new SIG can be created](sig-wg-lifecycle.md)
| Name | Label | Stakeholder SIGs |Organizers | Contact | Meetings |
|------|-------|------------------|-----------|---------|----------|
{{- range .WorkingGroups}}
-|[{{.Name}}]({{.Dir}}/README.md)|[{{.Label}}](https://github.com/kubernetes/kubernetes/labels/wg%2F{{.Label}})|{{range .StakeholderSIGs}}* {{.}}
{{end }}|{{range .Leadership.Chairs}}* [{{.Name}}](https://github.com/{{.GitHub}}){{if .Company}}, {{.Company}}{{end}}
{{end}}|* [Slack](https://kubernetes.slack.com/messages/{{.Contact.Slack}})
* [Mailing List]({{.Contact.MailingList}})|{{range .Meetings}}* {{.Description}}: [{{.Day}}s at {{.Time}} {{.TZ}} ({{.Frequency}})]({{.URL}})
{{end}}
+|[{{.Name}}]({{.Dir}}/README.md)|[{{.Label}}](https://github.com/kubernetes/kubernetes/labels/wg%2F{{.Label}})|{{range .StakeholderSIGs}}* {{.}}
{{end }}|{{range .Leadership.Chairs}}* [{{.Name}}](https://github.com/{{.GitHub}}){{if .Company}}, {{.Company}}{{end}}
{{end}}|* [Slack](https://kubernetes.slack.com/messages/{{.Contact.Slack}})
* [Mailing List]({{.Contact.MailingList}})|{{range .Meetings}}* {{.Description}}{{if .CalendarURL}} ([calendar]({{.CalendarURL}})){{end}}: [{{.Day}}s at {{.Time}} {{.TZ}} ({{.Frequency}})]({{.URL}})
{{end}}
{{- end }}
### Committees
diff --git a/generator/sig_readme.tmpl b/generator/sig_readme.tmpl
index 29b4c326c..722c7303a 100644
--- a/generator/sig_readme.tmpl
+++ b/generator/sig_readme.tmpl
@@ -13,7 +13,7 @@ The [charter]({{.CharterLink}}) defines the scope and governance of the {{.Name}
{{- end }}
{{- range .Meetings }}
-* {{.Description}}: [{{.Day}}s at {{.Time}} {{.TZ}}]({{.URL}}) ({{.Frequency}}). [Convert to your timezone](http://www.thetimezoneconverter.com/?t={{.Time}}&tz={{.TZ | tzUrlEncode}}).
+* {{.Description}}{{if .CalendarURL}} ([calendar]({{.CalendarURL}})) {{end}}: [{{.Day}}s at {{.Time}} {{.TZ}}]({{.URL}}) ({{.Frequency}}). [Convert to your timezone](http://www.thetimezoneconverter.com/?t={{.Time | urlquery}}&tz={{.TZ | tzUrlEncode}}).
{{- if .ArchiveURL }}
* [Meeting notes and Agenda]({{.ArchiveURL}}).
{{- end }}
@@ -109,7 +109,7 @@ The following [subprojects][subproject-definition] are owned by sig-{{.Label}}:
- [Mailing List]({{.Contact.MailingList}})
{{- end }}
{{- if .Contact.GithubTeams }}
- - GitHub Teams:
+ - GitHub Teams:
{{- range .Contact.GithubTeams }}
- [@kubernetes/{{.Name}}](https://github.com/orgs/kubernetes/teams/{{.Name}}) {{- if .Description }} - {{.Description}}{{- end}}
{{- end }}
@@ -118,7 +118,7 @@ The following [subprojects][subproject-definition] are owned by sig-{{.Label}}:
{{- if .Meetings }}
- **Meetings:**
{{- range .Meetings }}
- - {{.Description}}: [{{.Day}}s at {{.Time}} {{.TZ}}]({{.URL}}) ({{.Frequency}}). [Convert to your timezone](http://www.thetimezoneconverter.com/?t={{.Time}}&tz={{.TZ | tzUrlEncode}}).
+ - {{.Description}}{{if .CalendarURL}} ([calendar]({{.CalendarURL}})){{end}}: [{{.Day}}s at {{.Time}} {{.TZ}}]({{.URL}}) ({{.Frequency}}). [Convert to your timezone](http://www.thetimezoneconverter.com/?t={{.Time | urlquery}}&tz={{.TZ | tzUrlEncode}}).
{{- if .ArchiveURL }}
- [Meeting notes and Agenda]({{.ArchiveURL}}).
{{- end }}
diff --git a/generator/wg_readme.tmpl b/generator/wg_readme.tmpl
index e366f889d..aec0d297c 100644
--- a/generator/wg_readme.tmpl
+++ b/generator/wg_readme.tmpl
@@ -19,7 +19,7 @@ The [charter]({{.CharterLink}}) defines the scope and governance of the {{.Name}
{{- end }}
{{- range .Meetings }}
-* {{.Description}}: [{{.Day}}s at {{.Time}} {{.TZ}}]({{.URL}}) ({{.Frequency}}). [Convert to your timezone](http://www.thetimezoneconverter.com/?t={{.Time}}&tz={{.TZ | tzUrlEncode}}).
+* {{.Description}}{{if .CalendarURL}} ([calendar]({{.CalendarURL}})){{end}}: [{{.Day}}s at {{.Time}} {{.TZ}}]({{.URL}}) ({{.Frequency}}). [Convert to your timezone](http://www.thetimezoneconverter.com/?t={{.Time | urlquery}}&tz={{.TZ | tzUrlEncode}}).
{{- if .ArchiveURL }}
* [Meeting notes and Agenda]({{.ArchiveURL}}).
{{- end }}