diff options
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/get_calendar.py | 15 | 
1 files changed, 11 insertions, 4 deletions
| diff --git a/scripts/get_calendar.py b/scripts/get_calendar.py index 89daf07..20a8b6f 100644 --- a/scripts/get_calendar.py +++ b/scripts/get_calendar.py @@ -11,6 +11,9 @@ import os  from dateutil.rrule import rrulestr  import icalendar  import subprocess +import pytz + +berlin = pytz.timezone('Europe/Berlin')  def fetch_calendar(logger):      """Fetches the calendar events and returns a icalendar.Calendar instance. @@ -81,6 +84,10 @@ def get_events(calendar, after, before):          if end.hour == 0 and end.minute == 0 and end.second == 0:              end -= timedelta(seconds=1) +        if start.tzinfo is None: +            start = berlin.localize(start) +        if end.tzinfo is None: +            end = berlin.localize(end)          if 'rrule' in event:              rrule = rrulestr(event['rrule'].to_ical(), dtstart=start)              duration = end - start @@ -131,15 +138,15 @@ if __name__ == '__main__':      logging.basicConfig(stream=sys.stderr, level=logging.ERROR)      logger = logging.getLogger('calendar_feed')      regen, calendar = fetch_calendar(logger) -    now = datetime.now() +    now = berlin.localize(datetime.now())      after = now - relativedelta(days=1)      before = now + relativedelta(months=+1) -    after_tab = datetime(now.year,now.month,1); +    after_tab = berlin.localize(datetime(now.year,now.month,1))      if now.month + 2 > 12: -        before_tab = datetime(now.year+1,now.month + 10,1) +        before_tab = berlin.localize(datetime(now.year+1,now.month + 10,1))      else: -        before_tab = datetime(now.year,now.month+2,1) +        before_tab = berlin.localize(datetime(now.year,now.month+2,1))      changed = put_events(calendar, after, before,                           os.path.join(base_path, '../template/calendar.json')) | 
