Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/zpascal/ms_outlook_event_slack_bot
The repository includes a Python-based Slack Bot for MS Outlook events
https://github.com/zpascal/ms_outlook_event_slack_bot
microsoft outlook slack-bot
Last synced: 2 months ago
JSON representation
The repository includes a Python-based Slack Bot for MS Outlook events
- Host: GitHub
- URL: https://github.com/zpascal/ms_outlook_event_slack_bot
- Owner: ZPascal
- License: apache-2.0
- Created: 2023-10-23T05:02:25.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-10-13T09:08:24.000Z (2 months ago)
- Last Synced: 2024-10-13T11:57:11.627Z (2 months ago)
- Topics: microsoft, outlook, slack-bot
- Language: Python
- Homepage: https://zpascal.github.io/ms_outlook_event_slack_bot/
- Size: 633 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Microsoft Outlook Event API Slack Bot
The repository includes a Python-based Slack Bot for MS Outlook events.## Functionality
The application allows accessing shared calendars of a user and reading the corresponding weekly events via Microsoft API calls. In the next step, it is possible to send this event in the form of a Slack message to a connected Slack channel.
## Installation
`pip install outlook-event-slack-bot`
## Example of use
```python
import argparsefrom outlook_event_slack_notification_bot.model import SlackAPI, OutlookCalendarApi
from outlook_event_slack_notification_bot.slack import Slack
from outlook_event_slack_notification_bot.outlook_calendar import OutlookCalendarif __name__ == "__main__":
parser = argparse.ArgumentParser(description="Script to extract a user's Outlook calendar events and "
"forward them to a Slack channel.")
parser.add_argument("-wh", "--webhook", type=str, required=True, help="Get the Slack webhook")
parser.add_argument("-t", "--tenant", type=str, required=True, help="Get the Microsoft tenant")
parser.add_argument("-ci", "--client-id", type=str, required=True, help="Get the Microsoft OAuth Client ID")
parser.add_argument("-cs", "--client-secret", type=str, required=True, help="Get the Microsoft OAuth Client secret")
parser.add_argument("-scu", "--shared_calendar_user", type=str, required=True,
help="Get the Outlook shared calendar user")
parser.add_argument("-scn", "--shared_calendar_name", type=str, required=True,
help="Get the Outlook shared calendar name")
parser.add_argument("-cn", "--custom_notification", type=str, required=True,
help="Should be custom notifications send to the corresponding users, "
"defined Outlook calendar event body?")
args = parser.parse_args()outlook_calendar_api: OutlookCalendarApi = OutlookCalendarApi(
tenant=args.tenant, client_id=args.client_id, client_secret=args.client_secret
)
outlook_calendar: OutlookCalendar = OutlookCalendar(outlook_calendar_api)
events: list = outlook_calendar.get_events(
args.shared_calendar_name, args.shared_calendar_user
)
events_cw: list = outlook_calendar.get_weekly_events(events)
Slack(SlackAPI(args.webhook), args.custom_notification).send_slack_message(events_cw)
```## Optimization potential:
- [ ] Add Integration tests## Contribution
If you would like to contribute something, have an improvement request, or want to make a change inside the code, please open a pull request.## Support
If you need support, or you encounter a bug, please don't hesitate to open an issue.## Donations
If you want to support my work, I ask you to take an unusual action inside the open source community. Donate the money to a non-profit organization like Doctors Without Borders or the Children's Cancer Aid. I will continue to build tools because I like them, and I am passionate about developing and sharing applications.## License
This product is available under the Apache 2.0 license.