DreamExposure / DisCal-Discord-Bot

DisCal is a Discord Bot that links up to a Google Calendar to create, delete, edit, and announce events and more!
GNU General Public License v3.0
112 stars 44 forks source link

Weekday recurrence #81

Open dapetcu21 opened 4 years ago

dapetcu21 commented 4 years ago

Is your feature request related to a problem? Please describe. We're using Discord at work (we're a game dev company, so it seemed fitting) and we need a way to be reminded of the daily meeting. Using daily recurrence would have been an option if not for weekends, when we don't want to be reminded.

Describe the solution you'd like A WEEKDAY frequency option would solve this issue for us. (Or exposing more advanced options using the BYDAY/BYMONTH/BYWEEK properties of RRULE)

Describe alternatives you've considered We could just make 5 different events, but that's a bit tedious.

NovaFox161 commented 4 years ago

Ah I see your issue here. We have been looking into this for quite sometime. The issue is with how we can present this to a user in a way that doesn't add any confusion. As well as figuring out what google exactly supports.

The RRule section of the document you linked is accurate for that standard, however, while google claims to support the standard completely, they don't. The most relevant example of this lack of support would be with their lack of support for the HOURLY value for frequency of the RRule. While google claims to support this, and may even do so in their first party apps, its not supported via the API.

I would love to finally get this feature in place, I know its been heavily requested. Those are just the two issues I'm facing and am unsure of how I can work around them, particularly the first as I am primarily not a frontend developer so making things flow well for the user is not my specialty.

smnc commented 2 years ago

Thoughts on the UI: Add a new option for /event recur frequency dayofweek. The user would then be presented with option day1 with choices of the days of the week. The user would then be presented with options day2 (same as above) and interval. Selecting the day<x> option would allow the user to add up to 7 different days of the week, before forcing them to choose interval. Selecting interval would then follow the same path as other variations of the /event recur frequency command.

NovaFox161 commented 2 years ago

I'm not sure that would be possible with the current way slash commands work. I'd have to have 2 /event recur commands. As currently its structured:

event:
  create:
    - options
  confirm:
  name:
    - string option
  ...
  recur:
    - freq option
    - count option
    - interval option

Due to the way discord's slash commands work, there's just no way to make 2 versions of /event recur with entirely different options

smnc commented 2 years ago

Okay noted. I'll re-think.