だから私はファイルから時刻表を読み取り、それを Google カレンダーに入れる Python を介して小さな App Engine アプリケーションを作成しています。時刻表のすべての時刻/日付は DST とは無関係であるため、同じ方法でイベントを配置する必要があります。これは、すべてのイベントが複数の DST 期間にわたって毎週繰り返されるという事実によって複雑になります。
カレンダー API V3 を使用しています。
このために独自のカレンダーを作成することから始めます。
calander = {
'summary': 'Calender Name,
'location': 'Somewhere in Ireland',
'timeZone': 'GMT',
}
次に、さまざまな定期的なイベントを入力します
event = {
'summary': 'CS101',
'description': 'Intro to Comp Sci',
'location': 'Bla bla bla',
'start': {
'dateTime': '2012-10-03T10:00:00.000-00:00',
'timeZone': 'GMT'
},
'end': {
'dateTime': '2012-10-03T11:00:00.000-00:00',
'timeZone': 'GMT'
},
'recurrence': [
'RRULE:FREQ=WEEKLY;UNTIL=20121231',
],
}
もちろん、私の実際のプログラムでは、これらの文字列はすべて動的に生成されていますが、ここでは問題ありません。
問題は、夏時間の DST 期間中に発生するイベントは、指定した時間より自動的に 1 時間遅れることです。イベントとカレンダーのタイムゾーンを GMT に設定しているので、これはバグだと確信していますが、GMT は夏時間を観察しません。私が食べている時間には何もすべきではありません。
たとえば、時刻表によると、9 月 1 日から 12 月 31 日までの毎週月曜日の午前 10 時から午前 11 時までイベントが開催されます。この情報がカレンダーに入力された場合、10 月 28 日 (ヨーロッパのフォールバック日) より前のすべてのイベントは、タイムテーブルの時刻より 1 時間遅れます。夏休み以外はいつでもOKです。
イベントが午前 10 時に開始することをカレンダーに伝えた場合、DST に合わせて調整したくありません。どうすればこれを回避できますか?