Skip to content

nylas-samples/next_meeting

Repository files navigation

next_meeting

This is a project powered by Nylas, FastAPI and NiceGUI.

You can try it out here

In this project, we use hosted authentication to generate a grant for the user logging in. This grant will be valid until the user logs off or after a 5 days has passed. No information from the user gets stored more that the email and the grant. The only access requested and used is the calendar's events.

3 views are provided by default, with the option of creating new views.

next_meeting_001 next_meeting_002 next_meeting_003 next_meeting_004

To test it locally, you need to download the repo and change some things:

  • First add dotenv to your libraries
from dotenv import load_dotenv
  • Then change the following:
os.environ["V3_API_KEY"] to os.environ.get("V3_API_KEY")
  • And finally change the following:
https://next-meeting.onrender.com/login/nylas/authorized with http://localhost:8000/login/nylas/authorized

Don't forget to add your call the call URI:

Head to the Hosted Authentication page on your dashboard, and click on Add a callback URI.

http://localhost:5000/login/nylas/authorized

For more details check the blog post How to create a scheduler with Python and Taipy

To make your own view follow this steps

create a new file, for example custom.py and add the following:

def custom_view(hours, minutes, title) -> None:

On index.py add the call to the view

import views.custom

On event_display add the following:

match option_info['option']:
    case 'custom':
        views.custom.custom_view(time_tuple[0], time_tuple[1], event[0].title)

On def nextmeeting(request: Request): add the following:

ui.radio(["classic", "led", "word_clock", "custom"], value="classic", on_change = lambda e: choose_option(e.value))

Adding your custom view to the project

Simply, submit a PR 😊

About

Find out how much time you have left until your next meeting

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages