Mattermost-server: [MM-11379] New plugin: Google Calendar

Created on 5 Dec 2018  路  22Comments  路  Source: mattermost/mattermost-server

If you're interested please comment here and come join our "Contributors" community channel on our daily build server, where you can discuss questions with community members and the Mattermost core team. For technical advice or questions, please join our "Developers" community channel.

New contributors please see our Developer's Guide.


Notes: Jira ticket

Create a sample Google Calendar plugin, which showcases the ability for plugins to update your status. Specifically, it

  • sends meeting reminders 10 minutes ahead of the meeting scheduled in Google Calendar
  • updates user status to "Do Not Disturb" when in a meeting according to Google Calendar
  • updates user status to previous status that was present prior to the meeting

A sample of what a meeting reminder looks like is provided below:

image

Details on the screenshot:

Notes:

  1. Admin configuration: If any settings are needed to configure the plugin, they should exist in System Console > Plugins > Google Calendar, generated by the plugin.
  2. End user configuration: Users can connect their Mattermost account with Google Calendar via "/google-calendar connect". This will likely take the user through an OAuth flow.

For sample plugins, see https://github.com/mattermost/mattermost-plugins.
For developer documentation on plugins, see https://developers.mattermost.com/extend/plugins/

If you're interested, let us know here or message us in the Developer Toolkit channel at https://community.mattermost.com.

AreIntegrations Help Wanted TecGo

Most helpful comment

@hanzei Pushed working code to this repo.

As of now it lacks clear documentation, I'll update that too.

I know this got delayed because my weekends were occupied with conferences.

Finally here's how the reminder looks like
screen shot 2019-01-24 at 12 25 09 am

There's room for improvement in this plugin and we can take it ahead from the feedback.

All 22 comments

@esethna I'd love to take this up.

I'll start by going through the plugin documentation and examples.

Great @waseem18! Let me know, if you have any questions!

Thank you @waseem18!!

Update on this - I will hopefully try to wrap this up over this weekend.

Few more work and documentation is remaining.

Thank you @waseem18 - exciting! Looking forward to it :)

@hanzei Pushed working code to this repo.

As of now it lacks clear documentation, I'll update that too.

I know this got delayed because my weekends were occupied with conferences.

Finally here's how the reminder looks like
screen shot 2019-01-24 at 12 25 09 am

There's room for improvement in this plugin and we can take it ahead from the feedback.

That looks amazing @waseem18! :tada: Looking forward to this plugin!

Hey @waseem18 - just touching base if you had any questions on the final pieces of the plugin?

Hanzei mentioned there isn't clear information on things like how to "submit" the plugin, testing and otherwise, so wanted to reach out about that.

I personally can't wait to try the plugin out :)

I missed this @jasonblais

I'll take some time today and tomorrow to wrap up the documentation work.

Update as of Feb 18 : I've been busy with my office work and have been working on this whenever I get free time. I'm aggressively testing this and fixing any bugs I find.

Hopefully I should get this done within a week

Hey @waseem18! Sorry about missing your reply in turn,

Is the repo linked below up-to-date? Our team could help out with testing and documentation as well. It's looking really promising.

https://github.com/waseem18/mattermost-plugin-google-calendar

@jasonblais

It's not updated as of now. I'll update it tonight and will ping back here.

Edit: I have been really busy and will push it over this weekend. (One day to go)
Sorry for the delay!

Update: Updated latest code on the repo.

Working on Installation documentation. Shouldn't take more than an hour.

Updated README too.
Sorry for the delay.

This is looking great. As a last step before I'll start testing it out, would you be open to creating a release so a plugin tar.gz file appears in the GitHub releases tab? The release version can be 0.1 while we test it out.

I'm only asking because this is what community has become accustomed to.

Huge huge thanks @waseem18!

I've updated the code and tagged a release (as a pre-release). I've added the installation instructions in the README as this plugin requires Google OAuth credentials.

At this point the plugin enables users to use the command /google-calendar connect to connect their Calendar to Mattermost which will send a message 10 min prior to the event.

I'll be really glad if someone can help me with reviewing the code so that I can patch up any security issues or improve code.

I'll be happy to help with anything be it installation or feature additions.

Thanks :)

Hey @waseem18,

If you open a PR that I can review, I'm more then happy to help.

@hanzei What do you mean by a PR? The plugin repo can be found here https://github.com/waseem18/mattermost-plugin-google-calendar

Sorry, I was ambiguous.

GitHub Pull Request make it very convenient to request changes and discuss code. Hence I ask you to open a PR that contains any code. You can do this by:

  1. Moving all your code from master into a difference branch and then submitting a PR to merge it back into master. This would be the more clean way.
  2. Create a new branch where you delete a code and open a PR for this more. This way is easier to set up, but a bit hacky.

@waseem18 Let me know what you think about this idea.

I think it's a good idea. I'll move the code to dev branch and will draft a PR to master branch.

@jasonblais What is that status of this one? Given that the plugin has been added to the integrations directory: Can this be closed?

It can be closed, thanks!

And thanks @waseem18 for the contribution :tada:

Was this page helpful?
0 / 5 - 0 ratings