from dateutil import parser from scaffold.core.widget import base_widget_extended from datetime import datetime import time import requests class control(base_widget_extended): contents = [] def create(self, title="Events", calendar_id=None, api_key=None): super(control, self).create() date_now = datetime.now().strftime('%Y-%m-%dT%H:%M:%S+00:00') date_now = datetime.now().strftime('%Y-%m-%dT%H:%M:%S+00:00') url = 'https://www.googleapis.com/calendar/v3/calendars/%s/events?singleEvents=True&orderBy=startTime&maxResults=2&timeMin=%s&key=%s' % ( calendar_id, datetime.now().strftime('%Y-%m-%dT%H:%M:%S-00:00'), api_key) response = requests.get(url) calendar_data = response.json() self.contents = [] # loop over calendar results, and format for display for event in calendar_data.get('items'): str_datetime = parser.parse(event.get('start').get('dateTime')) formatted_date = str_datetime.strftime('%d %b %Y %H:%M') description = event.get('description') + '
' if event.get('description') else '' location = '%s' % ( event.get('location'), event.get('location')) if event.get('location') else '' self.contents.append(( event.get('summary')+ '
', description, formatted_date + '
' + location)) return self def render(self): htm = '' for row in self.contents: htm += '
  • %s %s %s
  • ' % row return '''
    Subscribe View All
    ''' % htm