This module allows access to Microsoft Office 365 account calendars. It allows for personal, delegate, and service accounts.
pip install exchange_interface
import requests
from exchange_interface import EWS
import datetime
ews = EWS(
username='[email protected]',
password='SuperSecretPassword',
)
ews.Connected = lambda _, state: print('EWS', state)
ews.Disconnected = lambda _, state: print('EWS', state)
ews.NewCalendarItem = lambda _, item: print('NewCalendarItem(', item)
ews.CalendarItemChanged = lambda _, item: print('CalendarItemChanged(', item)
ews.CalendarItemDeleted = lambda _, item: print('CalendarItemDeleted(', item)
ews.UpdateCalendar()
print('Events happending now=', ews.GetNowCalItems())
print('Event(s) happening next=', ews.GetNextCalItems())
nowDT = datetime.datetime.now()
nowPlus24hrs = nowDT + datetime.timedelta(days=1)
print('Events happening in the next 24 hours=', ews.GetEventsInRange(startDT=nowDT, endDT=nowPlus24hrs))
# You can create a new event like this:
ews.CreateCalendarEvent(
subjec='Test Subject',
body='Test Body',
startDT=datetime.datetime.now(),
endDT=datetime.datetime.now() + datetime.timedelta(hours=1),
)
import requests
from exchange_interface import EWS
ews = EWS(
username='[email protected]',
password='SuperSecretPassword', # the service account password
impersonation='[email protected]'
)
import requests
from exchange_interface import EWS
def GetAccessToken():
# do the oauth magic here
return 'theOauthToken'
ews = EWS(
username='[email protected]',
oauthCallback=GetAccessToken, # this will be called before each HTTP request is sent
impersonation='[email protected]'
)