2024年〜2025年の祝日ファイル作成用Pythonスクリプトです。
元のcsiファイルはGoogleカレンダーからインストールしました。
1.csiファイル作成スクリプト
ChatGPTで手順を確認してPythonコードも書いてもらいました。
冒頭の決まり文句だけ追加しないといけないようです。
このスクリプトと同じ場所に祝日データの csiファイルが作成されます。
※注意
・冒頭の決まり文句は手動で追加する必要あり
・祭日も入るので削除する必要があり
※冒頭の決まり文句
BEGIN:VCALENDAR
PRODID:-//Google Inc//Google Calendar 70.9054//EN
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:PUBLISH
X-WR-CALNAME:日本の祝日
X-WR-TIMEZONE:UTC
X-WR-CALDESC:日本の祝日と行事
<Pythonスクリプト>
from icalendar import Calendar, Event
import os
# 入力ファイルと出力ファイルのパス
input_file_path = 'basic.ics' # 元の .ics ファイル
output_file_path = 'filtered_2024_2025_holidays.ics' # フィルタ後のファイル
# ファイルが存在するか確認
if os.path.exists(input_file_path):
# .ics ファイルを開いて解析
with open(input_file_path, 'r') as file:
calendar = Calendar.from_ical(file.read())
# VEVENT コンポーネントを収集
events = []
for component in calendar.walk():
if component.name == "VEVENT":
# イベントのタイトル(SUMMARY)を取得
summary = str(component.get('SUMMARY'))
# 日付を取得
dtstart = component.get('DTSTART').dt
# 条件: 祭日を除外し、2024年または2025年の祝日のみ
if "祭日" not in summary and dtstart.year in (2024, 2025):
events.append(component)
# 日付順にソート
sorted_events = sorted(events, key=lambda event: event.get('DTSTART').dt)
# 新しいカレンダーを作成
filtered_calendar = Calendar()
filtered_calendar.add('version', '2.0')
filtered_calendar.add('prodid', '-//Filtered Calendar//example.com//')
# ソート済みイベントをカレンダーに追加
for event in sorted_events:
filtered_calendar.add_component(event)
# フィルタ後のカレンダーを保存
with open(output_file_path, 'wb') as filtered_file:
filtered_file.write(filtered_calendar.to_ical())
print(f"フィルタリング済みの .ics ファイルが保存されました: {output_file_path}")
else:
print("入力ファイルが見つかりません。")