Tool to manage ICS email invites
Add function to process several records at once
Add check for already invited
Unit tests and some consequent fixes


browse log




In OSS, it appears nobody wants to be responsible for sending email invitations. icsinvite does this for you.


icsinvite is designed to watch a calendar collection and send invites to attendees when it detects changes.

  • The collection can be either a directory full of calendar events or a WebDAV calendar
  • A database of state is maintained to provide resiliance and record invitation state
  • Email responses (accept/decline/reschedule) are understood and update the calendar
  • Can be run as a service or on-demand
  • Emails can be handled as either piped data, or file handles
  • Default behavior for reacting to changes configured in config file (email everyone, only changed, no-one) for running as server
  • Per-event reaction handling is interactive when run on-demand
  • PGP signing


  • Event changes (e.g. reacting to reschedule events)
  • Encrypted emails (must be decrypted before icsinvite)


icsmailer stands on the shoulders of:


[^1]: Over the years, I've tried 17 different flag libraries, if you include the stdlib flag. Lately, I've been using @cosiners. While I do not prefer the "parse-into-structs" model, @cosiner's library is a nice compromize between features, size (2300 LOC), and dependencies (1, another 600 LOC @cosiner utility package). @thatisuday's commando is a close second (1447 LOC, 1 utility dep), but I find it more verbose and it doesn't support 12-factor-style environment parameters.