In this paper, we propose an approach for the creation of collaborative e-learning environments. The approach provides suitable visual languages allowing the instruction designer to specify e-learning courses in a simple way. The defined courses are based on synchronous and asynchronous activities. Moreover, we describe a system prototype based on the presented approach, which provides automated support for the generation of e-learning courses starting from their visual specification. Another distinctive characteristic of our approach is the possibility to specify and generate full collaborative environments. This learning paradigm let us augment the effectiveness of the e-learning courses allowing learners to share experiences and knowledge.