Boolean operations would not be useful since I need a clean topology to add a subdivision surface modifier later.
Note: I've used method from here: How to save curve shape of cylinder with such deform? with Shrinkwrap modifier to place vertices in oval shape without distorting overall mesh shape.
I think topology from below image is probably the cleanest possible. It allows to add Edge Loops to control hardness to the edges of indentation or you can use Mean Crease there.
I've made indentation by pushing vertices with Proportional Editing enabled.