Это проще, чем я думал:
cal = Icalendar::Calendar.new
cal.append_custom_property("X-WR-CALNAME","My Calendar")
cal.append_custom_property("X-PUBLISHED-TTL","PT1H") # every hour
cal.append_custom_property("X-WR-CALDESC","My Desc")
Ссылка: https://github.com/icalendar/icalendar/blob/master/lib/icalendar/has_properties.rb
Это должно быть очень легко. Вы можете сделать маску так:
mask = img2[..., 3] > 0
Затем, как вы сказали, просто сделайте:
img1[mask] = img2[mask]