diff --git a/options/locale/locale_en-US.ini b/options/locale/locale_en-US.ini
index 794d78c6f7..db28fcede0 100644
--- a/options/locale/locale_en-US.ini
+++ b/options/locale/locale_en-US.ini
@@ -1090,6 +1090,9 @@ activity.period.daily = 1 day
 activity.period.halfweekly = 3 days
 activity.period.weekly = 1 week
 activity.period.monthly = 1 month
+activity.period.quarterly = 3 months
+activity.period.semiyearly = 6 months
+activity.period.yearly = 1 year
 activity.overview = Overview
 activity.active_prs_count_1 = <strong>%d</strong> Active Pull Request
 activity.active_prs_count_n = <strong>%d</strong> Active Pull Requests
diff --git a/routers/repo/activity.go b/routers/repo/activity.go
index e170a91299..0b57d09685 100644
--- a/routers/repo/activity.go
+++ b/routers/repo/activity.go
@@ -35,6 +35,12 @@ func Activity(ctx *context.Context) {
 		timeFrom = timeUntil.Add(-time.Hour * 168)
 	case "monthly":
 		timeFrom = timeUntil.AddDate(0, -1, 0)
+	case "quarterly":
+		timeFrom = timeUntil.AddDate(0, -3, 0)
+	case "semiyearly":
+		timeFrom = timeUntil.AddDate(0, -6, 0)
+	case "yearly":
+		timeFrom = timeUntil.AddDate(-1, 0, 0)
 	default:
 		ctx.Data["Period"] = "weekly"
 		timeFrom = timeUntil.Add(-time.Hour * 168)
@@ -70,6 +76,12 @@ func ActivityAuthors(ctx *context.Context) {
 		timeFrom = timeUntil.Add(-time.Hour * 168)
 	case "monthly":
 		timeFrom = timeUntil.AddDate(0, -1, 0)
+	case "quarterly":
+		timeFrom = timeUntil.AddDate(0, -3, 0)
+	case "semiyearly":
+		timeFrom = timeUntil.AddDate(0, -6, 0)
+	case "yearly":
+		timeFrom = timeUntil.AddDate(-1, 0, 0)
 	default:
 		timeFrom = timeUntil.Add(-time.Hour * 168)
 	}
diff --git a/templates/repo/activity.tmpl b/templates/repo/activity.tmpl
index 8ee5b55904..504fd32300 100644
--- a/templates/repo/activity.tmpl
+++ b/templates/repo/activity.tmpl
@@ -17,6 +17,9 @@
 						<a class="{{if eq .Period "halfweekly"}}active {{end}}item" href="{{$.RepoLink}}/activity/halfweekly">{{.i18n.Tr "repo.activity.period.halfweekly"}}</a>
 						<a class="{{if eq .Period "weekly"}}active {{end}}item" href="{{$.RepoLink}}/activity/weekly">{{.i18n.Tr "repo.activity.period.weekly"}}</a>
 						<a class="{{if eq .Period "monthly"}}active {{end}}item" href="{{$.RepoLink}}/activity/monthly">{{.i18n.Tr "repo.activity.period.monthly"}}</a>
+						<a class="{{if eq .Period "quarterly"}}active {{end}}item" href="{{$.RepoLink}}/activity/quarterly">{{.i18n.Tr "repo.activity.period.quarterly"}}</a>
+						<a class="{{if eq .Period "semiyearly"}}active {{end}}item" href="{{$.RepoLink}}/activity/semiyearly">{{.i18n.Tr "repo.activity.period.semiyearly"}}</a>
+						<a class="{{if eq .Period "yearly"}}active {{end}}item" href="{{$.RepoLink}}/activity/yearly">{{.i18n.Tr "repo.activity.period.yearly"}}</a>
 					</div>
 				</div>
 			</div>