C#でGoogleカレンダーからAPIで日本の祝日を取得する

Newtonsoft.Json 使います。

        public static HashSet<DateTime> GetHolidays(int year)
        {
            var key = "あなたのAPIキー";
            var holidaysId = "japanese__ja@holiday.calendar.google.com";
            var startDate = new DateTime(year, 1, 1).ToString("yyyy-MM-dd") + "T00%3A00%3A00.000Z";
            var endDate = new DateTime(year, 12, 31).ToString("yyyy-MM-dd") + "T00%3A00%3A00.000Z";
            var maxCount = 30;

            var url = $"https://www.googleapis.com/calendar/v3/calendars/{holidaysId}/events?key={key}&timeMin={startDate}&timeMax={endDate}&maxResults={maxCount}&orderBy=startTime&singleEvents=true";
            var client = new WebClient() { Encoding = System.Text.Encoding.UTF8 };
            var json = client.DownloadString(url);
            client.Dispose();

            var o = Newtonsoft.Json.Linq.JObject.Parse(json);
            var days = o["items"].Select(i => DateTime.Parse(i["start"]["date"].ToString()));
            return new HashSet<DateTime>(days);
        }