Manage RSVPs for events from Slack
- Specify event templates via
events.json - Set up
config.json
Note
Nested events are RSVPable events that occur within another event and do not need to share the parent event title or start time. An example would be a lunch RSVP that starts one hour into another event.
calendar_name: (required) The name of the event on Google Calendar. This will be used to automatically post RSVPs for new events.title: (optional | default:calendar_name) The name of the event as you want it to appear in Slack. Will default tocalendar_nameif not specified. This is used for nested events.description: (optional | default:Come on down!) The description of the event as you want it to appear in the RSVP post. The description used in the Google Calendar entry is not used.price: (optional) The price of the event. This is a freeform text field and can include a sentence if required.rsvp_deadline: (optional | default:0) How many hours before the event RSVPs close. If set to0The "RSVP By:" field will be omitted from event posts.event_offset: (optional | default:0) Specify how many hours should be added to the event start time specified in the Google Calendar entry. (can be negative) This is used for nested events.rsvp_options: (optional | default:Attending) An array of RSVP optionshosts: (optional | default:[]) An array of Slack IDs that will be listed as event hosts.regulars: (optional | default:[]) An array of Slack IDs that will be pinged when an event is created.auto_rsvp: (optional | default:[]) An array of Slack IDs that will be auto RSVP'd when an event is created. Auto RSVPs will use the first option listed byrsvp_options.days_before: (optional | default:config.json/days_before) How many days before the event start does the RSVP post get posted. The exact time of the post will be controlled by the cron entry forcron.pychannel_override: (optional | default:config.json/slack/rsvp_channel) Channel to post the RSVP in.image: (optional | default:None) The URL to an image to attach to the RSVP post
- Run
app.pyhowever you want - Run
cron.pyon a daily schedule to post new events,--debugto enable debug logging - Run
app.py --hometo preload app homes for all users - Run
app.py --cleanto archive events that occurred more thanconfig.json/cleanup_daysdays ago
Events can be manually created via cron.py
--manual=[eventid]Use the key from an event specified inevents.jsonas theeventid--start=[epoch_time]Specify a start time for the event. If no start time is specified the event will be assumed to be now + 2 days + the days_before offset specified inevents.json/default:4